Операционные системы 2015, лекция № 6
TRANSCRIPT
Операционные Системы
6. Планирование процессов
Брагин Алексей Владимирович[email protected]
ИУ9, МГТУ им. Н.Э. Баумана
Планирование (scheduling)
• Переключение контекста– Происходит прерывание
– Поток вызывает исключение или ловушку (trap)
– Что делать после этого? Выбирать другой поток
• Уже был затронут вопрос об очереди готовых процессов
• Решение о том, кому дать следующий квант времени – планирование– Не путать с переключением контекста, что является
просто механизмом передачи управления
© 2013 Брагин А.В. 2
Классы планировщиков
• Пакетный
– Ориентирован на длительные, вычислительноёмкие задачи
• Интерактивный
– Ориентирован на снижение времени отклика
• Реального времени
– Ориентированы на дедлайн (предельный срок завершения какой-либо работы)
© 2013 Брагин А.В. 3
Уровни планирования
• Долговременный– Решает какие новые задачи будут добавлены
• Среднесрочный– Решает, нужно ли временно выгружать программу
во вторичную память
• Краткосрочный– Решает, какому потоку дать следующий квант
процессорного времени, какой длины
– Координирует выполняющиеся потоки на разных процессорах
© 2013 Брагин А.В. 4
Производительность – основная задача
• Измеряется различными, часто противоречивыми, метриками– Макс. использования ЦП
– Макс. пропускной способности (число выполненных запросов в единицу времени)
– Мин. среднего времени отклика (среднее время от подачи запроса до завершения обработки ответа)
– Мин. среднего времени ожидания (среднее время от подачи запроса до начала его выполнения)
– Мин. энергии (Джоулей на инструкцию)
© 2013 Брагин А.В. 5
Метрики планирования• Время поступления ta: когда процесс становится «готовым»• Время ожидания Tw :время потраченное на ожидание ЦП• Время выполнения Ts : время, потраченное на выполнение на
ЦП• Время оборота Tr : общее время на ожидание и выполнение
© 2013 Брагин А.В. 6
12
43
5 прибыл
5 выполняется
ta
Tw Ts Tr =Tw + Ts
Поступление(очередь готовых)
Выполнение на ЦП
Процесс 5 задерживается предыдущими процессами, запланированными к выполнению
время
6 прибыл
Рис. из курса ОС университетаAberdeen , Великобритания
Алгоритмы планирования
• FIFO – первым пришёл - первым обслужен
• Кратчайшая работа следующей
• Round-robin
• Многоуровневая очередь
• Многоуровневая очередь с обратной связью
© 2013 Брагин А.В. 7
FIFO
• Невытесняющая многозадачность
• Процессы планируются по мере их поступления
• Время выполнения не учитывается
• Другие процессы с меньшим временем Tr вынуждены ждать (снижает отзывчивость системы)
• Когда процесс переходит в состояние готовности, он помещается в конец очереди
© 2013 Брагин А.В. 8
Пример FIFO 1
• Три процесса прибывают в одно время t=0 в порядке P1, P2, P3.
• Необходимое время для выполнения процесса:– Burst(P1)=24– Burst(P2)=3– Burst(P3)=3
• Время ожидания– Wait(P1) = 0– Wait(P2) = 24– Wait(P3) = 27– Среднее время ожидания = 17 условных единиц
© 2013 Брагин А.В. 9
Пример FIFO 2
• Но если запланировать в другом порядке, то время отклика системы снизится!
• Допустим, процессы поступают в порядке P2, P3, P1
• Время ожидания: P2=0, P3=3, P1=6
• Среднее время ожидания: 3
© 2013 Брагин А.В. 10
Summary по FIFO
• Лучше подходит для длительных, требовательных к времени ЦП процессов
• Плохое использование ЦП и устройств ввода/вывода
• Среднее время ожидания сильно варьируется
© 2013 Брагин А.В. 11
Кратчайшая работа следующей
• Невытесняющая политика планирования
• Пытается следующей выполнить самый короткий процесс (т.е. процесс, имеющий самое короткое время обработки)
• Сложности - нужно оценивать требуемое время обработки для каждого процесса– Для пакетных заданий на основе предыдущего опыта
или вручную
– Для интерактивных заданий на основе затраченного времени
• Короткий процесс помещается в начало очереди
© 2013 Брагин А.В. 12
Кратчайшая работа следующей 2
• Вытесняющий вариант – сортировка по самому короткому остаточному времени
• Процессы, уже выполняющиеся на ЦП вытесняются самым близким к завершению заданием
• Меньше общее время оборота процесса
• Меньше время ожидания ЦП
© 2013 Брагин А.В. 13
Планирование с приоритетами
• Проблема старвации («голодания», «зависания»)
• Числовой приоритет ассоциируется с каждым процессом (меньше число – выше приоритет)
• Время ЦП выделяется процессу с наивысшим приоритетом (вытесняюще или невытесняюще)
• Алгоритм Кратчайшая Работа Следующей – это алгоритм с приоритетом = времени, требуемым процессом для работы
© 2013 Брагин А.В. 14
Планирование с приоритетами 2
• Старвация
– проявляется в алгоритме КРС
– Низкоприоритетные процессы могут никогда не выполниться
• Решение проблемы
– Ввести понятие «старения»: по мере течения времени увеличивать приоритет процесса
– Приоритет = Оценочное время выполнения на ЦП – время ожидания
© 2013 Брагин А.В. 15
Round-robin
• Название означает цикличность
• Вытесняющее планирование
• Квант времени
– Каждый процесс получает фиксированную единицу процессорного времени (напр., от 10 до 100 мс)
– После истечения кванта процессорного времени, процесс вытесняется и помещается в очередь Готовых.
– Процессы планируются всегда в том же порядке
© 2013 Брагин А.В. 16
Round-robin 2
• Каждый процесс получает одинаковый квант времени
– Не сложно подсчитать: Если квант времени – q, и n процессов в очереди, то каждый получит 1/n времени ЦП, кусками максимум по q.
– Никакой из процессов не ожидает больше, чем (n-1)*q единиц времени.
© 2013 Брагин А.В. 17
Round-robin 3
• Производительность– Если q – большое, то RR становится FIFO– Если q – малое, то всё хорошо:
• нет старвации• высокая отзывчивость системы• равное распределение времени• Но если q меньше, чем время затрачиваемое на переключение
контекста, тогда диспетчер будет неэффективным
• Недостаток: Процессы с интенсивным В/В (т.е. заблокированные в ожидании завершения В/В) полностью не используют свой квант времени, поэтому процессы с интенсивным использованием ЦП получают преимущество
© 2013 Брагин А.В. 18
Многоуровневые очереди
• Очередь Готовых разбивается на несколько разных очередей
– Интерактивные процессы
– Фоновые процессы (пакетная обработка)
• У каждой очереди – свой алгоритм планирования
– У интерактивных – RR
– У фоновых – FIFO
© 2013 Брагин А.В. 19
Многоуровневые очереди 2
• Планирование должно также осуществляться между очередями– Планирование с фиксированным приоритетом
• Вначале обслужить все интерактивные, потом все фоновые
• Возможна старвация
– Разделение времени• Каждой очереди выделяется часть времени ЦП, которое
она может распланировать между своими процессами
• Напр., 80% времени на интерактивные процессы через RR, и 20% на фоновые через FIFO
© 2013 Брагин А.В. 20
Многоуровневые очереди с обратной связью
• Процессы размещаются по очередям на основе затраченного времени ЦП (burst time)
© 2013 Брагин А.В. 21
Квант = 32
Квант = 64
FIFO
Многоуровневые очереди с обратной связью
• Планировщик определяется следующими параметрами:
– Числом очередей
– Алгоритмами планирования в каждой очереди
– Методом, используемым для определения принадлежности процесса к той или иной очереди
© 2013 Брагин А.В. 22
Пример• Три очереди
– Q0 – RR с квантом 16 мс– Q1 – RR с квантом 32 мс– Q2 – FIFO
• Планирование– Новый процесс помещается в конец очереди Q0
• Когда процесс из этой очереди получает ЦП, то выделяется квант времени 16 мс
• Если процесс выполняется дольше, он вытесняется и помещается в очередь Q1
– В очереди Q1 процесс помещается в конец• Когда процесс из этой очереди получает ЦП, то выделяется
квант времени 32 мс• Если процесс выполняется дольше, он вытесняется и
помещается в очередь Q2
© 2013 Брагин А.В. 23