Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
У. Столлингс ГЛАВА 10 Многопроцессорное планиро...doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
389 Кб
Скачать
☆

10.5. Планирование windows 2000

Операционная система Windows 2000 (W2K) разработана таким образом, чтобы быть по возможности максимально чувствительной либо к нуждам отдельного пользователя в интерактивной среде, либо в роли сервера. В W2K реализован планировщик с вытеснением и гибкой системой уровней приоритетов, включающий круговое планирование на каждом уровне, а для некоторых уровней — динамическое изменение приоритета на основе текущей активности потоков.

Приоритеты процессов и потоков

Приоритеты в W2K организованы в виде двух групп, или классов: реального времени и переменные. Каждая из этих групп состоит из 16 уровней приоритета. Потоки, требующие немедленного внимания, находятся в классе реального времени, который включает такие функции, как осуществление коммуникаций и задачи реального времени.

В целом, поскольку W2K использует вытесняющий планировщик с учетом приоритетов, потоки с приоритетами реального времени имеют преимущество по отношению к прочим потокам. В однопроцессорной системе, когда становится готовым к выполнению поток с приоритетом более высоким, чем у выполняющегося в настоящий момент, низкоприоритетный поток вытесняется и начинает выполняться более высокоприоритетный поток.

Приоритеты из разных классов обрабатываются несколько по-разному (рис. 10.12). В классе приоритетов реального времени все потоки имеют фиксированный приоритет, который никогда не изменяется, и все активные потоки с определенным уровнем приоритета располагаются в круговой очереди данного уровня. В классе переменных приоритетов поток начинает работу с некоторым изначально присвоенным ему приоритетом, который затем может изменяться — как в большую, так и в меньшую сторону. Таким образом, на каждом уровне приоритета имеется своя очередь, но процессы могут переходить из одной очереди в другую в пределах одного класса переменных приоритетов. Поток с приоритетом 15 не может получить приоритет 16. как и какой-либо другой приоритет из класса реального времени.

Начальный приоритет потока в классе переменных приоритетов определяется двумя величинами: базовым приоритетом процесса и базовым приоритетом потока. Одним из атрибутов процесса является его базовый приоритет, который может принимать значение от 0 до 15. Каждый объект потока, связанный с объектом процесса, имеет собственный базовый приоритет, который указывает базовый приоритет потока по отношению к приоритету процесса, и может отличаться от базового приоритета процесса не более чем на 2 уровня в большую или меньшую сторону. Так, например, если базовый приоритет процесса равен 4, а базовый приоритет одного из его потоков равен -1, то начальный приоритет этого потока равен 3.

После активации потока из класса переменных приоритетов его действительный приоритет (именуемый динамическим приоритетом потока) может колебаться в определенных пределах — он не может упасть ниже наименьшего базового приоритета потока или подняться выше максимально возможного значения приоритета данного класса, т.е. 15. На рис. 10.13 приведен пример процесса с базовым приоритетом, равным 4. Каждый поток, связанный с данным процессом, должен иметь начальный приоритет от 2 до б, и в процессе работы значения динамических приоритетов потоков могут колебаться в диапазоне от 2 до 15. Если поток прерывается в связи с тем, что он полностью использовал отпущенный ему квант времени, исполнительная система W2K снижает его приоритет; если же поток прерван в связи с ожиданием завершения операции ввода-вывода, его приоритет повышается. Таким образом, имеется тенденция повышения приоритетов, ориентированных на ввод-вывод, и снижения приоритетов, ориентированных на вычисления. В потоках, ориентированных на ввод-вывод, приоритет потоков, ожидающих завершения интерактивной операции (например, вывод на экран или ввод с клавиатуры) повышается больше, чем для других операций ввода-вывода (например, дисковых). Следовательно, в пределах класса переменных приоритетов интерактивные потоки стремятся к получению наивысшего приоритета.