Системное программное обеспечение Лекция 3 Планирование процессов Цели планирования Рациональное использование ограниченных ресурсов. Необходимы критерии и алгоритмы. 2 Уровни планирования 3 Уровни планирования 4 Долгосрочное планирование 5 Краткосрочное планирование 6 Среднесрочное планирование 7 Критерии планирования 8 Требования к алгоритмам 9 Противоречивость требований 10 Параметры планирования 11 Статические параметры 12 Динамические параметры 13 Фрагмент деятельности процесса 14 Планировщик 15 Когда работает планировщик 16 Методы планирования 17 Невытесняющее планирование 18 Вытесняющее планирование 19 Алгоритмы планирования 20 First-Come, First-Served (FCFS) 21 Алгоритм FCFS Процесс p0 p1 p2 Продолжительность CPU burst 13 4 1 Полное время выполнения tв : tв(p0)=13, tв(p1)=17, tв(p2)=18. Среднее полное время выполнения tср в: tср в= (13 + 17 + 18)/3 = 16 . 22 Алгоритм FCFS Полное время выполнения to : tв(p0)=18, tв(p1)=5, tв(p2)=1. Среднее полное время выполнения tср в: tср в= (18 + 5 + 1)/3 = 8, что почти в 2 раза меньше, чем при первой расстановке процессов. Время ожидания to для процесса: to (p0)= 5, to (p1)= 1 , to (p2)= 0. Среднее время ожидания to ср составит tср в=(5 + 1 + 0)/3 = 2 . Это в 5 (!) раз меньше, чем в предыдущем случае. 23 Round Robin (RR) 24 Вытеснение процесса 25 RR Время 1 2 3 4 5 6 7 8 9 10 11 p0 И И И И Г Г Г Г Г И И И И И И И И И p1 Г Г Г Г И И И И p2 Г Г Г Г Г Г Г Г 12 13 14 15 16 17 18 И RR c величиной кванта времени равной 4 tср в=(18 + 8 + 9)/3 = 11,6 tср о=(5 + 4 + 8)/3 = 5,6 *На производительность алгоритма RR сильно влияет величина кванта времени. 26 RR Время 1 2 3 4 p0 И Г Г И Г p1 Г И Г p2 Г Г Г 5 6 7 И Г И Г 8 9 И Г И Г 10 11 12 13 14 15 16 17 18 И И И И И И И И И И И RR c величиной кванта времени равной 1 tср в=(18 + 9 + 3)/3 = 10 tср о=(5 + 5 + 2)/3 = 4 Примечание: при очень больших величинах кванта времени, когда каждый процесс успевает завершить свой CPU burst до возникновения прерывания по времени, алгоритм RR вырождается в алгоритм FCFS. 27 Shortest-Job-First (SJF) 28 Невытесняющий SJF Процесс p0 p1 p2 p3 Продолжительность CPU burst 5 3 7 1 время p0 p1 p2 p3 1 Г Г Г И 2 Г И Г 3 Г И Г 4 5 6 7 8 9 10 11 12 13 14 15 16 Г И И И И И И Г Г Г Г Г Г И И И И И И И tср в=(1 + 4 + 9+16)/4 = 8,5 tср о= (4 + 1 + 9 + 0)/4 = 3,5 Алгоритм SJF является оптимальным с точки зрения минимизации среднего времени ожидания среди класса невытесняющих алгоритмов. 29 Вытесняющий SJF Процесс Время появления в очереди 0 2 6 0 p0 p1 p2 p3 время p0 p1 p2 p3 1 Г И 2 Г И 3 Г И Г 4 Г И Г 5 Г И Продолжительность очередного CPU burst 6 2 7 5 6 Г 7 Г 8 И 9 10 11 12 13 14 15 16 17 18 19 20 И И И И И Г Г И Г И Г Г Г Г И И И И И И tср в=(13 + 4 + 7+20)/4 = 11 tср о= (16)/4 = 4 Основную сложность при реализации алгоритма SJF представляет невозможность точного знания продолжительности очередного CPU burst для исполняющихся процессов. 30 И Гарантированное планирование 31 Гарантированное планирование i N Ti 32 Приоритетное планирование 33 Невытесняющее приоритетное планирование SJF Процес Время появления в Продолжительнос Приори с очереди ть очередного CPU тет burst p0 0 6 4 p1 2 2 3 p2 6 7 2 p3 0 5 1 время p0 p1 p2 p3 1 Г И 2 Г И 3 Г Г И 4 Г Г И 5 Г Г 6 Г И 7 Г И Г 8 Г 9 10 11 Г Г Г 12 13 14 15 16 17 18 19 20 Г Г Г И И И И И И И И И И И И И И 34 Вытесняющее приоритетное планирование SJF Процес Время появления в Продолжительнос Приори с очереди ть очередного CPU тет burst p0 0 6 4 p1 2 2 3 p2 6 7 2 p3 0 5 1 время p0 p1 p2 p3 1 Г 2 Г 3 Г Г 4 Г Г 5 Г Г И И И И И 6 Г И 7 Г Г И 8 Г Г И 9 10 11 12 13 14 15 16 17 18 19 20 Г Г Г Г Г Г И И И И И И Г Г Г Г Г И И И И И И В рассмотренных примерах приоритеты процессов с течением времени не изменялись. Такие приоритеты принято называть статическими. Более гибкими являются динамические приоритеты процессов, изменяющие свои значения по ходу исполнения процессов. 35 Алгоритм с динамическими приоритетами 36 Многоуровневые очереди 37 Многоуровневые очереди с обратной связью 38 39 Описание алгоритма 40 Обобщение 41 Заключение 42