Transcript готовность
Основы операционных систем
Лекция 3. Планирование процессов
Уровни планирования процессов
Долгосрочное планирование – планирование заданий.
Среднесрочное планирование – swapping.
Краткосрочное планирование – планирование использования процессора.
Цели планирования
Справедливость Эффективность Сокращение полного времени выполнения (turnaround time) Сокращение времени ожидания (waiting time) Сокращение времени отклика (response time)
Желаемые свойства алгоритмов планирования
Предсказуемость Минимизация накладных расходов. Равномерность загрузки вычислительной системы. Масштабируемость.
Параметры планирования
Статические параметры вычислительной системы – например, предельные значения ее ресурсов.
Статические параметры процесса – кем запущен, степень важности, запрошенное процессорное время, какие требуются ресурсы и т.д.
статические Динамические параметры вычислительной системы – например, количество свободных ресурсов в данный момент.
Динамические параметры процесса – текущий приоритет, размер занимаемой оперативной памяти, использованное процессорное время и т.д.
динамические
CPU burst и I/O burst
Важные динамические параметры процесса a=1 b=2 read c Ожидание окончания ввода a=a+c ∗ b print a Ожидание окончания вывода CPU burst I/O burst CPU burst I/O burst
Вытесняющее и невытесняющее планирование
1.
2.
Перевод процесса из состояния
исполнение закончил исполнение
Перевод процесса из состояния
исполнение ожидание
в состояние в состояние Вынужденное принятие решения Принятие только вынужденных решений – невытесняющее планирование 3.
4.
Перевод процесса из состояния
исполнение готовность
Перевод процесса из состояния
готовность ожидание
в состояние в состояние Невынужденное принятие решения Принятие вынужденных и невынужденных решений – вытесняющее планирование
Алгоритмы планирования
FCFS (First Come – First Served) P 0 P 1 P 2 P 0
готовность исполнение
P 1 P 2 0 1
готовность исполнение
5
исполнение исполнение исполнение
13 17 t
Алгоритмы планирования
RR (Round Robin) Процессор
Алгоритмы планирования
RR (Round Robin) Остаток времени CPU burst <= кванта времени: – процесс освобождает процессор до истечения кванта; – на исполнение выбираем новый процесс из начала очереди готовых; Остаток времени CPU burst >= кванта времени: – По окончании кванта процесс помещается в конец очереди готовых к исполнению процессов; – на исполнение выбираем новый процесс из начала очереди готовых.
Алгоритмы планирования
RR (Round Robin) Процессы Продолжительность CPU burst P 0 13 P 1 4 P 2 1 Величина кванта времени – 4 время P 0 P 1 P 2 1 2 3 4 И И И И Г Г Г Г Г Г Г Г 5 6 7 8 Г Г Г Г И Г И И Г Г И Г Г 9 И 10 11 12 13 14 15 16 17 18 И И И И И И И И И исполнение P 0 Очередь готовых P 0 P 0 P 2
Алгоритмы планирования
RR (Round Robin) Процессы Продолжительность CPU burst P 0 13 P 1 4 P 2 1 Величина кванта времени – 1 время P 0 P 1 P 2 1 И Г Г 2 Г И Г 3 Г Г И 4 И Г 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Г И И Г И Г И Г И И И И И И И И И Г И исполнение P 2 Очередь готовых P 2 P 1 P 1
Алгоритмы планирования
SJF (Shortest Job First) невытесняющий Процессы Продолжительность CPU burst время 1 P 0 Г Г 2 Г 3 4 Г 5 И 6 7 И И P 1 P 2 Г Г И И Г Г И Г Г Г Г P 3 И Г P 5 Г 0 P 3 1 P 7 2 P 1 3 8 9 И И 10 11 12 13 14 15 16 И И И И И И И исполнение P 3 P 0 готовность P 1 P 2 P 3
Алгоритмы планирования
SJF (Shortest Job First) вытесняющий Процессы Продолжительность CPU burst Момент появления в очереди P 0 6 0 P 1 2 2 P 2 5 6 P 3 5 0 время P 0 P 1 P 2 P 3 Г 1 Г 2 И И 3 4 Г Г И И Г Г 5 6 Г 7 Г 8 9 Г Г 10 Г 11 Г 12 13 14 Г И И исполнение P 3 Г И И И И И И готовность P 0 P 1 P 2 15 16 Г И И И И И И P 3 17 18
Алгоритмы планирования
SJF (Shortest Job First) приближение
T(n+1) τ(n)
– величина
n
-го CPU burst – предсказание для
n+1
-го CPU burst
α
– параметр от 0 до 1
T(n+1)= α τ(n) + (1 – α)T(n), T(0)
– произвольно Если
α = 0
, то
T(n+1) = T(n) =…= T(0),
нет учета последнего поведения Если
α = 1
, то
T(n+1) = τ(n),
нет учета предыстории
Алгоритмы планирования
Гарантированное планирование В системе разделения времени N пользователей:
T i
– время нахождения
i
-го пользователя в системе
τ i
– суммарное процессорное время процессов
i
-го пользователя
τ τ i i
‹‹ ››
T T i i /N /N – –
пользователь обделен пользователю благоволят (
τ i
N) /
T i
– коэффициент справедливости.
На исполнение выбираются готовые процессы пользователя с наименьшим коэффициентом справедливости
Алгоритмы планирования
Приоритетное планирование Каждому процессу процессор выделяется в соответствии с приписанным к нему числовым значением - приоритетом Параметры для назначения приоритета бывают: внешние внутренние Политика изменения приоритета: статический приоритет динамический приоритет
Алгоритмы планирования
Приоритетное планирование невытесняющий Процессы Продолжительность CPU burst Момент появления в очереди Приоритет P0 6 0 4 P1 2 2 3 P2 5 6 2 P3 5 0 1 время P 0 P 1 P 2 P 3 Г 1 Г 2 3 4 Г Г Г Г Г Г 5 6 7 Г Г И И Г 8 9 Г Г 10 Г И И И 11 Г 12 И И 13 14 15 16 17 18 Г И И И И И И И И И И И исполнение P 3 P 0 готовность P 1 P 2 P 3
Алгоритмы планирования
Приоритетное планирование вытесняющий Процессы Продолжительность CPU burst Момент появления в очереди Приоритет P0 6 0 4 P1 2 2 3 P2 5 6 2 P3 5 0 1 время P 0 P 1 P 2 P 3 Г 1 Г 2 3 4 Г Г Г Г Г Г 5 6 Г И 7 8 9 10 11 Г Г Г И Г Г Г Г И И И Г Г Г И 12 13 14 15 16 17 18 Г И И И И И И И И И И И И исполнение P 3 P 0 готовность P 1 P 2 P 3
Алгоритмы планирования
Многоуровневые очереди (Multilevel Queue) Системные процессы приоритет 0 RR Процессы ректората приоритет 1 RR Процессы преподавателей приоритет 2 RR Фоновые процессы приоритет 3 FCFS Процессы студентов приоритет 4 RR
Алгоритмы планирования
Многоуровневые очереди с обратной связью (Multilevel Feedback Queue) Клавиатурный ввод Очередь 0 – Приоритет 0 RR с квантом времени 8 Очередь 1 – Приоритет 1 RR с квантом времени 16 Очередь 2 – Приоритет 2 RR с квантом времени 32 Очередь 3 – Приоритет 3 FCFS Дисковый I/O
Алгоритмы планирования
Многоуровневые очереди с обратной связью (Multilevel Feedback Queue) Для полного описания необходимо задать -
-
количество очередей в состоянии
готовность
алгоритм планирования между очередями алгоритмы планирования внутри очередей куда помещается родившийся процесс правила перевода процессов из одной очереди в другую