SlideShare une entreprise Scribd logo
1  sur  23
Операционные Системы
6. Планирование процессов
Брагин Алексей Владимирович
aleksey@reactos.org
ИУ9, МГТУ им. Н.Э. Баумана
Планирование (scheduling)
• Переключение контекста
– Происходит прерывание
– Поток вызывает исключение или ловушку (trap)
– Что делать после этого? Выбирать другой поток
• Уже был затронут вопрос об очереди готовых
процессов
• Решение о том, кому дать следующий квант
времени – планирование
– Не путать с переключением контекста, что является
просто механизмом передачи управления
© 2013 Брагин А.В. 2
Классы планировщиков
• Пакетный
– Ориентирован на длительные,
вычислительноёмкие задачи
• Интерактивный
– Ориентирован на снижение времени отклика
• Реального времени
– Ориентированы на дедлайн (предельный срок
завершения какой-либо работы)
© 2013 Брагин А.В. 3
Уровни планирования
• Долговременный
– Решает какие новые задачи будут добавлены
• Среднесрочный
– Решает, нужно ли временно выгружать программу
во вторичную память
• Краткосрочный
– Решает, какому потоку дать следующий квант
процессорного времени, какой длины
– Координирует выполняющиеся потоки на разных
процессорах
© 2013 Брагин А.В. 4
Производительность – основная
задача
• Измеряется различными, часто
противоречивыми, метриками
– Макс. использования ЦП
– Макс. пропускной способности (число
выполненных запросов в единицу времени)
– Мин. среднего времени отклика (среднее время от
подачи запроса до завершения обработки ответа)
– Мин. среднего времени ожидания (среднее время
от подачи запроса до начала его выполнения)
– Мин. энергии (Джоулей на инструкцию)
© 2013 Брагин А.В. 5
Метрики планирования
• Время поступления ta: когда процесс становится «готовым»
• Время ожидания Tw :время потраченное на ожидание ЦП
• Время выполнения Ts : время, потраченное на выполнение на
ЦП
• Время оборота Tr : общее время на ожидание и выполнение
© 2013 Брагин А.В. 6
1
2
4
3
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

Contenu connexe

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

Настройка производительности. Планировщик ввода/вывода
Настройка производительности. Планировщик ввода/выводаНастройка производительности. Планировщик ввода/вывода
Настройка производительности. Планировщик ввода/вывода
Andrey Markelov
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Ontico
 
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Yandex
 
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Yandex
 
обзор методов оптимистического управления временем
обзор методов оптимистического управления временемобзор методов оптимистического управления временем
обзор методов оптимистического управления временем
Alexander Nevidimov
 

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

Процессы и потоки. Планирование и взаимоблокировки
Процессы и потоки. Планирование и взаимоблокировкиПроцессы и потоки. Планирование и взаимоблокировки
Процессы и потоки. Планирование и взаимоблокировки
 
презентация 2
презентация 2презентация 2
презентация 2
 
PT Task Control for bpm'online
PT Task Control for bpm'onlinePT Task Control for bpm'online
PT Task Control for bpm'online
 
Модуль 6. Лекция 29-30. Управление сроками проекта
Модуль 6. Лекция 29-30. Управление сроками проектаМодуль 6. Лекция 29-30. Управление сроками проекта
Модуль 6. Лекция 29-30. Управление сроками проекта
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
 
Жизнь проекта на production
Жизнь проекта на productionЖизнь проекта на production
Жизнь проекта на production
 
Настройка производительности. Планировщик ввода/вывода
Настройка производительности. Планировщик ввода/выводаНастройка производительности. Планировщик ввода/вывода
Настройка производительности. Планировщик ввода/вывода
 
производственное планирование Erp
производственное планирование Erpпроизводственное планирование Erp
производственное планирование Erp
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
 
Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)
 
Управление проектами с использованием метода критической цепи
Управление проектами с использованием метода критической цепиУправление проектами с использованием метода критической цепи
Управление проектами с использованием метода критической цепи
 
20070414 Toc Pm
20070414 Toc Pm20070414 Toc Pm
20070414 Toc Pm
 
Модуль 6. Лекция 27-28. Управление сроками проекта
Модуль 6. Лекция 27-28. Управление сроками проектаМодуль 6. Лекция 27-28. Управление сроками проекта
Модуль 6. Лекция 27-28. Управление сроками проекта
 
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
 
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
 
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX ThreadsПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
 
Управление компанией с использованием метода критического цепи (МКЦ)
Управление компанией с использованием метода критического цепи (МКЦ)Управление компанией с использованием метода критического цепи (МКЦ)
Управление компанией с использованием метода критического цепи (МКЦ)
 
Практика внедрения Scrum
Практика внедрения ScrumПрактика внедрения Scrum
Практика внедрения Scrum
 
обзор методов оптимистического управления временем
обзор методов оптимистического управления временемобзор методов оптимистического управления временем
обзор методов оптимистического управления временем
 
Linux Kernel Processes
Linux Kernel ProcessesLinux Kernel Processes
Linux Kernel Processes
 

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

  • 1. Операционные Системы 6. Планирование процессов Брагин Алексей Владимирович aleksey@reactos.org ИУ9, МГТУ им. Н.Э. Баумана
  • 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