Спонсор: Microsoft
Опубликован: 13.11.2010 | Уровень: для всех | Доступ: платный | ВУЗ: Санкт-Петербургский государственный университет
Лекция 11:

Стратегии и критерии диспетчеризации процессов

< Лекция 10 || Лекция 11: 12345 || Лекция 12 >

Предсказание длины следующего периода активности

Попытаемся теперь предложить и применить формулы для предсказания следующего периода активности процесса. Подобные оценки помогли бы разработчикам ОС реализовать оптимальную стратегию диспетчеризации. Используем уже известные фактические длины предыдущих периодов активности и принцип экспоненциального усреднения. Пусть:

  • tn – фактическая длина n- го периода активности процесса;
  • \tau _{n} – предсказанная длина n- го периода активности процесса.

Будем искать значение \tau _{n+1} для предсказания следующего периода активности процесса как следующую линейную комбинацию tn и \tau _{n}:

\tau _{n+1} = \alpha  t_{n} + (1 – \alpha ) \tau _{n}.

где \alpha – число между 0 и 1. Коэффициент \alpha характеризует, в какой степени при предсказании учитывается недавняя история вычислений.

Пример предсказания следующего периода активности по приведенной формуле приведен на рис. 11.7.

Пример предсказания следующего периода активности.

увеличить изображение
Рис. 11.7. Пример предсказания следующего периода активности.

При \alpha  =0 \tau _{n+1} = \tau _{n}, т.е. недавняя история не учитывается.

При \alpha  =1 \tau _{n+1} = t_{n} т.е. учитывается только фактическая длина последнего периода активности.

Если обобщить приведенную формулу, получим:

\tau _{n+1} = \alpha  t_{n}+(1 - \alpha ) \alpha  t^{n} -1 + … +(1 - \alpha  )^{j} \alpha  t_{n} -1 + … +(1 - \alpha  )^{n+1} t_{n} \tau _{0}.

Поскольку \alpha и (1 - \alpha ) не превосходят 1, каждый последующий терм имеет меньший вес, чем его предшественник.

Диспетчеризация по приоритетам

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

Данная стратегия, как и предыдущая, имеет варианты с прерыванием и без прерывания.

Более того, стратегию SJF можно рассматривать как диспетчеризацию по приоритетам, в которой приоритетом является очередное время активности.

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

Традиционным способом решение данной проблемы в операционных системах является учет возраста процесса ( aging ): c течением времени приоритет процесса повышается системой.

Стратегия Round Robin (RR)

Стратегия Round Robin (RR, круговая система) – это предоставление всем процессам по очереди одинаковых квантов времени. Название стратегии происходит от названия популярной в США карточной игры.

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

Если всего имеется n процессов в очереди готовых к выполнению, и квант времени равен q, то каждый процесс получает 1/ n процессорного времени порциями самое большее по q единиц за один раз. Ни один процесс не ждет больше, чем (n-1) q единиц времени.

Производительность данной стратегии зависит от коэффициента q:

  • если q велико, то стратегия фактически эквивалентна стратегии FCFS;
  • если q мало, то q должно быть большим, чем время контекстного переключения, иначе слишком велики окажутся накладные расходы на переключения с одного процесса на другой.

Рассмотрим пример применения стратегии RR. Пусть в системе имеются следующие процессы со следующими временами активности:

Процесc Время активности
P1 53
P2 17
P3 68
P4 24

Схема диспетчеризации процессора по стратегии RR с квантом времени q = 20 приведена на рис. 11.8.

Пример применения стратегии RR (q = 20).

Рис. 11.8. Пример применения стратегии RR (q = 20).

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

На рис. 11.9 иллюстрируется зависимость числа контекстных переключений от кванта времени: чем меньше квант, тем больше число переключений контекста.

Квант времени процессора и время переключения контекста.

увеличить изображение
Рис. 11.9. Квант времени процессора и время переключения контекста.

На рис. 11.10 приведен пример зависимости времени оборота от кванта времени. В данном случае зависимость носит более сложный характер.

Многоуровневая очередь

Поскольку процессы в системе могут иметь различную специфику (например, пакетные и интерактивные), на практике в операционных системах очередь готовых к выполнению процессов делится на две очереди:

  • основная (интерактивные процессы)
  • фоновая (пакетные процессы).

Каждая очередь имеет свой собственный алгоритм диспетчеризации: основная –RR, фоновая – FCFS.

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

  • С фиксированным приоритетом - обслуживание всех процессов из основной очереди, затем – из фоновой. При этом имеется вероятность "голодания".
  • Выделение отрезка времени – каждая очередь получает некоторый отрезок времени ЦП, который она может распределять между процессами; например, 80% - на RR в основной очереди; 20% на FCFS в фоновой очереди.

На рис. 11.11 приведен реалистичный пример структуры многоуровневой очереди для диспетчеризации процессов. Наивысший приоритет имеют системные процессы, далее – интерактивные, еще меньший – интерактивные с вызовами текстовых редакторов (они занимают значительно больше времени из-за медленной работы пользователей); затем следуют пакетные и, наконец, студенческие процессы. Такова реальная ситуация, хотя автор и не считает справедливым "дискриминацию" студенческих процессов: возможны ситуации, когда именно им следует отдавать наивысший приоритет после системных – например, незадолго до защит дипломных работ.

< Лекция 10 || Лекция 11: 12345 || Лекция 12 >
Василий Четвертаков
Василий Четвертаков
Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!

Константин Леденев
Константин Леденев
Россия
Олег Равков
Олег Равков
Россия