09b Планирование процессов.ppt
- Количество слайдов: 37
Курс Операционные системы В. М. Волчков Тема 6. Планирование процессов На основе слайдов В. Е. Карпова(МФТИ) и С. Д. Кузнецова(ИНТУИТ) VMV. 2014
Основные разделы • Уровни планирования • Критерии планирования и требования к алгоритмам • Параметры планирования • Вытесняющее и невытесняющее планирование • Алгоритмы планирования Планирование процессов 2
Смысл и задачи планирования Планирование – это задача распределения ограниченного набора ресурсов между ограниченным количеством потребителей (этих ресурсов) Чтобы приступать к планированию необходимо знать: • что планировать (четко поставленные критерии распределения) • чем планировать (параметры, корректирующие потребление) • как планировать (алгоритмы, реализующие критерии) Конкретная задача Планирование использования процессора для обслуживания нескольких процессов Планирование процессов 2
Уровни планирования процессов Планирование выполнения задания Применение процедуры выбора очередного задания для загрузки в машину (ещё не в процессор!!) и порождения соответствующего процесса Планирование использования процессора Применение процедуры выбора одного (из нескольких, одновременно находящихся в состоянии готовность) готового процесса, который будет переведен в состояние исполнение и получит процессор в свое распоряжение Это - различные уровни планирования процессов Планирование процессов 2
Уровни планирования процессов § Долгосрочное планирование – планирование заданий § Среднесрочное планирование – swapping В некоторых ВС бывает выгодно временно удалить какой-либо частично выполнившийся процесс из оперативной памяти на диск, а позже вернуть его обратно для дальнейшего выполнения § Краткосрочное планирование – планирование использования процессора Планирование процессов 2
Цели планирования § Справедливость § Эффективность § Сокращение полного времени выполнения ( turnaround time) § Сокращение времени ожидания ( waiting time) § Сокращение времени отклика ( response time) (4) Минимизация времени, которое затрачивается процессами (3) Обеспечение минимального время между стартом (1) Предоставление для работы каждому заданию или процессу (2) Создание условий для 100%-ой занятости процессора, (или заданиями), находящимися в очереди для загрузки, процесса (или постановкой задания в очередь для загрузки) части времени процессора, не допуская ситуаций, когда процесс не позволяя ему простаивать в ожидании процессов, готовых (5) Минимизация времени, которое требуется процессу в будучи в состоянии готовность одного пользователя постоянно занимает процессор, а процесс к исполнению (в реальных ВС загрузка процессора колеблется и его завершением интерактивных системах для ответа на запрос пользователя другого пользователя фактически не выполняется от 40 до 90 %) (отклик <4 сек сидя у дисплея) Планирование процессов 2
Желаемые свойства алгоритмов планирования § Предсказуемость Одно и то же задание должно выполняться приблизительно за одно и то же время § Минимизация накладных расходов Затраты ОС на выполнение планирования (время, память и пр. ) должны быть разумными § Равномерность загрузки вычислительной системы с предпочтением процессов, которые будут занимать малоиспользуемые ресурсы § Масштабируемость Алгоритмы должны сохранять работоспособность при увеличении нагрузки Планирование процессов 2
Параметры планирования § Статические параметры вычислительной системы – предельные значения памяти, параметры Вн. У, и т. д. § Статические параметры процесса – кем запущен, степень важности, требуемые ресурсы, запрошенное процессорное время, и т. д. статические § Динамические параметры вычислительной системы – количество свободных ресурсов в данный момент. § Динамические параметры процесса – текущий приоритет, размер занимаемой оперативной памяти, использованное процессорное время и т. д. динамические Планирование процессов 2
CPU burst и I/O burst (Важные динамические параметры процесса) Промежуток времени Фрагмент программы непрерывного a = 1 использования CPU burst процессора b = 2 времени read c называется: Ожидание окончания ввода I/O burst CPU burst a = a + c∗b Промежуток print a времени CPU burst непрерывного ввода-вывода: Ожидание окончания вывода I/O burst Планирование процессов 2
Вытесняющее и невытесняющее планирование 1. Перевод процесса из состояния исполнение в состояние закончил исполнение 2. Перевод процесса из состояния исполнение в состояние ожидание Вынужденное принятие решения Принятие только вынужденных решений – невытесняющее (nonpreemptive) планирование 3. Перевод процесса из состояния исполнение в состояние готовность 4. Перевод процесса из состояния ожидание в состояние готовность Невынужденное принятие решения Принятие вынужденных и невынужденных решений – вытесняющее (preemptive) планирование Планирование процессов 2
Алгоритмы планирования Основные алгоритмы краткосрочного планирования First Come First Served (FCFS) Round Robin (RR) Shortest Job First (SJF) Планирование процессов 2
Алгоритмы планирования FCFS (First Come – First Served) Процессы P 2 P 0 P 1 P 1 P 0 P 2 Продолжительность CPU burst 13 1 44 13 1 Определим исполнение P 0 готовность исполнение ув – готовность Условную готовность исполнение еденицу P 1 Времени исполнение готовность P 2 исполнение 0 1 5 13 17 18 t Планирование процессов 2
Алгоритмы планирования Итог работы FCFS (1 вариант) Среднее время ожидания: (0 + 13 + 17)/3 = 10 ув Среднее полное время выполнения: (13 + 17 + 18)/3 = 16 ув Итог работы FCFS (2 вариант) Среднее время ожидания (5 + 1 + 0)/3 = 2 ув Среднее полное время выполнения: (18 + 5 + 1)/3 = 6 ув Планирование процессов 2
Алгоритмы планирования Вариант FCFS, реализованный в RR (Round Robin) режиме вытесняющего готовность планирования Процесс 4 Процесс 1 готовность Процесс 4 готовность Процесс 1 готовность Процесс 1 Процесс 3 Процесс 4 Процесс 1 Процесс 2 готовность Карусель готовность вращается Процесс 3 Процесс 2 так, исполнение что каждый процесс Процесс 3 находится около исполнение процессора небольшой Процесс 2 Процесс 3 фиксированный квант Почему происходит Процессор времени, (обычно 10 - 100 вытеснение ? миллисекунд) Планирование процессов 2
Алгоритмы планирования RR (Round Robin) Когда выполняется процесс – возможны два варианта: 1) Остаток времени CPU burst £ кванта времени: § процесс освобождает процессор до истечения кванта § на исполнение выбирается новый процесс из начала очереди готовых 2) Остаток времени CPU burst > кванта времени: § по окончании кванта процесс помещается в конец очереди процессов, готовых к исполнению § на исполнение выбирается новый процесс из начала очереди готовых. Планирование процессов 2
Алгоритмы планирования RR (Round Robin) Процессы P 0 P 1 P 2 Продолжительность CPU burst 13 4 1 Для кванта Среднее время ожидания: (5 + 4 + 8)/3 = 5, 6(6) ув времени = 4 Среднее полное время исполнения: (18+8+9)/3=11, 6(6) ув время 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 P 0 И И Г Г Г И И И И И P 1 Г Г И И P 2 Г Г Г Г И Производительность RR сильно зависит от кванта Исполнение Очередь готовых времени P 0 2 1 P 0 2 1 P 1 0 2 P 2 0 Планирование процессов 2
Алгоритмы планирования RR (Round Robin) Процессы P 0 P 1 P 2 Продолжительность CPU burst 13 4 1 Для кванта Среднее время ожидания: (5 + 2)/3 = 4 ув времени = 1 Среднее полное время исполнения: (18 + 9 + 3)/3 = 10 ув время 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 P 0 И Г Г И Г И И И И И P 1 Г И Г Г И Г И P 2 Г Г И исполнение Очередь готовых P 0 1 2 P 0 2 1 P 1 0 2 Планирование процессов 2
Алгоритмы планирования SJF (Shortest Job First) НЕвытесняющий Процессы P 0 P 1 P 2 P 3 Продолжительность CPU burst 5 3 7 1 Среднее время ожидания: (4 + 1 + 9 + 0)/4 = 3, 5 ув время 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 P 0 Г Г Г И И И P 1 Г И И P 2 Г Г Г Г И И И P 3 И исполнение готовность P 3 2 0 1 P 0 P 1 P 2 P 3 Планирование процессов 2
Алгоритмы планирования SJF (Shortest Job First) вытесняющий Процессы P 0 P 1 P 2 P 3 Продолжительность CPU burst 6 2 5 Момент появления в очереди 0 2 6 0 Среднее время ожидания: (12 + 0 + 1 + 2)/4 = 3, 75 ув время 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 P 0 Г Г Г Г И И И P 1 И И P 2 Г И И И P 3 И И Г Г И И И исполнение готовность P 3 2 0 1 P 0 P 1 P 2 P 3 Планирование процессов 2
Алгоритмы планирования SJF (Shortest Job First) § Алгоритм SJF как правило применяется для долгосрочного планирования § Основная сложность при реализации алгоритма SJF невозможность точного знания очередного CPU burst для исполняющихся процессов При выполнении процессов в пакетном режиме необходимое процессорное время, обычно указывает (угадывает!? ) сам пользователь Если укажет времени больше, чем нужно - будет долго ждать получения результата Если укажет времени меньшее, - задача может не досчитаться до конца Планирование процессов 2
Алгоритмы планирования При краткосрочном планировании можно только прогнозировать длительности следующего CPU burst, исходя из предыстории работы процесса Пусть t(n) - величина n –го CPU burst, T(n + 1) – предсказываемое значение для (n + 1) -го CPU burst, a – некоторая величина в диапазоне от 0 до 1 Записывается рекуррентное соотношение T(n + 1) = a·t(n) + (1 - a)·T(n) • Начальное T(0) задаётся произвольной константой • Первое слагаемое учитывает последнее временн. Ое поведение процесса • Второе слагаемое - его временн. Ую предысторию Планирование процессов 2
Алгоритмы планирования Напоминание T(n + 1) = a·t(n) + (1 - a)·T(n) При a = 0 получается T(n) = T(n-1) = … = T(0) Значит, все CPU burst оцениваются одинаково, исходя из некоторого начального предположения Положив a = 1, забываем о предыстории процесса Полагается, что время очередного CPU burst равно времени последнего CPU burst: T(n+1) = t(n) Обычно выбирают a =½ для равноценного учета последнего поведения и предыстории Tакой выбор a удобен и для быстрой организации T(n + 1) = ( t(n) + T(n) ) / 2 вычисления оценки T(n + 1) Планирование процессов 2
Алгоритмы планирования При интерактивной работе N пользователей в большой ВС можно применить алгоритм планирования, гарантирующий для каждого получить в своё распоряжении ~ 1/N часть общего процессорного времени Расчёт критерия справедливости алгоритма гарантированного планирования Пусть в системе N пользователей Обозначим для пользователя с номером i время нахождения в системе Ti Суммарное процессорное время, уже выделенное всем процессам этого пользователя в течение сеанса обозначим ti Планирование процессов 2
Алгоритмы планирования Тогда критерий справедливости требует, чтобы каждый пользователь обязательно получил Ti/N процессорного времени Если ti << Ti/N, то i - й пользователь обделён Если ti >> Ti/N, то система НЕСПРАВЕДЛИВО благоволит к пользователю с номером i ВЫВОД. Для каждого пользовательского процесса надо вычислить значение коэффициента справедливости ti·N / Ti и предоставлять очередной квант времени процессу с наименьшей величиной этого коэффициента Планирование процессов 2
Алгоритмы планирования Алгоритм гарантированного планирования § Недостаток – невозможность предугадать поведение(!!!) пользователей § Если некоторый пользователь отлучится, не прерывая сеанса работы, то по возвращении его процессы будут получать неоправданно много процессорного времени Планирование процессов 2
Алгоритмы планирования Приоритетное планирование Каждому процессор выделяется в соответствии с приписанным к нему числовым значением - приоритетом Параметры для назначения приоритета бывают: - внешние - внутренние Политика изменения приоритета: - статический приоритет - динамический приоритет Планирование процессов 2
Алгоритмы планирования Приоритетное планирование НЕвытесняющее Процессы P 0 P 1 P 2 P 3 Продолжительность CPU burst 6 2 5 Момент появления в очереди 0 2 6 0 Приоритет 4 3 2 1 время 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 P 0 Г Г Г Г Г Г Г Г И И И P 1 Г Г Г И И P 2 Г И И И P 3 И И И исполнение готовность P 3 2 0 1 P 0 P 1 P 2 P 3 Планирование процессов 2
Алгоритмы планирования Приоритетное планирование вытесняющее Процессы P 0 P 1 P 2 P 3 Продолжительность CPU burst 6 2 5 Момент появления в очереди 0 2 6 0 Приоритет 4 3 2 1 время 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 P 0 Г Г Г Г Г Г Г Г И И И P 1 Г Г Г И Г Г Г Г И P 2 И И И P 3 И И И исполнение готовность P 3 2 0 1 P 0 P 1 P 2 P 3 Планирование процессов 2
Алгоритмы планирования Для каждой группы создается Многоуровневые очереди своя очередь процессов, (Multilevel Queue) находящихся в состоянии готовность. Очередям приписываются Системные процессы RR фиксированные приоритеты. приоритет 0 Внутри очередей могут применяться разные алгоритмы Процессы ректората RR Для больших счетных приоритет 1 процессов (фоновых) может использоваться алгоритм FCFS Процессы кафедры RR Для интерактивных приоритет 2 процессов – алгоритм RR. Фоновые процессы FCFS Подход многоуровневых очередей приоритет 3 улучшает планирования процессов с различными характеристиками Процессы студентов RR поскольку применяется наиболее приоритет 4 подходящий им алгоритм Планирование процессов 2
Алгоритмы планирования Многоуровневые очереди с обратной связью Клавиатурный ввод (Multilevel Feedback Queue) Развитием алгоритма Очередь 0 – Приоритет 0 многоуровневых RR с квантом времени 8 очередей является добавление к нему Очередь 1 – Приоритет 1 механизма RR с квантом времени 16 обратной связи Процесс не постоянно Очередь 2 – Приоритет 2 приписан к RR с квантом времени 32 определенной очереди Может мигрировать Очередь 3 – Приоритет 3 из очереди в очередь, FCFS в зависимости от своего поведения Дисковый I/O Любое другое прерывание (прерываний диска и пр. ) Планирование процессов 2
Алгоритмы планирования Многоуровневые очереди с обратной связью (Multilevel Feedback Queue) Родившийся процесс поступает в очередь 0 При выборе на исполнение он получает квант времени размером 8 единиц Если § продолжительность его CPU burst меньше этого кванта времени, процесс остается в очереди 0 § иначе переходит в очередь 1 Для процессов из очереди 1 квант равен 16 • Если укладывается - остается в очереди 1 Иначе переходит в очередь 2 - квант 32 • Если не укладывается, - в очередь 3 без квантования времени Планирование процессов 2
Алгоритмы планирования Многоуровневые очереди с обратной связью (Multilevel Feedback Queue) Миграция процессов в обратном направлении может осуществляться по различным принципам • После завершения ожидания ввода с клавиатуры процессы из очередей 1, 2 и 3 могут помещаться в очередь 0 • После завершения дисковых операций ввода-вывода процессы из очередей 2 и 3 могут помещаться в очередь 1 • После завершения ожидания всех других событий - из очереди 3 в очередь 2 Планирование процессов 2
Алгоритмы планирования Многоуровневые очереди с обратной связью (Multilevel Feedback Queue) Для полного описания необходимо задать - количество очередей в состоянии готовность - алгоритм планирования между очередями - алгоритмы планирования внутри очередей - в какую очередь помещается родившийся процесс - правила перевода процессов из одной очереди в другую Планирование процессов 2
Заключение 1/3 • Для распределения процессорного времени между процессами в ВС применяется процедура планирования процессов • Различают краткосрочное, среднесрочное и долгосрочное планирование процессов • Конкретные алгоритмы планирования процессов зависят от поставленных целей, класса решаемых задач и опираются на статические и динамические параметры процессов и компьютерных систем • Различают вытесняющий и невытесняющий режимы планирования Планирование процессов 2
Заключение 2/3 • Простейшим алгоритмом планирования является невытесняющий алгоритм FCFS, который, однако, может существенно задерживать короткие процессы, не вовремя перешедшие в состояние готовность • В системах разделения времени широкое распространение получила вытесняющая версия этого алгоритма — RR • Среди невытесняющих алгоритмов оптимальным с точки зрения среднего времени ожидания процессов является алгоритм SJF • В интерактивных системах часто используется алгоритм гарантированного планирования Планирование процессов 2
Заключение 3/3 • Алгоритм SJF и алгоритм гарантированного планирования являются частными случаями планирования с использованием приоритетов • В более общих методах приоритетного планирования применяются многоуровневые очереди процессов и многоуровневые очереди с обратной связью Будучи наиболее сложными в реализации, эти способы планирования обеспечивают гибкое поведение вычислительных систем и их адаптивность к решению задач разных классов Планирование процессов 2
Планирование процессов