Скачать презентацию Курс Операционные системы В. М. Волчков Тема Скачать презентацию Курс Операционные системы В. М. Волчков Тема

09b Планирование процессов.ppt

  • Количество слайдов: 37

 Курс Операционные системы В. М. Волчков Тема 6. Планирование процессов На основе слайдов Курс Операционные системы В. М. Волчков Тема 6. Планирование процессов На основе слайдов В. Е. Карпова(МФТИ) и С. Д. Кузнецова(ИНТУИТ) VMV. 2014

 Основные разделы • Уровни планирования • Критерии планирования и требования к алгоритмам • Основные разделы • Уровни планирования • Критерии планирования и требования к алгоритмам • Параметры планирования • Вытесняющее и невытесняющее планирование • Алгоритмы планирования Планирование процессов 2

 Смысл и задачи планирования Планирование – это задача распределения ограниченного набора ресурсов между Смысл и задачи планирования Планирование – это задача распределения ограниченного набора ресурсов между ограниченным количеством потребителей (этих ресурсов) Чтобы приступать к планированию необходимо знать: • что планировать (четко поставленные критерии распределения) • чем планировать (параметры, корректирующие потребление) • как планировать (алгоритмы, реализующие критерии) Конкретная задача Планирование использования процессора для обслуживания нескольких процессов Планирование процессов 2

 Уровни планирования процессов Планирование выполнения задания Применение процедуры выбора очередного задания для загрузки Уровни планирования процессов Планирование выполнения задания Применение процедуры выбора очередного задания для загрузки в машину (ещё не в процессор!!) и порождения соответствующего процесса Планирование использования процессора Применение процедуры выбора одного (из нескольких, одновременно находящихся в состоянии готовность) готового процесса, который будет переведен в состояние исполнение и получит процессор в свое распоряжение Это - различные уровни планирования процессов Планирование процессов 2

 Уровни планирования процессов § Долгосрочное планирование – планирование заданий § Среднесрочное планирование – Уровни планирования процессов § Долгосрочное планирование – планирование заданий § Среднесрочное планирование – swapping В некоторых ВС бывает выгодно временно удалить какой-либо частично выполнившийся процесс из оперативной памяти на диск, а позже вернуть его обратно для дальнейшего выполнения § Краткосрочное планирование – планирование использования процессора Планирование процессов 2

 Цели планирования § Справедливость § Эффективность § Сокращение полного времени выполнения ( turnaround Цели планирования § Справедливость § Эффективность § Сокращение полного времени выполнения ( turnaround time) § Сокращение времени ожидания ( waiting time) § Сокращение времени отклика ( response time) (4) Минимизация времени, которое затрачивается процессами (3) Обеспечение минимального время между стартом (1) Предоставление для работы каждому заданию или процессу (2) Создание условий для 100%-ой занятости процессора, (или заданиями), находящимися в очереди для загрузки, процесса (или постановкой задания в очередь для загрузки) части времени процессора, не допуская ситуаций, когда процесс не позволяя ему простаивать в ожидании процессов, готовых (5) Минимизация времени, которое требуется процессу в будучи в состоянии готовность одного пользователя постоянно занимает процессор, а процесс к исполнению (в реальных ВС загрузка процессора колеблется и его завершением интерактивных системах для ответа на запрос пользователя другого пользователя фактически не выполняется от 40 до 90 %) (отклик <4 сек сидя у дисплея) Планирование процессов 2

 Желаемые свойства алгоритмов планирования § Предсказуемость Одно и то же задание должно выполняться Желаемые свойства алгоритмов планирования § Предсказуемость Одно и то же задание должно выполняться приблизительно за одно и то же время § Минимизация накладных расходов Затраты ОС на выполнение планирования (время, память и пр. ) должны быть разумными § Равномерность загрузки вычислительной системы с предпочтением процессов, которые будут занимать малоиспользуемые ресурсы § Масштабируемость Алгоритмы должны сохранять работоспособность при увеличении нагрузки Планирование процессов 2

 Параметры планирования § Статические параметры вычислительной системы – предельные значения памяти, параметры Вн. Параметры планирования § Статические параметры вычислительной системы – предельные значения памяти, параметры Вн. У, и т. д. § Статические параметры процесса – кем запущен, степень важности, требуемые ресурсы, запрошенное процессорное время, и т. д. статические § Динамические параметры вычислительной системы – количество свободных ресурсов в данный момент. § Динамические параметры процесса – текущий приоритет, размер занимаемой оперативной памяти, использованное процессорное время и т. д. динамические Планирование процессов 2

 CPU burst и I/O burst (Важные динамические параметры процесса) Промежуток времени Фрагмент программы 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. Перевод процесса из состояния исполнение в состояние закончил Вытесняющее и невытесняющее планирование 1. Перевод процесса из состояния исполнение в состояние закончил исполнение 2. Перевод процесса из состояния исполнение в состояние ожидание Вынужденное принятие решения Принятие только вынужденных решений – невытесняющее (nonpreemptive) планирование 3. Перевод процесса из состояния исполнение в состояние готовность 4. Перевод процесса из состояния ожидание в состояние готовность Невынужденное принятие решения Принятие вынужденных и невынужденных решений – вытесняющее (preemptive) планирование Планирование процессов 2

 Алгоритмы планирования Основные алгоритмы краткосрочного планирования First Come First Served (FCFS) Round Robin Алгоритмы планирования Основные алгоритмы краткосрочного планирования First Come First Served (FCFS) Round Robin (RR) Shortest Job First (SJF) Планирование процессов 2

 Алгоритмы планирования FCFS (First Come – First Served) Процессы P 2 P 0 Алгоритмы планирования 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 Алгоритмы планирования Итог работы 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) режиме вытесняющего готовность планирования Алгоритмы планирования Вариант 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) Алгоритмы планирования RR (Round Robin) Когда выполняется процесс – возможны два варианта: 1) Остаток времени CPU burst £ кванта времени: § процесс освобождает процессор до истечения кванта § на исполнение выбирается новый процесс из начала очереди готовых 2) Остаток времени CPU burst > кванта времени: § по окончании кванта процесс помещается в конец очереди процессов, готовых к исполнению § на исполнение выбирается новый процесс из начала очереди готовых. Планирование процессов 2

 Алгоритмы планирования RR (Round Robin) Процессы P 0 P 1 P 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 Продолжительность Алгоритмы планирования 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 Алгоритмы планирования 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 Алгоритмы планирования 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 (Shortest Job First) § Алгоритм SJF как правило применяется для долгосрочного планирования § Основная сложность при реализации алгоритма SJF невозможность точного знания очередного CPU burst для исполняющихся процессов При выполнении процессов в пакетном режиме необходимое процессорное время, обычно указывает (угадывает!? ) сам пользователь Если укажет времени больше, чем нужно - будет долго ждать получения результата Если укажет времени меньшее, - задача может не досчитаться до конца Планирование процессов 2

 Алгоритмы планирования При краткосрочном планировании можно только прогнозировать длительности следующего CPU burst, исходя Алгоритмы планирования При краткосрочном планировании можно только прогнозировать длительности следующего 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) При Алгоритмы планирования Напоминание 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 пользователей в большой ВС можно применить алгоритм Алгоритмы планирования При интерактивной работе N пользователей в большой ВС можно применить алгоритм планирования, гарантирующий для каждого получить в своё распоряжении ~ 1/N часть общего процессорного времени Расчёт критерия справедливости алгоритма гарантированного планирования Пусть в системе N пользователей Обозначим для пользователя с номером i время нахождения в системе Ti Суммарное процессорное время, уже выделенное всем процессам этого пользователя в течение сеанса обозначим ti Планирование процессов 2

 Алгоритмы планирования Тогда критерий справедливости требует, чтобы каждый пользователь обязательно получил Ti/N процессорного Алгоритмы планирования Тогда критерий справедливости требует, чтобы каждый пользователь обязательно получил Ti/N процессорного времени Если ti << Ti/N, то i - й пользователь обделён Если ti >> Ti/N, то система НЕСПРАВЕДЛИВО благоволит к пользователю с номером i ВЫВОД. Для каждого пользовательского процесса надо вычислить значение коэффициента справедливости ti·N / Ti и предоставлять очередной квант времени процессу с наименьшей величиной этого коэффициента Планирование процессов 2

 Алгоритмы планирования Алгоритм гарантированного планирования § Недостаток – невозможность предугадать поведение(!!!) пользователей § Алгоритмы планирования Алгоритм гарантированного планирования § Недостаток – невозможность предугадать поведение(!!!) пользователей § Если некоторый пользователь отлучится, не прерывая сеанса работы, то по возвращении его процессы будут получать неоправданно много процессорного времени Планирование процессов 2

 Алгоритмы планирования Приоритетное планирование Каждому процессор выделяется в соответствии с приписанным к нему Алгоритмы планирования Приоритетное планирование Каждому процессор выделяется в соответствии с приписанным к нему числовым значением - приоритетом Параметры для назначения приоритета бывают: - внешние - внутренние Политика изменения приоритета: - статический приоритет - динамический приоритет Планирование процессов 2

 Алгоритмы планирования Приоритетное планирование НЕвытесняющее Процессы P 0 P 1 P 2 P Алгоритмы планирования Приоритетное планирование НЕвытесняющее Процессы 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 Алгоритмы планирования Приоритетное планирование вытесняющее Процессы 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) Алгоритмы планирования Для каждой группы создается Многоуровневые очереди своя очередь процессов, (Multilevel Queue) находящихся в состоянии готовность. Очередям приписываются Системные процессы RR фиксированные приоритеты. приоритет 0 Внутри очередей могут применяться разные алгоритмы Процессы ректората RR Для больших счетных приоритет 1 процессов (фоновых) может использоваться алгоритм FCFS Процессы кафедры RR Для интерактивных приоритет 2 процессов – алгоритм RR. Фоновые процессы FCFS Подход многоуровневых очередей приоритет 3 улучшает планирования процессов с различными характеристиками Процессы студентов RR поскольку применяется наиболее приоритет 4 подходящий им алгоритм Планирование процессов 2

 Алгоритмы планирования Многоуровневые очереди с обратной связью Клавиатурный ввод (Multilevel Feedback Queue) Развитием Алгоритмы планирования Многоуровневые очереди с обратной связью Клавиатурный ввод (Multilevel Feedback Queue) Развитием алгоритма Очередь 0 – Приоритет 0 многоуровневых RR с квантом времени 8 очередей является добавление к нему Очередь 1 – Приоритет 1 механизма RR с квантом времени 16 обратной связи Процесс не постоянно Очередь 2 – Приоритет 2 приписан к RR с квантом времени 32 определенной очереди Может мигрировать Очередь 3 – Приоритет 3 из очереди в очередь, FCFS в зависимости от своего поведения Дисковый I/O Любое другое прерывание (прерываний диска и пр. ) Планирование процессов 2

 Алгоритмы планирования Многоуровневые очереди с обратной связью (Multilevel Feedback Queue) Родившийся процесс поступает Алгоритмы планирования Многоуровневые очереди с обратной связью (Multilevel Feedback Queue) Родившийся процесс поступает в очередь 0 При выборе на исполнение он получает квант времени размером 8 единиц Если § продолжительность его CPU burst меньше этого кванта времени, процесс остается в очереди 0 § иначе переходит в очередь 1 Для процессов из очереди 1 квант равен 16 • Если укладывается - остается в очереди 1 Иначе переходит в очередь 2 - квант 32 • Если не укладывается, - в очередь 3 без квантования времени Планирование процессов 2

 Алгоритмы планирования Многоуровневые очереди с обратной связью (Multilevel Feedback Queue) Миграция процессов в Алгоритмы планирования Многоуровневые очереди с обратной связью (Multilevel Feedback Queue) Миграция процессов в обратном направлении может осуществляться по различным принципам • После завершения ожидания ввода с клавиатуры процессы из очередей 1, 2 и 3 могут помещаться в очередь 0 • После завершения дисковых операций ввода-вывода процессы из очередей 2 и 3 могут помещаться в очередь 1 • После завершения ожидания всех других событий - из очереди 3 в очередь 2 Планирование процессов 2

 Алгоритмы планирования Многоуровневые очереди с обратной связью (Multilevel Feedback Queue) Для полного описания Алгоритмы планирования Многоуровневые очереди с обратной связью (Multilevel Feedback Queue) Для полного описания необходимо задать - количество очередей в состоянии готовность - алгоритм планирования между очередями - алгоритмы планирования внутри очередей - в какую очередь помещается родившийся процесс - правила перевода процессов из одной очереди в другую Планирование процессов 2

 Заключение 1/3 • Для распределения процессорного времени между процессами в ВС применяется процедура Заключение 1/3 • Для распределения процессорного времени между процессами в ВС применяется процедура планирования процессов • Различают краткосрочное, среднесрочное и долгосрочное планирование процессов • Конкретные алгоритмы планирования процессов зависят от поставленных целей, класса решаемых задач и опираются на статические и динамические параметры процессов и компьютерных систем • Различают вытесняющий и невытесняющий режимы планирования Планирование процессов 2

 Заключение 2/3 • Простейшим алгоритмом планирования является невытесняющий алгоритм FCFS, который, однако, может Заключение 2/3 • Простейшим алгоритмом планирования является невытесняющий алгоритм FCFS, который, однако, может существенно задерживать короткие процессы, не вовремя перешедшие в состояние готовность • В системах разделения времени широкое распространение получила вытесняющая версия этого алгоритма — RR • Среди невытесняющих алгоритмов оптимальным с точки зрения среднего времени ожидания процессов является алгоритм SJF • В интерактивных системах часто используется алгоритм гарантированного планирования Планирование процессов 2

 Заключение 3/3 • Алгоритм SJF и алгоритм гарантированного планирования являются частными случаями планирования Заключение 3/3 • Алгоритм SJF и алгоритм гарантированного планирования являются частными случаями планирования с использованием приоритетов • В более общих методах приоритетного планирования применяются многоуровневые очереди процессов и многоуровневые очереди с обратной связью Будучи наиболее сложными в реализации, эти способы планирования обеспечивают гибкое поведение вычислительных систем и их адаптивность к решению задач разных классов Планирование процессов 2

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