9. Планиране (разписание)  на един процесор
Цели:
  --- бързи отговори но интерактивните потребители;
  --- бързо изпълнение на заданията
  --- ефективно използване на процесора
Типове:
Дългосрочно планиране Решение да се добави процес към списъка от процеси за изпълнение
Средносрочно планиране Решение да се добави процес към процесите, които се частично или напълно в паметта.
Краткосрочно планиране Решение кой процес да бъде изпълняван от процесора.
I/O планиране Решение кой процес, чакащ за I/O ресурс, да му бъде дадено свободно устройство. 

9.1 Типове планирания
--- FIGURE 9.1 ---
--- FIGURE 9.2 ---
--- FIGURE 9.3 ---
** Дългосрочно планиране
-- Кога заданието да се преобразува в процес:
  - кога да се създаде нов процес?
  - кое задание да се преобразува в процес?
** Средносрочно планиране
-- част от прехвърлящата функция (swaping function), виртуална памет
** Краткосрочно планиране
-- Диспечерът се задейства при следните събития:
    - прекъсване на часовника
    - I/O прекъсване
    - извиквания на функции на ОС
    - сигнали.



9.2 Алгоритми за планиране
** Критерии за краткосрочно планиране
 -- ориентирани към потребителя (user-oriented)
 -- ориентирани към системата (system-oriented)
** Използване на приоритети
--- FIGURE 9.4 ---
** Алтернативи за политика на планиране
 
Алгоритми  FCFS Round Robin SPN SRT HRRN Feedback
Функция за избиране
[selection function]
max[w] const min[s] min[s-e] max[(w+s)/s] --
Режим на решенията
[decision mode]
без прекъсване прекъсване по време без прекъсване прекъсване по без прекъсване прекъсване по време
[throughput] не е определено може да е ниско, ако кванта време е малък високо високо високо не е определено
Време за отговор
[response time]
голямо ако процесите са с много различно време за изпълнение осигурява добро време за отговор за късите процеси осигурява добро време за отговор за късите процеси осигурява добро време за отговор осигурява добро време за отговор не е определено
Припокриване
[overload]
минимално малко голямо голямо голямо голямо
Ефект върху процеса
[effect on processes]
глоба за къси процеси и за I/O процеси  честно глоба за дълги процеси глоба за дълги процеси добър баланс благосклонен към I/O процеси
Гладна смърт
[starvation]
не не възможна възможна не възможна

w - общо време за работа на процеса
e - време за изпълнение
s - общо време за обслужване на процеса
Пример за група процеси и обслужването им:

Процеси Време на постъпване 
[arrival time]
Време за работа на процеса 
[service time]
1 0 3
2
2 6
3 4 4
4 6 5
5 8 2

--- FIGURE 9.5 ---
Сравнение за времето на обслужване:

Process
Arrival Time
Service Time
1
0
3
2
2
6
3
4
4
4
6
4
5
8
2
Mean
FCFS Finish Time
Turnaround Time
Tq/Ts
3
3
1.00
9
7
1.17
13
9
2.25
18
12
2.40
20
12
6.00

8.20
2.56
RR q=1 Finish Time
Turnaround Time
Tq/Ts
4
4
1.33
18
16
2.67
17
13
3.25
20
14
2.80
15
7
3.50

10.80
2.71
RR q=4 Finish Time
Turnaround Time
Tq/Ts
3
3
1.00
17
15
2.50
11
7
1.75
20
14
2.80
19
11
5.50

10.00
2.29
SPN Finish Time
Turnaround Time
Tq/Ts
3
3
1.00
9
7
1.17
15
11
2.75
20
14
2.80
11
3
1.50

7.60
1.84
SRT Finish Time
Turnaround Time
Tq/Ts
3
3
1.00
15
1`3
2.17
8
4
1.00
20
14
2.80
10
2
1.00

7.20
1.59
HRRN Finish Time
Turnaround Time
Tq/Ts
3
3
1.00
9
7
1.17
13
9
2.25
20
14
2.80
15
7
3.50

8.00
2.14
FB q=1 Finish Time
Turnaround Time
Tq/Ts
4
4
1.33
20
18
3.00
16
12
3.00
19
13
2.60
11
3
1.5

10.00
2.29
FB q=2^(i-1) Finish Time
Turnaround Time
Tq/Ts
4
4
1.33
17
15
2.50
18
14
3.50
20
14
2.80
14
6
3.00

10.60
2.63

-- Първи дошел, първи обслужен (First Come First Served - FCFS)
Пример за бавно обслужване на къс процес:

Process Arrival Time Service Time (Ts) Start Time Finish Time Turnaround
Time (Tq)
Tq/Ts
A 0 1 0 1 1 1.00
B 1 100 1 101 100 1.00
C 2 1 101 102 100 100.00
D 3 100 102 202 199 1.99
Mean 100 26.00
 -- Round Robin - RR
--- FIGURE 9.6 ---
--- FIGURE 9.7 ---
 -- Най-късия процес (Shortest Process Next - SPN)
Трудности при определяне на времето за работа на всеки процес - предсказване на времето за работа на интерактивни процеси
 -- Най-малко оставащо време (Shortest Remaining Time - SRT)
 -- Най-голямо отношение за отговор (Highest Responce Ratio Next - HRRN)
Пресмята се RR = (w+s)/s
 -- Обратна връзка (Feedback - FB)
Понижаване на приоритета след всяко прекъсване.
--- FIGURE 9.10 ---
Варианти с времето за изпълнение на процеси от различни опашки - 2^(i-1) кванта време за процес от i-тата опашка (с приоритер i)
** Ефективност на различните политики
 -- Анализ на опашките
 -- Симулационно моделиране


9.3 Класическо планиране в UNIX
3 приоритетни нива:
   - real-time processes
   - kernel-mode processes
   - other user-mode processes
--- FIGURE 9.10 ---