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