
- •Самарская государственная академия путей сообщения
- •Организация вычислительных процессов в эвм и системах Арбитраж, планирование и диспетчеризация
- •Самара 2005
- •Рецензенты: к.Т.Н., доцент н.А. Локтев (нпц «Информационные и транспортные системы»);
- •1.Мультипроцессорный и мультипрограммный
- •3.Основы организации планирования
- •4.Планирование вычислительных процессов
- •6.Практические и лабораторные работы
- •1.Мультипроцессорный и мультипрограммный способы организации вычислительных процессов
- •1.1. Мультипроцессорные системы и арбитраж
- •1.2. Мультипрограммные системы
- •1.3. Гиперпотоковая организация вычислений
- •2.Процессы и потоки в вычислительных системах
- •2.1. Определение процессов, потоков и ресурсов вс
- •2.2. Состояния потоков
- •3. Основы организации планирования и диспетчеризации процессов и потоков
- •3.1. Принципы планирования процессов и потоков
- •3.2. Классификация алгоритмов планирования (вытесняющие и невытесняющие, бесприоритетные и приоритетные алгоритмы)
- •3.3. Линейные алгоритмы планирования
- •3.4.Алгоритмы планирования, основанные на квантовании
- •3.5.Алгоритмы планирования, основанные на приоритетах
- •3.6. Смешанные алгоритмы планирования
- •4. Планирование вычислительных процессов
- •4.1. Принципы планирования в системах реального времени
- •4.2.Планирование с предельными сроками
- •4.3.Частотно-монотонное планирование
- •5.Планирование в windows 2000
- •5.1. Уровни приоритетов потоков в Windows 2000
- •5.2. Особенности алгоритмов планирования в Windows 2000
- •5.3.Учет квантов и управление их величиной
- •5.4.Динамическое повышение приоритета
- •5.5.Планирование потоков в симметричных мультипроцессорных системах
- •6. Практические и лабораторные работы по планированию процессов и потоков
- •6.1. Изучение диспетчера задач и системного монитора
- •6.2. Мониторинг использования ресурсов вычислительной системы
- •Запустите системный монитор.
- •Добавьте на график различные счетчики объекта «Память» и понаблюдайте за их изменением в процессе работы вычислительной системы.
- •6.3. Учет квантов и управление их величиной
- •6.4. Изучение изменения состояния потоков при планировании
- •6.5. Изучение динамического изменения приоритета потока активного процесса
- •6.6.Изучение динамического повышения приоритета gui-потоков
- •6.7. Изучение динамического повышения приоритетов при нехватке процессорного времени
- •Библиографический список Основная литература
5.Планирование в windows 2000
5.1. Уровни приоритетов потоков в Windows 2000
В Windows 2000 предусмотрено 32 уровня приоритета, которые организованы в виде двух групп или классов - реального времени и переменные (динамические) /7,8,11,13/. Каждая из этих групп состоит из 16 уровней приоритета, как показано на рис.5.1.
П
отоки,
требующие немедленного внимания,
находятся в классе реального времени,
который включает такие функции, как
осуществление коммуникаций и задачи
реального времени.
Приоритеты из разных классов обрабатываются несколько по-разному. В классе приоритетов реального времени все потоки имеют фиксированный приоритет, который никогда не изменяется, и все активные потоки с определенным уровнем приоритета располагаются в круговой очереди данного уровня (рис.5.1).
В классе переменных (динамических) приоритетов поток начинает работу с некоторым изначально присвоенным ему приоритетом, который затем может изменяться – как в большую, так и в меньшую сторону. Таким образом, на каждом уровне приоритета имеется своя очередь, но процессы могут переходить из одной очереди в другую в пределах одного класса переменных приоритетов. Нулевой уровень приоритета используется потоком обнуления страниц, и Win32 недоступен. Поток с приоритетом 15 не может получить приоритет 16, как и какой-либо другой приоритет из класса реального времени.
Преимущества планирования с динамическими приоритетами уже были продемонстрированы в предыдущем разделе на примерах систем реального времени. Хотя Windows 2000 относится к ОС свободного времени, преимущества планирования с динамическими приоритетами в этой ОС в значительной мере также реализованы.
Win32 API упорядочивает процессы по уровням приоритета, назначенным при их создании следующим образом: Real time (реального времени), High (высокий), Above Normal (выше обычного), Normal (обычный), Below Normal (ниже обычного) и Idle (простаивающий) /11/. Каждой из указанных шести групп уровней приоритетов соответствует определенный диапазон приоритетов, и значения приоритетов из середин диапазонов называются базовыми приоритетами процессов. Обычно базовые приоритеты групп процессов по умолчанию равны соответственно 24, 13, 10, 8, 6, 4.
Н
ачальный
приоритет потока в классе переменных
приоритетов определяется двумя
величинами: базовым приоритетом процесса
и относительным приоритетом потока
(рис.5.2). Каждый поток, связанный с
определенным процессом, имеет собственный
относительный приоритет, который
указывает на приоритет потока по
отношению к базовому приоритету процесса,
и может отличаться от базового приоритета
процесса не более чем на 2 уровня в
большую или меньшую сторону. Так,
например, если базовый приоритет процесса
равен 4, а относительный приоритет одного
из потоков равен –1, то начальный
приоритет этого потока равен 3.
После активизации потока из класса переменных приоритетов его действительный приоритет (именуемый динамическим приоритетом потока) может колебаться в определенных пределах – он не может уменьшиться ниже наименьшего относительного приоритета потока или подняться выше максимально возможного значения приоритета данного класса, т.е. 15.
На рис.5.2 приведен пример процесса с базовым приоритетом, равным 4. Каждый поток, связанный с данным процессом, должен иметь начальный приоритет от 2 до 6, и в процессе работы значения динамических приоритетов потоков могут колебаться в диапазоне от 2 до 15.
Если поток прерывается в связи с тем, что он полностью использовал отпущенный ему квант времени, исполнительная система Windows 2000 снижает его приоритет; если же поток прерван в связи с ожиданием завершения операции ввода-вывода, его приоритет повышается. Таким образом, имеется тенденция повышения приоритетов потоков, ориентированных на ввод-вывод, и снижения приоритетов (до уровня базового приоритета), ориентированных на вычисления. В потоках, ориентированных на ввод-вывод, приоритет потоков, ожидающих завершения интерактивной операции (например, вывод на экран или ввод с клавиатуры) повышается больше, чем для других операций ввода-вывода (например, дисковых). Следовательно, в пределах класса переменных приоритетов интерактивные потоки стремятся к получению наивысшего приоритета.
В Windows 2000 никогда динамически не изменяются приоритеты потоков в классе приоритетов реального времени (16 – 31), поэтому у таких потоков базовый приоритет идентичен текущему.
Использование динамических приоритетов является одним из основных методов обеспечения гарантии обслуживания. Действительно, если приоритеты фиксированы, возникает дискриминация низкоприоритетных задач, в результате чего они вследствие высокой загрузки процессора длительное время могут не получать процессорное время и поэтому не выполняться.