23
Операционные Системы 6. Планирование процессов Брагин Алексей Владимирович [email protected] ИУ9, МГТУ им. Н.Э. Баумана

Операционные системы 2015, лекция № 6

Embed Size (px)

Citation preview

Page 1: Операционные системы 2015, лекция № 6

Операционные Системы

6. Планирование процессов

Брагин Алексей Владимирович[email protected]

ИУ9, МГТУ им. Н.Э. Баумана

Page 2: Операционные системы 2015, лекция № 6

Планирование (scheduling)

• Переключение контекста– Происходит прерывание

– Поток вызывает исключение или ловушку (trap)

– Что делать после этого? Выбирать другой поток

• Уже был затронут вопрос об очереди готовых процессов

• Решение о том, кому дать следующий квант времени – планирование– Не путать с переключением контекста, что является

просто механизмом передачи управления

© 2013 Брагин А.В. 2

Page 3: Операционные системы 2015, лекция № 6

Классы планировщиков

• Пакетный

– Ориентирован на длительные, вычислительноёмкие задачи

• Интерактивный

– Ориентирован на снижение времени отклика

• Реального времени

– Ориентированы на дедлайн (предельный срок завершения какой-либо работы)

© 2013 Брагин А.В. 3

Page 4: Операционные системы 2015, лекция № 6

Уровни планирования

• Долговременный– Решает какие новые задачи будут добавлены

• Среднесрочный– Решает, нужно ли временно выгружать программу

во вторичную память

• Краткосрочный– Решает, какому потоку дать следующий квант

процессорного времени, какой длины

– Координирует выполняющиеся потоки на разных процессорах

© 2013 Брагин А.В. 4

Page 5: Операционные системы 2015, лекция № 6

Производительность – основная задача

• Измеряется различными, часто противоречивыми, метриками– Макс. использования ЦП

– Макс. пропускной способности (число выполненных запросов в единицу времени)

– Мин. среднего времени отклика (среднее время от подачи запроса до завершения обработки ответа)

– Мин. среднего времени ожидания (среднее время от подачи запроса до начала его выполнения)

– Мин. энергии (Джоулей на инструкцию)

© 2013 Брагин А.В. 5

Page 6: Операционные системы 2015, лекция № 6

Метрики планирования• Время поступления ta: когда процесс становится «готовым»• Время ожидания Tw :время потраченное на ожидание ЦП• Время выполнения Ts : время, потраченное на выполнение на

ЦП• Время оборота Tr : общее время на ожидание и выполнение

© 2013 Брагин А.В. 6

12

43

5 прибыл

5 выполняется

ta

Tw Ts Tr =Tw + Ts

Поступление(очередь готовых)

Выполнение на ЦП

Процесс 5 задерживается предыдущими процессами, запланированными к выполнению

время

6 прибыл

Рис. из курса ОС университетаAberdeen , Великобритания

Page 7: Операционные системы 2015, лекция № 6

Алгоритмы планирования

• FIFO – первым пришёл - первым обслужен

• Кратчайшая работа следующей

• Round-robin

• Многоуровневая очередь

• Многоуровневая очередь с обратной связью

© 2013 Брагин А.В. 7

Page 8: Операционные системы 2015, лекция № 6

FIFO

• Невытесняющая многозадачность

• Процессы планируются по мере их поступления

• Время выполнения не учитывается

• Другие процессы с меньшим временем Tr вынуждены ждать (снижает отзывчивость системы)

• Когда процесс переходит в состояние готовности, он помещается в конец очереди

© 2013 Брагин А.В. 8

Page 9: Операционные системы 2015, лекция № 6

Пример 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

Page 10: Операционные системы 2015, лекция № 6

Пример FIFO 2

• Но если запланировать в другом порядке, то время отклика системы снизится!

• Допустим, процессы поступают в порядке P2, P3, P1

• Время ожидания: P2=0, P3=3, P1=6

• Среднее время ожидания: 3

© 2013 Брагин А.В. 10

Page 11: Операционные системы 2015, лекция № 6

Summary по FIFO

• Лучше подходит для длительных, требовательных к времени ЦП процессов

• Плохое использование ЦП и устройств ввода/вывода

• Среднее время ожидания сильно варьируется

© 2013 Брагин А.В. 11

Page 12: Операционные системы 2015, лекция № 6

Кратчайшая работа следующей

• Невытесняющая политика планирования

• Пытается следующей выполнить самый короткий процесс (т.е. процесс, имеющий самое короткое время обработки)

• Сложности - нужно оценивать требуемое время обработки для каждого процесса– Для пакетных заданий на основе предыдущего опыта

или вручную

– Для интерактивных заданий на основе затраченного времени

• Короткий процесс помещается в начало очереди

© 2013 Брагин А.В. 12

Page 13: Операционные системы 2015, лекция № 6

