SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

MySQL Server Settings Tuning
MySQL Server Settings TuningMySQL Server Settings Tuning
MySQL Server Settings Tuning
guest5ca94b
 

What's hot (20)

Tzu-Li (Gordon) Tai - Stateful Stream Processing with Apache Flink
Tzu-Li (Gordon) Tai - Stateful Stream Processing with Apache FlinkTzu-Li (Gordon) Tai - Stateful Stream Processing with Apache Flink
Tzu-Li (Gordon) Tai - Stateful Stream Processing with Apache Flink
 
Where is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in FlinkWhere is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in Flink
 
Average Active Sessions - OaktableWorld 2013
Average Active Sessions - OaktableWorld 2013Average Active Sessions - OaktableWorld 2013
Average Active Sessions - OaktableWorld 2013
 
Performance Tuning - Memory leaks, Thread deadlocks, JDK tools
Performance Tuning -  Memory leaks, Thread deadlocks, JDK toolsPerformance Tuning -  Memory leaks, Thread deadlocks, JDK tools
Performance Tuning - Memory leaks, Thread deadlocks, JDK tools
 
Facebook Presto presentation
Facebook Presto presentationFacebook Presto presentation
Facebook Presto presentation
 
Deploying Flink on Kubernetes - David Anderson
 Deploying Flink on Kubernetes - David Anderson Deploying Flink on Kubernetes - David Anderson
Deploying Flink on Kubernetes - David Anderson
 
DB Time, Average Active Sessions, and ASH Math - Oracle performance fundamentals
DB Time, Average Active Sessions, and ASH Math - Oracle performance fundamentalsDB Time, Average Active Sessions, and ASH Math - Oracle performance fundamentals
DB Time, Average Active Sessions, and ASH Math - Oracle performance fundamentals
 
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
 
MySQL Server Settings Tuning
MySQL Server Settings TuningMySQL Server Settings Tuning
MySQL Server Settings Tuning
 
Process Synchronization in operating system | mutex | semaphore | race condition
Process Synchronization in operating system | mutex | semaphore | race conditionProcess Synchronization in operating system | mutex | semaphore | race condition
Process Synchronization in operating system | mutex | semaphore | race condition
 
Apache Flink in the Cloud-Native Era
Apache Flink in the Cloud-Native EraApache Flink in the Cloud-Native Era
Apache Flink in the Cloud-Native Era
 
Introduction to operating system, system calls and interrupts
Introduction to operating system, system calls and interruptsIntroduction to operating system, system calls and interrupts
Introduction to operating system, system calls and interrupts
 
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
 
Flink Batch Processing and Iterations
Flink Batch Processing and IterationsFlink Batch Processing and Iterations
Flink Batch Processing and Iterations
 
Resource Aware Scheduling in Apache Storm
Resource Aware Scheduling in Apache StormResource Aware Scheduling in Apache Storm
Resource Aware Scheduling in Apache Storm
 
분산저장시스템 개발에 대한 12가지 이야기
분산저장시스템 개발에 대한 12가지 이야기분산저장시스템 개발에 대한 12가지 이야기
분산저장시스템 개발에 대한 12가지 이야기
 
Parallelization of Structured Streaming Jobs Using Delta Lake
Parallelization of Structured Streaming Jobs Using Delta LakeParallelization of Structured Streaming Jobs Using Delta Lake
Parallelization of Structured Streaming Jobs Using Delta Lake
 
Flink Forward Berlin 2017: Stefan Richter - A look at Flink's internal data s...
Flink Forward Berlin 2017: Stefan Richter - A look at Flink's internal data s...Flink Forward Berlin 2017: Stefan Richter - A look at Flink's internal data s...
Flink Forward Berlin 2017: Stefan Richter - A look at Flink's internal data s...
 
Threads in Operating System | Multithreading | Interprocess Communication
Threads in Operating System | Multithreading | Interprocess CommunicationThreads in Operating System | Multithreading | Interprocess Communication
Threads in Operating System | Multithreading | Interprocess Communication
 
Espresso Database Replication with Kafka, Tom Quiggle
Espresso Database Replication with Kafka, Tom QuiggleEspresso Database Replication with Kafka, Tom Quiggle
Espresso Database Replication with Kafka, Tom Quiggle
 

Similar to Операционные системы 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
 

Similar to Операционные системы 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
 
Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4
 
Модуль 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
 
обзор методов оптимистического управления временем
обзор методов оптимистического управления временемобзор методов оптимистического управления временем
обзор методов оптимистического управления временем
 

More from Aleksey Bragin

More from Aleksey Bragin (7)

Информационная безопасность в открытых проектах (РИФ 2015)
Информационная безопасность в открытых проектах (РИФ 2015) Информационная безопасность в открытых проектах (РИФ 2015)
Информационная безопасность в открытых проектах (РИФ 2015)
 
Обратные фьючерсы в биткойнах
Обратные фьючерсы в биткойнахОбратные фьючерсы в биткойнах
Обратные фьючерсы в биткойнах
 
Операционные системы 2015, лекция № 5
Операционные системы 2015, лекция № 5Операционные системы 2015, лекция № 5
Операционные системы 2015, лекция № 5
 
Операционные системы 2015, лекция № 3
Операционные системы 2015, лекция № 3Операционные системы 2015, лекция № 3
Операционные системы 2015, лекция № 3
 
Операционные системы 2015, лекция № 2
Операционные системы 2015, лекция № 2Операционные системы 2015, лекция № 2
Операционные системы 2015, лекция № 2
 
Операционные системы 2015, лекция № 1
Операционные системы 2015, лекция № 1Операционные системы 2015, лекция № 1
Операционные системы 2015, лекция № 1
 
ReactOS Tech Talk (ВМК МГУ, ИСП РАН)
ReactOS Tech Talk (ВМК МГУ, ИСП РАН)ReactOS Tech Talk (ВМК МГУ, ИСП РАН)
ReactOS Tech Talk (ВМК МГУ, ИСП РАН)
 

Операционные системы 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