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