- •11.1 Уровни планирования
- •11.2 Цели планирования
- •11.3 Критерии планирования
- •11.4 Планирование с переключением и без переключения
- •11.5 Интервальный таймер или прерывающие часы-будильник
- •11.6 Приоритеты
- •11.6.1. Статические и динамические приоритеты
- •11.6.2. Покупаемые приоритеты
- •11.7 Планирование по сроку завершения
- •11.9 Циклическое планирование (rr)
- •11.10 Размер кванта времени
- •11.11. Планирование по принципу sjf («кратчайшее задание — первым»)
- •6.12. Планирование по принципу srt («по наименьшему остающемуся времени»)
- •11.13. Планирование по принципу hrn («по наибольшему относительному времени реакции»)
- •11.14 Многоуровневые очереди с обратными связями
- •Механизм планирования должен
11.4 Планирование с переключением и без переключения
Если после предоставления ЦП в распоряжение некоторого процесса отобрать ЦП у этого процесса нельзя, то говорят о дисциплине планирования без переключения. Если же ЦП можно отобрать, то говорят о дисциплине планирования с переключением.
Планирование с переключением необходимо в системах, в которых процессы высокого приоритета требуют немедленного внимания. Например, в системах реального времени пропажа одного важного сигнала прерывания может привести к катастрофическим последствиям. В интерактивных системах разделения времени планирование с переключением играет важную роль, поскольку позволяет гарантировать приемлемые времена ответа.
Планирование, требующее контекстных переключений, сопряжено с определенными накладными расходами. Чтобы обеспечить его эффективность, в основной памяти должно размещаться много процессов, с тем чтобы очередной процесс был, как правило, готов для выполнения, когда освобождается ЦП. А размещение неработающих программ в основной памяти также сопряжено с накладными расходами.
В системах планирования без переключения коротким заданиям приходится больше ждать из-за выполнения длительных заданий, однако для всех процессов создаются как бы равные условия. Времена ответа здесь более предсказуемы, поскольку поступающие задания высокого приоритета не могут оттеснять уже ожидающие задания.
11.5 Интервальный таймер или прерывающие часы-будильник
Говорят, что процесс работает, если в данный момент в его распоряжение предоставлен ЦП. Если речь идет о процессе операционной системы, то это означает, что в данный момент работает операционная система, причем она может принимать решения, влияющие на функционирование всей машины. Чтобы не допустить монополизации системы пользователями (умышленной, либо случайной), в операционной системе предусмотрены механизмы, позволяющие отбирать ЦП у пользователя.
Операционная система устанавливает часы или интервальный таймер с целью генерации сигнала прерывания в некоторый конкретный момент времени в будущем (или по истечении некоторого интервала времени в будущем). После прерывания ЦП передается в распоряжение следующего процесса. Этот процесс сохраняет управление центральным процессором до тех пор, пока он добровольно не освободит ЦП, или не произойдет временное прерывание или какое-то другое прерывание не потребует внимания ЦП. Если работает программа пользователя и происходит временное прерывание, это прерывание вызывает включение в работу операционной системы. Операционная система при этом решает, какому процессу следует предоставить далее ЦП.
Временные прерывания помогают гарантировать приемлемые времена ответа для пользователей, работающих в диалоговом режиме, предотвращают «зависание» системы из-за зацикливания какой-то программы пользователя, а также позволяют процессам соответствующим образом реагировать на события, зависящие от времени. Процессы, которые должны работать периодически, зависят от временных прерываний.
11.6 Приоритеты
Система может присваивать приоритеты автоматически или они могут назначаться извне. Приоритеты могут быть заслуженными («заработанными») или купленными. Они могут быть либо статическими, либо динамическими. Они могут присваиваться по какому-то рациональному принципу или произвольно назначаться в ситуациях, когда системному механизму необходимо каким-то образом различать процессы, однако он не знает, какой из них в действительности более важен.