- •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 Многоуровневые очереди с обратными связями
- •Механизм планирования должен
OS-basic11. Управление процессорами. Планирование заданий и загрузки процессоров
Уровни планирования. Цели планирования. Критерии планирования. Планирование с переключением и без переключения. Интервальный таймер или прерывающие часы будильник. Приоритеты. Статические и динамические приоритеты. Покупаемые приоритеты. Планирование по сроку завершения. Планирование по принципу FIFO («первый пришедший обслуживается первым»). Циклическое планирование (RR). Размер кванта времени. Планирование по принципу SJF («кратчайшее задание — первым»). Планирование по принципу SRT («по наименьшему остающемуся времени»). Планирование по принципу HRN («по наибольшему относительному времени реакции»). Многоуровневые очереди с обратными связями.
Планирование загрузки процессоров,
Планирование на промежуточном уровне
(планирование допуска, планирование заданий),
Планирование на промежуточном уровне,
Планирование на нижнем уровне,
Диспетчер,
Дисциплины планирования,
Планирование с переключением,
Планирование без переключения,
Интервальный таймер,
Приоритеты,
Статические, динамические, покупаемые приоритеты,
Планирование по сроку завершения,
Планирование по принципу FIFO,
Циклическое планирование (по принципу RR),
Планирование по принципу SJF,
Планирование по принципу SRT,
Планирование по принципу HRN,
Многоуровневые очереди с обратными связями,
Процессы получают возможность выполнять конкретную работу, когда в их распоряжение выделяются процессоры. Распределение процессоров по процессам представляет собой сложную задачу, которую решает операционная система. Решение проблем, связанных с определением того, когда следует выделять процессоры и каким именно процессам, называется планированием загрузки процессоров.
11.1 Уровни планирования
Мы рассмотрим три основных уровня планирования (рис. 11.1).
• Планирование на верхнем уровне. Иногда называется планированием заданий. Средства этого уровня определяют, каким заданиям будет разрешено активно конкурировать за захват ресурсов системы. Этот вид планирования иногда называют также планированием допуска, поскольку на этом уровне определяется, какие задания будут допущены в систему. Вошедшие в систему задания становятся процессами или группами процессов.
• Планирование на промежуточном уровне. Средства этого уровня определяют, каким процессам будет разрешено состязаться за захват центрального процессора. Планировщик промежуточного уровня оперативно реагирует на текущие колебания системной нагрузки, кратковременно приостанавливая и вновь активизируя (или возбуждая) процессы, что обеспечивает равномерную работу системы и помогает достижению определенных глобальных целевых скоростных характеристик. Таким образом, планировщик промежуточного уровня выполняет как бы функции буфера между средствами допуска заданий в систему и средствами предоставления ЦП для выполнения этих заданий
• Планирование на нижнем уровне. Средства этого уровня определяют, какому из готовых к выполнению процессов будет предоставляться освободившийся ЦП, и фактически выделяют ЦП данному процессу (т. е. осуществляют диспетчерские функции). Планирование на нижнем уровне производится так называемым диспетчером, который работает с большой частотой, много раз в секунду, и поэтому всегда должен располагаться в основной памяти.
Pиc. 11.1 Уровни планирования
11.2 Цели планирования
Дисциплина планирования должна:
Быть справедливой. Дисциплина планирования считается справедливой, если ко всем процессам она относится одинаково, и ни один процесс не может пострадать от бесконечного откладывания.
Обеспечивать максимальную пропускную способность системы. Дисциплина планирования должна стремиться к обслуживанию максимально возможного количества процессов в единицу времени.
Обеспечивать максимальному числу пользователей, работающих в интерактивном режиме, приемлемые времена ответа (т. е. в худшем случае несколько секунд)
Быть предсказуемой. Данное задание должно выполняться приблизительно за одно и то же время и с приблизительно одинаковой стоимостью независимо от нагрузки на систему.
Минимизировать накладные расходы.
Сбалансировать использование ресурсов. Механизмы планирования должны стремиться к повышению коэффициента использования системных ресурсов. Предпочтение должно оказываться тем процессам, которые будут занимать недогруженные ресурсы.
Обеспечивать определенный баланс между временем ответа и коэффициентом использования ресурсов. Наилучший способ гарантировать малые времена ответа — это иметь достаточно свободных ресурсов, чтобы их можно было сразу же использовать, когда они потребуются. Подобная стратегия приводит к снижению общего коэффициента использования ресурсов. В системах реального времени минимальное время реакции весьма существенно, а загрузке ресурсов придается меньшее значение. В системах других типов из экономических соображений главное внимание уделяется именно эффективному использованию ресурсов.
Исключать бесконечное откладывание. Во многих случаях бесконечное откладывание процессов может приводить к не менее неприятным последствиям, чем тупики. Чтобы исключить бесконечное откладывание, лучше всего учитывать старение процесса — с увеличением периода времени, в течение которого процессу приходится ожидать некоторого ресурса, приоритет этого процесса должен расти. В конце концов, приоритет окажется настолько высоким, что процессу будет предоставлен нужный ресурс.
Учитывать приоритеты. В системах, в которых процессам присваиваются приоритеты, механизм планирования должен оказывать предпочтение процессам с более высокими приоритетами.
Оказывать предпочтение процессам, занимающим ключевые ресурсы. Может возникнуть ситуация, когда процесс, даже имеющий низкий приоритет, удерживает за собой некоторый ключевой ресурс, который требуется процессам более высокого приоритета. Если этот ресурс не является оперативно перераспределяемым, то механизм планирования должен создавать для процесса лучшие, чем обычно, условия, чтобы этот процесс быстрее освободил удерживаемый им ключевой ресурс.
Создавать лучшие условия для выполнения процессов, требующих менее частой подкачки страниц.
Характеризоваться постепенностью снижения работоспособности при больших нагрузках. Механизм планирования не должен сразу же терять работоспособность под тяжестью большой системной нагрузки. Он должен либо предотвращать чрезмерную нагрузку, не разрешая создавать новые процессы, когда нагрузка и так достаточно велика, либо в случае увеличенной нагрузки он должен предоставлять постепенно снижаемый уровень обслуживания для всех процессов.
Многие из перечисленных целей противоречат друг другу, что делает организацию планирования весьма сложной проблемой.