Стратегии и критерии диспетчеризации процессов
Презентацию к данной лекции Вы можете скачать здесь.
Введение
Планирование и диспетчеризация процессора – одна из важнейших функций операционной системы. В лекции рассмотрены следующие вопросы:
- Основные понятия диспетчеризации процессов
- Критерии диспетчеризации
- Алгоритмы диспетчеризации
- Диспетчеризация нескольких процессоров
- Диспетчеризация в реальном времени
- Многоуровневые очереди.
Основные понятия диспетчеризации процессов
Диспетчеризация процессора – распределение его времени между процессами в системе. Цель диспетчеризации – максимальная загрузка процессора, достигаемая с помощью мультипрограммирования.
Исполнение любого процесса можно рассматривать как цикл CPU / I-O – чередование периодов использования процессора и ожидания ввода-вывода.
Распределение периодов активности процессора ( bursts ) и ввода-вывода изображено на рис. 11.1.
На рис. 11.2 изображена примерная гистограмма периодов активности процессора, основанная на анализе реального поведения процессов в операционных системах.
Из схемы видно, что чем короче период активности, тем выше частота таких периодов, и наоборот, т.е. частота периодов активности обратно пропорциональна их длительности.
Планировщик процессора
Планировщик – компонента ОС, которая выбирает один из нескольких процессов, загруженных в память и готовых к выполнению, и выделяет процессор для одного из них.
Решения по диспетчеризации могут быть приняты в случаях, если процесс:
- Переключается из состояния выполнения в состояние ожидания.
- Переключается из состояния выполнения в состояние готовности к выполнению.
- Переключается из состояния ожидания в состояние готовности.
- Завершается.
Диспетчеризация типов 1 и 4 обозначается термином диспетчеризация без прерывания процесса (non-preemptive).
Диспетчеризация типов 2 и 3 обозначается термином диспетчеризация с прерыванием процесса (preemptive).
Собственно диспетчер процессора
Диспетчер процессора – компонента ОС, предоставляющая процессор тому процессу, который был выбран планировщиком. Диспетчер выполняет последовательность действий:
- Переключает контекст
- Переключает процессор в пользовательский режим
- Выполняет переход по соответствующему адресу в пользовательскую программу для ее рестарта.
Скрытая активность (латентность) диспетчера (dispatch latency) – время, требуемое для диспетчера, чтобы остановить один процесс и стартовать другой. Разумеется, система должна стремиться минимизировать это время, однако набор критериев диспетчеризации более сложен.