Процессы и потоки
Автор: pokazatskaya • Март 3, 2023 • Лабораторная работа • 504 Слов (3 Страниц) • 142 Просмотры
МИНОБРНАУКИ РОССИИ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
«ЛЭТИ» ИМ. В.И. УЛЬЯНОВА(ЛЕНИНА)
Кафедра Вычислительной техники
ОТЧЕТ
по лабораторной работе № 3
по дисциплине "Операционные системы"
по теме: "Процессы и потоки"
Студент гр.0305 _______________________________
Преподаватель _______________________________ Тимофеев А.В.
Санкт – Петербург 2022
Цель работы: исследовать механизмы создания и управления процессами и потоками в ОС Windows.
Задание 3.1. Реализация многопоточного приложения с использованием функций Win32 API.
Ход работы
Создаём приложение, которое вычисляет число pi с точностью N знаков после запятой по следующей формуле
[pic 1]
где N=100000000.
В работе используются критические секции. Критическая секция - это участок кода, в котором поток получает доступ к ресурсу, который доступен из других потоков. Объект критическая секция обеспечивает синхронизацию. Этим объектом может владеть только один поток, что и обеспечивает синхронизацию.
Для использования критической секции создается переменная типа CRITICAL_SECTION. Инициализация перед использованием осуществляется функцией InitializeCriticalSection(). Для того, чтобы войти в секцию нужно вызвать функцию EnterCriticalSection(), а после завершения работы LeaveCriticalSection(). Функция DeleteCriticalSection() освобождает все ресурсы, используемые объектом неуправляемого критического раздела.
Произведены замеры времени выполнения приложения для разного числа потоков (1, 2, 4, 8, 12, 16). По результатам измерений построен график и определено число потоков, при котором достигается наибольшая скорость выполнения.
...