Стратегии и критерии диспетчеризации процессов
Краткие итоги
Диспетчеризация процессора – предоставление всем процессам в системе по очереди в определенном порядке квантов процессорного времени. Главной целью диспетчеризации является максимальная загрузка процессора.
Работа любого процесса в системе представляется как последовательность чередований фаз активности процессора и активности ввода-вывода. Частота периодов активности процессора обратно пропорциональна их длительности.
Планировщик – компонента ОС, планирующая выделение квантов времени процессам по определенной стратегии. Различаются стратегии с прерыванием процессов (когда при вводе нового более короткого или более приоритетного процесса в систему текущий процесс прерывается) и без прерывания процессов.
Диспетчер – компонента ОС, выполняющая само переключение процессора с одного процесса на другой. Время, которое на это требуется, называется скрытой активностью (латентностью) диспетчера и должно быть минимизировано.
Основные критерии диспетчеризации – использование процессора (максимизируется), пропускная способность системы (максимизируется), среднее время обработки одного процесса (минимизируется), среднее время ожидания одним процессом (минимизируется), среднее время ответа системы (минимизируется).
Для иллюстрации стратегий диспетчеризации используются диаграммы Ганта с изображением временной линейки, имен и периодов активности каждого процесса.
Стратегия диспетчеризации First-Come-First-Served (FCFS) – предоставление ресурсов процессора процессам в порядке их ввода в систему, независимо от их длительности. При этом время ожидания может оказаться большим, особенно если первым в систему вводится более длительный процесс (что называется эффектом сопровождения). Ситуация, когда первыми вводятся более короткие процессы, более благоприятна.
Стратегия Shortest-Job-First (SJF) – предоставление ресурсов процессора более короткому процессу или сопроцессу, оставшееся время выполнения которого минимально (Shortest-Remaining-Time-First, SRTF). Данная стратегия обеспечивает минимальное среднее время ожидания процессов.
Метод экспоненциального усреднения позволяет вычислить предсказываемую длину следующего периода активности по фактическим и предсказанным длинам предыдущих периодов активности.
Диспетчеризация по приоритетам предоставляет первым ресурсы процессора более высокоприоритетному процессу. Чтобы избежать ситуации "голодания", ОС постепенно повышает приоритеты процессов, длительное время находящихся в системе.
Стратегия Round Robin (RR) предоставляет всем процессам по очереди одинаковые кванты времени процессора. Квант времени не должен быть слишком мал, иначе накладные расходы на переключение процессов оказываются сравнимыми с полезным временем процессора. Стратегия RR обеспечивает лучшее время ответа, чем SJF, но худшее время оборота.
Число переключений контекста с процесса на процесс возрастает с уменьшением выделяемого кванта времени. Время оборота зависит от кванта времени более сложным образом.
Для обработки процессов различных классов и приоритетов (например, пакетных и интерактивных) ОС создает многоуровневые аналитические очереди процессов, каждая из которых обслуживается по различным стратегиям и (или) предоставляет процессам кванты времени различного размера. Процесс при необходимости может быть переведен из одной очереди в другую.
При планировании загрузки многопроцессорных систем учитывается их симметричность или асимметричность. Планирование их загрузки гораздо более сложно. В асимметричных системах не требуется синхронизировать процессы по системным структурам данных, так как они доступны процессу только на одном процессоре.
Для систем реального времени наиболее важным является предоставление наивысших приоритетов критическим процессам реального времени, решающим основную задачу системы.
В ОС Solaris и Windows 2000 выделяются процессы нескольких классов, для которых, соответственно, выделяются различные приоритеты. В системе Solaris для каждого класса процессов имеется свой планировщик.
Набор для практики
Вопросы
- Что такое диспетчеризация процессора?
- В чем основная цель диспетчеризации процессора?
- Что такое цикл CPU – I/O?
- Как зависит частота периодов активности процессора от их длительности?
- Что такое планировщик?
- Какие разновидности стратегий, с точки зрения прерывания или избежания прерывания процессов, использует планировщик?
- Что такое стратегия без прерывания процессов?
- Что такое стратегия с прерыванием процессов?
- Что такое диспетчер?
- Что такое латентность диспетчера и каким образом следует оптимизировать данный показатель?
- Каковы основные критерии диспетчеризации?
- Что такое использование (утилизация) процессора и как следует оптимизировать данный показатель?
- Что такое пропускная способность системы и как следует оптимизировать данный показатель?
- Что такое время обработки и как следует оптимизировать данный показатель?
- Что такое время ожидания и как следует оптимизировать данный показатель?
- Что такое время ответа и как следует оптимизировать данный показатель?
- Что такое диаграмма Ганта?
- В чем суть стратегии FCFS и каковы ее недостатки?
- В чем суть стратегии SJF (и SRTF) и оптимальность по какому критерию она обеспечивает?
- Каким образом и по каким формулам вычисляется предсказание длины следующего периода активности процессора?
- В чем суть диспетчеризации по приоритетам?
- Что такое проблема голодания процессов и каково ее решение в ОС?
- В чем суть стратегии RR, оптимальность по какому критерию она обеспечивает и по какому критерию она хуже, чем SJF?
- Как зависит число контекстных переключений от величины кванта времени?
- Как зависит время оборота от величины кванта времени?
- Что такое многоуровневая аналитическая очередь и процессы каких классов обрабатываются с помощью многоуровневых очередей?
- Каковы особенности планирования загрузки многопроцессорных систем?
- Каковы особенности планирования в системах реального времени?
Упражнения
- Реализуйте модель поведения процесса с чередованием периодов активности ЦП и ввода-вывода (времена периодов изменяются по какому-либо случайному закону) и визуализацией их в виде графических схем и гистограмм зависимости частоты периодов активности от их длительности.
- Реализуйте модель представления процесса в системе и алгоритм диспетчера, выполняющего переключение контекста между процессами.
- Реализуйте стратегию диспетчеризации FCFS с визуализацией ее результатов в виде диаграмм Ганта.
- Реализуйте стратегию диспетчеризации SJF с визуализацией ее результатов в виде диаграмм Ганта.
- Реализуйте стратегию диспетчеризации RR с визуализацией ее результатов в виде диаграмм Ганта.
- Реализуйте стратегию диспетчеризации по приоритетам с визуализацией ее результатов в виде диаграмм Ганта.
- Реализуйте вычисление предсказываемой длины следующего периода активности по методу экспоненциального усреднения.
- Реализуйте многоуровневую очередь для пакетных и интерактивных процессов и алгоритм диспетчеризации с помощью многоуровневой очереди.
Темы для курсовых работ, рефератов, эссе
- Обзор методов и стратегий диспетчеризации процессора в ОС (реферат).
- Обзор реализаций планировщиков и диспетчеров в операционных системных с открытым исходным кодом (реферат).
- Анализ критериев диспетчеризации и методов их оптимизации в операционных системах (реферат).
- Методы предсказания длины следующего периода активности процесса при диспетчеризации процессов в ОС (реферат).
- Реализация модели поведения процесса с чередованием периодов активности ЦП и ввода-вывода (времена периодов изменяются по какому-либо случайному закону) и визуализацией их в виде графических схем и гистограмм зависимости частоты периодов активности от их длительности (курсовая работа).
- Реализация модели представления процесса в системе и алгоритм диспетчера, выполняющего переключение контекста между процессами (курсовая работа).
- Реализация стратегии диспетчеризации FCFS с визуализацией ее результатов в виде диаграмм Ганта (курсовая работа).
- Реализация стратегии диспетчеризации SJF с визуализацией ее результатов в виде диаграмм Ганта (курсовая работа).
- Реализация стратегии диспетчеризации RR с визуализацией ее результатов в виде диаграмм Ганта (курсовая работа).
- Реализация стратегии диспетчеризации по приоритетам с визуализацией ее результатов в виде диаграмм Ганта (курсовая работа).
- Реализация вычисления предсказываемой длины следующего периода активности по методу экспоненциального усреднения (курсовая работа).
- Реализация многоуровневой очереди для пакетных и интерактивных процессов и алгоритма диспетчеризации с помощью многоуровневой очереди (курсовая работа).
- Планирование и диспетчеризация процессоров в системе Solaris (реферат).
- Планирование и диспетчеризация процессов в системе Windows 2000 (реферат).