1. Уровни планирования. Цели планирования. Факторы, учитываемые при планировании. Планирование с переключением и без переключения. Приоритеты.
2. Алгоритмы планирования. Планирование по принципу FIFO (first-in-first-out). Циклическое планирование RR (round robin). Многоуровневые очереди с обратными связями.
Уровни планирования
Одной из важных задач, которую решает ОС является проблема, связанная с определением когда и каким процессам следует выделять ресурсы процессора — задача планирования загрузки процессоров. Существуют три уровня такого планирования.
Планирование на верхнем уровне.
Или планирование заданий — это средства, которые определяют, каким заданиям будет разрешено активно конкурировать за захват ресурсов системы. Вошедшие в систему задания становятся процессами или группами процессов.
Планирование на промежуточном уровне.
Средства этого уровня определяют, каким процессам будет разрешено конкурировать за захват ЦП. Планировщик этого уровня определяет, какие процессы приостанавливаются, а какие возбуждаются для обеспечения равномерной загрузки системы.
Планирование на нижнем уровне.
Средства этого уровня выполняют диспетчерские функции, определяя, какому из готовых к выполнению процессов будут предоставлены ресурсы ЦП.
Планирование на нижнем уровне выполняется диспетчером, который всегда располагается в оперативной памяти.
Цели планирования
Дисциплина планирования должна быть справедливой; обеспечивать максимальную пропускную способность системы; приемлемые времена ответа для максимального количества пользователей, работающих в интерактивном режиме; предсказуемость; минимальные накладные расходы; сбалансированное использование ресурсов; сбалансированность времени ответа и коэффициента использования ресурсов; должна исключать бесконечное откладывание процессов; учитывать приоритеты; оказывать предпочтение тем процессам, которые занимают ключевые ресурсы; предусматривать улучшенное обслуживание для процессов, отличающихся “примерным поведением”.
Заметим, что многие из этих целей противоречат друг другу, что делает планирование достаточно сложной проблемой.
Задания, ожидающие
ввода в систему
Ввод заданий
Задания, ожидающие
запуска
Запуск заданий Планирование верхнего уровня
Приостановленные
процессы, ожидающие
активизации
Активизация Приостановка Планирование промежуточного
уровня
Активные
процессы
Блокирование Предоставление ЦП Планирование нижнего уровня
Уровни планирования
Факторы, учитываемые при планировании
Для реализации перечисленных выше целей планирования, механизмы планирования должны учитывать лимитируется процесс вводом-выводом или ЦП; является ли процесс пакетным или диалоговым; обязательно ли малое время ответа; приоритет каждого процесса; частоту переключений с низкоприоритетных процессов, ожидающих освобождения уже занятых ресурсов; длительность периода времени, в течение которого ожидает каждый процесс; суммарное время работы каждого процесса и оценочное время, необходимое каждому процессу для завершения.
Планирование с переключением и без переключения
Планирование без переключения предусматривает, что после предоставления ресурсов ЦП какому-либо процессу, отобрать ЦП у этого процесса нельзя. Если же ресурсы ЦП можно отобрать, то говорят о планировании с переключением.
При использовании планирования без переключения коротким заданиям приходится больше ждать из-за выполнения длительных заданий, с другой стороны, для всех процессов создаются как бы равные условия, а времена ответа здесь более предсказуемы.
Планирование с переключением необходимо в системах, где процессы высокого приоритета требуют немедленного внимания, например в интерактивных системах разделения времени этот способ планирования позволяет гарантировать приемлемые времена ответа.
Приоритеты
Система может присваивать процессам приоритеты автоматически или они могут назначаться извне. Приоритеты могут быть заслуженными или купленными. Они могут быть статическими или динамическими. Они могут назначаться по какому-то рациональному принципу или присваиваться в ситуациях, когда системе просто необходимо каким-либо образом различать процессы.
Статические приоритеты не изменяются, такой механизм установки приоритетов достаточно прост и не сопряжен с большими издержками. Однако следует учитывать, что такой механизм недостаточно гибок, т.к. не реагирует на изменение окружающей ситуации.
Динамические приоритеты позволяют повысить реактивность системы, т.к. реагируют на изменения ситуации, и начальное значение приоритета процесса может быть изменено на новое, более подходящее значение.
Покупаемые приоритеты дают возможность пользователю повысить приоритет задания и получить более высокий уровень обслуживания за дополнительную плату.