Кратчайшая работа следующей 2

• Вытесняющий вариант – сортировка по самому короткому остаточному времени

• Процессы, уже выполняющиеся на ЦП вытесняются самым близким к завершению заданием

• Меньше общее время оборота процесса

• Меньше время ожидания ЦП

© 2013 Брагин А.В. 13

Page 14: Операционные системы 2015, лекция № 6

Планирование с приоритетами

• Проблема старвации («голодания», «зависания»)

• Числовой приоритет ассоциируется с каждым процессом (меньше число – выше приоритет)

• Время ЦП выделяется процессу с наивысшим приоритетом (вытесняюще или невытесняюще)

• Алгоритм Кратчайшая Работа Следующей – это алгоритм с приоритетом = времени, требуемым процессом для работы

© 2013 Брагин А.В. 14

Page 15: Операционные системы 2015, лекция № 6

Планирование с приоритетами 2

• Старвация

– проявляется в алгоритме КРС

– Низкоприоритетные процессы могут никогда не выполниться

• Решение проблемы

– Ввести понятие «старения»: по мере течения времени увеличивать приоритет процесса

– Приоритет = Оценочное время выполнения на ЦП – время ожидания

© 2013 Брагин А.В. 15

Page 16: Операционные системы 2015, лекция № 6

Round-robin

• Название означает цикличность

• Вытесняющее планирование

• Квант времени

– Каждый процесс получает фиксированную единицу процессорного времени (напр., от 10 до 100 мс)

– После истечения кванта процессорного времени, процесс вытесняется и помещается в очередь Готовых.

– Процессы планируются всегда в том же порядке

© 2013 Брагин А.В. 16

Page 17: Операционные системы 2015, лекция № 6

Round-robin 2

• Каждый процесс получает одинаковый квант времени

– Не сложно подсчитать: Если квант времени – q, и n процессов в очереди, то каждый получит 1/n времени ЦП, кусками максимум по q.

– Никакой из процессов не ожидает больше, чем (n-1)*q единиц времени.

© 2013 Брагин А.В. 17

Page 18: Операционные системы 2015, лекция № 6

Round-robin 3

• Производительность– Если q – большое, то RR становится FIFO– Если q – малое, то всё хорошо:

• нет старвации• высокая отзывчивость системы• равное распределение времени• Но если q меньше, чем время затрачиваемое на переключение

контекста, тогда диспетчер будет неэффективным

• Недостаток: Процессы с интенсивным В/В (т.е. заблокированные в ожидании завершения В/В) полностью не используют свой квант времени, поэтому процессы с интенсивным использованием ЦП получают преимущество

© 2013 Брагин А.В. 18

Page 19: Операционные системы 2015, лекция № 6

Многоуровневые очереди

• Очередь Готовых разбивается на несколько разных очередей

– Интерактивные процессы

– Фоновые процессы (пакетная обработка)

• У каждой очереди – свой алгоритм планирования

– У интерактивных – RR

– У фоновых – FIFO

© 2013 Брагин А.В. 19

Page 20: Операционные системы 2015, лекция № 6

Многоуровневые очереди 2

• Планирование должно также осуществляться между очередями– Планирование с фиксированным приоритетом

• Вначале обслужить все интерактивные, потом все фоновые

• Возможна старвация

– Разделение времени• Каждой очереди выделяется часть времени ЦП, которое

она может распланировать между своими процессами

• Напр., 80% времени на интерактивные процессы через RR, и 20% на фоновые через FIFO

© 2013 Брагин А.В. 20

Page 21: Операционные системы 2015, лекция № 6

Многоуровневые очереди с обратной связью

• Процессы размещаются по очередям на основе затраченного времени ЦП (burst time)

© 2013 Брагин А.В. 21

Квант = 32

Квант = 64

FIFO

Page 22: Операционные системы 2015, лекция № 6

Многоуровневые очереди с обратной связью

• Планировщик определяется следующими параметрами:

– Числом очередей

– Алгоритмами планирования в каждой очереди

– Методом, используемым для определения принадлежности процесса к той или иной очереди

© 2013 Брагин А.В. 22

Page 23: Операционные системы 2015, лекция № 6

Пример• Три очереди

– Q0 – RR с квантом 16 мс– Q1 – RR с квантом 32 мс– Q2 – FIFO

• Планирование– Новый процесс помещается в конец очереди Q0

• Когда процесс из этой очереди получает ЦП, то выделяется квант времени 16 мс

• Если процесс выполняется дольше, он вытесняется и помещается в очередь Q1

– В очереди Q1 процесс помещается в конец• Когда процесс из этой очереди получает ЦП, то выделяется

квант времени 32 мс• Если процесс выполняется дольше, он вытесняется и

помещается в очередь Q2

© 2013 Брагин А.В. 23