Лекция 3. Планирование процессов.

advertisement
Системное программное обеспечение
Лекция 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
Download