Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700363.doc
Скачиваний:
16
Добавлен:
01.05.2022
Размер:
3.69 Mб
Скачать

Стратегия приоритетного планирования

Данная стратегия предусматривает произвольное назначение приритетов процессам и их выполнение в порядке назначенных приритетов. Стратегия приоритетного планирования является наиболее подходящей для реальных систем, позволяет максимально гибко настроить систему планирования для эффективной работы с учетом самых разных внешних и внутренних факторов, таких как важность решаемой задачи для пользователя и для системы, характер процесса (вычислительный, интерактивный, с активным вводом-выводом), длительность процесса и т.п.

Существует множество дисциплин приоритетного планирования, рассмотрим наиболее известные из них.

Дисциплина лотерейного планирования

Данная дисциплина основана на генераторе случайных чисел с равномерным распределением в диапазоне целых чисел . Затем определяется абстракция «лотерейный билет». Всего определяется билетов с вероятностью выигрыша . Эти билеты распределяются между процессами пропорционально приоритетам.

Например, пусть , и в системе есть три процесса с приоритетами 1, 2, 3. Тогда первый процесс может получить 2 билета, второй – 4, а третий – 6 (общее число билетов 12, должны быть распределены все билеты). Далее проводится розыгрыш билетов и процесс, обладающий выигрышным билетом, получает право занять процессор.

При реализации дисциплины лотерейного планирования без переключения, розыгрыш должен проводиться при освобождении процессора. Для переключающей дисциплины розыгрыш может проводиться при появлении нового процесса готового к исполнению (создан или вышел из блокировки). Для поддержки интерактивных процессов розыгрыш должен проводиться периодически, по сигналам таймера.

Перед проведением розыгрыша, лотерейные билеты могут перераспределяться между процессами в соответствии с изменениями их приоритетов.

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

Дисциплины планирования с множеством очередей

Учет приоритетов процессов при их расположении в общей очереди неизбежно ведет к увеличению накладных расходов, связанных с поиском наиболее приоритетного процесса, особенно при динамически изменяющихся приоритетах.

Поэтому большинство реальных дисциплин планирования, реализующих приоритетное планирование, организуют очереди готовых процессов по принципу «отдельная очередь для каждого приоритета» и передают на выполнение процесс из непустой очереди с максимальным приоритетом.

При этом возможна реализация как статических, так и динамических приоритетов. При использовании статического приоритета, приоритет назначается процессу в момент создания и не меняется вплоть до завершения процесса. Процесс весь свой жизненный цикл проводит в одной очереди. При использовании динамического приоритета, приоритет процесса может меняться с течением времени или в зависимости от действий процесса (например, в связи с самоблокированием, запросом ввода вывода, длительным использованием процессора, длительным ожиданием и т.п.). При этом процессы переносятся между очередями в соответствии с изменениями приоритетов.

Каждая очередь может обслуживаться в соответствии с любой из ранее рассмотренных стратегий и дисциплин, но чаще всего используются дисциплины FIFO и RR.

Реализация дисциплины, использующей только статические приоритеты, тривиальна, поэтому рассмотрим только дисциплины планирования загрузки процессоров с динамическим изменением приоритетов.