Автор работы: Пользователь скрыл имя, 14 Октября 2009 в 17:38, Не определен
Содержание
Введение 3
Глава I. Многозадачность и виды многозадачности 5
1.1. Многозадачность и многопоточность 5
1.2. Особенности реализации многозадачности в DOS 6
1.3. Presentation Manager и последовательная очередь сообщений 9
1.4. Многопоточная архитектура 11
1.5. Преимущества Windows 13
1.6. Объект Mutex 19
Глава II. Особенности реализации многозадачности Windows 2003 23
2.1. Реализация многозадачности в Windows 2003 23
2.2. Управление квантованием в Windows 2003 25
2.3. Управление приоритетами в Windows 2003 27
2.4. Особенности многозадачности в среде Windows 2003 29
Заключение 34
Список используемой литературы 38
В Windows определен список событий,
которые приводят к
В целях уменьшения затрат
на планирование потоков
Рис. 1.1. Граф состояний потока
Также в два этапа может
происходить переход из
При выборе потока для
Процесс выбора потока для
выполнения усложняется в
В Windows выделяют понятие "идеального"
процессора - им назначается процессор,
на котором запускается
В многопроцессорной системе используется либо первый простаивающий процессор, либо, при необходимости вытеснения уже работающего потока, проверяются идеальный процессор, последний использовавшийся и процессор с наибольшим номером. Если на одном из них работает поток с меньшим приоритетом, то последний вытесняется и заменяется новым потоком; в противном случае выполнение потока откладывается (даже если в системе есть процессоры, занятые потоками с меньшим приоритетом).
Современные реализации Windows в рамках единого дерева кодов могут быть использованы для различных классов задач - от рабочих станций, обслуживающих преимущественно интерфейс пользователя, до серверных установок на многопроцессорных машинах. Чтобы можно было эффективно использовать одну ОС в столь разных классах систем, планировщик Windows динамически изменяет длительность квантов и приоритеты, назначаемые потокам. Администратор системы может в некоторой степени изменить поведение системы при назначении длительности квантов и приоритетов потоков.
Квантование потоков
Параметр реестра HKLMSYSTEM CurrentControlSet ControlPriorityControl Win32PrioritySeparation предназначен для управления квантованием. На рис. 1.2 дан формат этого параметра для Windows 2000-2003, а в таблице 1.1 приводятся длительности квантов в условных единицах для разных значений полей параметра Win32PrioritySeparation.
Рис. 1.2. Управление квантованием в
Windows (длительность кванта показана в табл.
1.1)
Таблица 1.1. Длительность кванта | ||||||
Короткий квант | Длинный квант | |||||
Значение
младших 2-х бит параметра Win32Priorit |
0 | 1 | 2 | 0 | 1 | 2 |
Переменная длительность | 6 | 12 | 18 | 12 | 24 | 36 |
Фиксированная длительность | 18 | 18 | 18 | 36 | 36 | 36 |
Этот параметр может быть изменен с помощью панели управления, однако, лишь в очень ограниченных рамках:
"System Properties|Advanced|
Короткие кванты переменной длины, значение 0x26 т.е. 10 01 10 (короткие кванты переменной длительности, 18 ед.).
Длинные кванты фиксированной длины, значение 0x18 т.е. 01 10 00 (длинные кванты фиксированной длительности, 36 ед.). Более тонкая настройка возможна с помощью редактора реестра.[14, c. 155]
Управление длительностью
Еще один случай увеличения
длительности кванта - процесс долгое
время не получал
В Windows выделяется 32 уровня приоритетов. 0 соответствует самому низкому приоритету (с таким приоритетом работает только специальный поток обнуления страниц), 31 - самому высокому. Этот диапазон делится на три части[15, c. 76]:
Для некоторого упрощения управления приоритетами в Windows выделяют "классы приоритета" (priority class), которые задают базовый уровень приоритета, и "относительные приоритеты" потоков, которые корректируют указанный базовый уровень. Операционная система предоставляет набор функций для управления классами и относительными приоритетами потоков.
Планировщик операционной
В случае коррекции приоритета по одной из перечисленных причин, повышенный приоритет начинает постепенно снижаться до начального уровня потока - с каждым тиком таймера на один уровень.
Еще один случай повышения приоритета (вместе с увеличением длительности кванта) - процесс долгое время не получал процессорного времени. В этой ситуации система раз в 3-4 секунды назначает процессу приоритет, равный 15, и квант удвоенной длительности. По истечении этого кванта приоритет возвращается к прежнему значению и восстанавливается рекомендуемая длительность кванта.
В
зависимости от настройки планировщика,
NORMAL_PRIORITY_CLASS с базовым уровнем
приоритета 8 может быть "расщеплен"
на два базовых уровня - для потоков
активных процессов (базовый уровень
9) и для потоков фоновых
Общеизвестно, что в Windows 2003 реализована вытесняющая многозадачность. Именно это привлекло внимание многих фирм-разработчиков ПО, поскольку предшественницы этой ОС справедливо считались тяжелыми и неповоротливыми.
Появление вытесняющей
Основные понятия многозадачности в Windows 2003 - процесс (задача) и поток (нить). Под процессом понимается выполнение программы в целом (WinWord, Excel, Visual C++ и т. д.) Потоками в свою очередь являются части процесса, выполняющиеся параллельно.[14, c. 91]
Любой процесс имеет хотя бы один поток. В этом случае его можно отождествить с потоком. Процессы интересны с точки зрения взаимодействия одновременно выполняющихся программ, потоки (участки кода, выполняющиеся параллельно в одном процессе) - с точки зрения их синхронизации.
Заметим, что одновременно выполняющиеся потоки могут быть зависимы друг от друга - например, один поток подготавливает данные, другой их сортирует, а третий выводит результат в файл. Передав готовые данные второму потоку на сортировку, первый начинает обработку нового блока. Тем временем второй поток сообщает третьему, что можно выводить результаты. Следовательно, работу этих трех потоков необходимо синхронизировать.
Для синхронизации процессов и потоков в Windows 2003 предусмотрено четыре механизма[11, c. 110]:
Мы рассмотрим два из них: критический раздел и исключающий семафор.
Критический раздел - это часть кода, доступ к которому в данное время имеет только один поток. Другой поток может обратиться к критическому разделу, только когда первый выйдет из него.
Для работы с критическими разделами используются следующие функции:
Информация о работе Особенности реализации многозадачности ОС Windows