Досега планирахме процесите според времето им на пристигане (в FCFS планиране). Алгоритъмът за планиране на SJF обаче планира процесите според времето им на импулс.
При планирането на SJF процесът с най-ниско време на избухване сред списъка с налични процеси в готовата опашка ще бъде планиран следващият.
Въпреки това е много трудно да се предвиди времето за импулс, необходимо за даден процес, поради което този алгоритъм е много труден за прилагане в системата.
Предимства на SJF
- Максимална производителност
- Минимално средно време за чакане и изпълнение
Недостатъци на SJF
- Може да страда от проблема с глада
- Не е приложимо, защото точното време на Burst за даден процес не може да бъде известно предварително.
Съществуват различни техники, чрез които може да се определи времето за избухване на процесора на процеса. По-късно ще ги обсъдим подробно.
Пример
В следващия пример има пет задания, наречени P1, P2, P3, P4 и P5. Времето им на пристигане и времето на избухване са дадени в таблицата по-долу.
PID | Час на пристигане | Време за спукване | Време за завършване | Време за изпълнение | Време за чакане |
---|---|---|---|---|---|
1 | 1 | 7 | 8 | 7 | 0 |
2 | 3 | 3 | 13 | 10 | 7 |
3 | 6 | 2 | 10 | 4 | 2 |
4 | 7 | 10 | 31 | 24 | 14 |
5 | 9 | 8 | двадесет и едно | 12 | 4 |
Тъй като Никакъв процес не пристига в момент 0 следователно; ще има празен слот в диаграма на Гант от време 0 до 1 (времето, в което пристига първият процес).
Според алгоритъма ОС планира процеса, който има най-ниско време за избухване сред наличните процеси в опашката за готовност.
Досега имаме само един процес в опашката за готовност, следователно планировчикът ще насрочи това за процесора, независимо какво е неговото време на пакет.
Това ще бъде изпълнено до 8 единици време. Дотогава имаме още три процеса, пристигнали в опашката за готовност, следователно планировчикът ще избере процеса с най-ниско време на пакет.
Сред процесите, дадени в таблицата, P3 ще бъде изпълнен следващият, тъй като има най-ниското време за импулс сред всички налични процеси.
Така ще протече процедурата първа най-кратката работа (SJF) алгоритъм за планиране.
Средно време на изчакване = 27/5