The design of the UNIX Operating System 9 страница



В рассмотренном выше примере приоритеты процессов с течением времени не изменялись. Такие при-оритеты принято называть статическими. Механизмы статической приоритетности легко реализовать, и они сопряжены с относительно небольшими издержками на выбор наиболее приоритетного процесса.

 

Однако статические приоритеты не реагируют на изменения ситуации в вычислительной системе, кото-рые могут сделать желательной корректировку порядка исполнения процессов. Более гибкими являются динамические приоритеты процессов, изменяющие свои значения по ходу исполнения процессов. На-чальное значение динамического приоритета, присвоенное процессу, действует в течение лишь коротко-го периода времени , после чего ему назначается новое, более подходящее значение. Изменение динами-ческого приоритета процесса является единственной операцией над процессами, которую мы до сих пор не рассмотрели. Как правило, изменение приоритета процессов проводится согласованно с совершением каких- либо других операций: при рождении нового процесса, при разблокировке или блокировании про-цесса, по истечении определенного кванта времени или по завершении процесса. Примерами алгоритмов с динамическими приоритетами являются алгоритм SJF и алгоритм гарантированного планирования. Схемы с динамической приоритетностью гораздо сложнее в реализации и связаны с большими издерж-ками по сравнению со статическими схемами. Однако их использование предполагает, что эти издержки оправдываются улучшением работы системы.

 

Главная проблема приоритетного планирования заключается в том, что при ненадлежащем выборе меха-низма назначения и изменения приоритетов низкоприоритетные процессы могут не запускаться неопре-деленно долгое время. Обычно случается одно из двух. Или они все же дожидаются своей очереди на ис-полнение (в девять часов утра в воскресенье, когда все приличные программисты ложатся спать). Или вычислительную систему приходится выключать, и они теряются (при остановке IBM 7094 в Массачу-сетском технологическом институте в 1973 году были найдены процессы, запущенные в 1967 году и ни разу с тех пор не исполнявшиеся). Решение этой проблемы может быть достигнуто с помощью увеличе-ния со временем значения приоритета процесса, находящегося в состоянии готовность. Пусть изначально процессам присваиваются приоритеты от 128 до 255. Каждый раз по истечении определенного проме-жутка времени значения приоритетов готовых процессов уменьшаются на 1. Процессу, побывавшему в состоянии исполнение, присваивается первоначальное значение приоритета. Даже такая грубая схема га-рантирует, что любому процессу в разумные сроки будет предоставлено право на исполнение.

 

Многоуровневые очереди (Multilevel Queue)

 

Для систем, в которых процессы могут быть легко рассортированы по разным группам, был разработан другой класс алгоритмов планирования. Для каждой группы процессов создается своя очередь процес-сов, находящихся в состоянии готовность (см. рис. 3.5) . Этим очередям приписываются фиксированные приоритеты. Например, приоритет очереди системных процессов устанавливается выше, чем приоритет очередей пользовательских процессов. А приоритет очереди процессов , запущенных студентами, ниже, чем для очереди процессов, запущенных преподавателями. Это значит, что ни один пользовательский процесс не будет выбран для исполнения, пока есть хоть один готовый системный процесс, и ни один студенческий процесс не получит в свое распоряжение процессор, если есть процессы преподавателей, готовые к исполнению . Внутри этих очередей для планирования могут применяться самые разные алго-ритмы. Так, например , для больших счетных процессов, не требующих взаимодействия с пользователем (фоновых процессов), может использоваться алгоритм FCFS, а для интерактивных процессов – алгоритм


Дата добавления: 2021-01-21; просмотров: 121; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!