Общие критерии для сравнения алгоритмов планирования
Планирование бывает краткосрочное, среднесрочное и долгосрочное
- использование времени ЦП
- пропускная способность (кол-во процессов в единицу времени)
- время ожидания (в очереди готовых) – влияет на приоритет процесса
- время оборота (полное время от момента поступления до завершения)
- время отклика (для интерактивных программ – время от поступления в систему до момента первого обращения к
терминалу
- предельный срок выполнения процесса
и т.д.
Используется принцип кругового планирования в рамках очередей каждого приоритета.
Если процесс не завершается или не блокируется в рамках 1 секунды – он вытесняется.
В общем случае значение приоритета есть функция
P=F (CPU, nice), т.е. в вычислении приоритета используются две изменяемые составляющие – CPU (системная) и nice (пользовательская). Учитывается история выполнения, величины CPU и nice ограничены.
Пересчет приоритета процесса происходит в момент выбора процесса для выполнения на ЦП 1 раз в секунду.
|
|
Процессам назначается базовый приоритет, чтобы их можно было разделять на фиксированные группы уровней приоритетов.
Эти группы используются для оптимизации доступа к блочным устройствам (например, к диску) и обеспечения быстрого отклика операционной системы на системные вызовы.
Группы приоритетов
(в порядке убывания)
- программа свопинга
- управление блочными устройствами ввода/вывода
- управление файлами
- управление байт-ориентированными устройствами ввода/вывода
- пользовательские процессы
Иерархия обеспечивает эффективное использование устройств ввода/вывода
СPUj (i) - время использования ЦП процессом j за время i;
Pj (i) - приоритет процесса j в начале кванта i (приоритет выше, если значение меньше);
Basej- базовый приоритет j-го процесса (необходим для разделения процессов на фиксированные группы уровней приоритетов);
nicej - пользовательская составляющая приоритета (значение может только увеличиваться до некоторого уровня).