Până acum, programam procesele în funcție de ora de sosire a acestora (în programarea FCFS). Cu toate acestea, algoritmul de programare SJF, programează procesele în funcție de timpul lor de explozie.
Java regex $
În planificarea SJF, procesul cu cel mai mic timp de explozie, dintre lista de procese disponibile în coada pregătită, va fi programat în continuare.
Cu toate acestea, este foarte dificil de prezis timpul de explozie necesar unui proces, prin urmare acest algoritm este foarte greu de implementat în sistem.
Avantajele SJF
- Debit maxim
- Timp mediu minim de așteptare și de răspuns
Dezavantajele SJF
- Poate suferi de problema foametei
- Nu este implementabil deoarece timpul exact de explozie pentru un proces nu poate fi cunoscut în avans.
Există diferite tehnici disponibile prin care poate fi determinat timpul de explozie al procesorului. Le vom discuta mai târziu în detaliu.
Exemplu
În exemplul următor, există cinci locuri de muncă numite P1, P2, P3, P4 și P5. Ora de sosire și timpul de explozie sunt date în tabelul de mai jos.
dependență parțială
PID | Timpul sosirii | Timp de explozie | Timp de finalizare | Întoarceți Timpul | Timp de asteptare |
---|---|---|---|---|---|
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 | douăzeci și unu | 12 | 4 |
Din moment ce, No Process ajunge la momentul 0, prin urmare; va fi un slot gol în diagrama Gantt de la timpul 0 la 1 (momentul la care ajunge primul proces).
Conform algoritmului, sistemul de operare programează procesul care are cel mai mic timp de explozie dintre procesele disponibile în coada de așteptare.
Până acum, avem un singur proces în coada pregătită, prin urmare planificatorul va programa acest lucru la procesor, indiferent de timpul său de explozie.
Aceasta va fi executată până la 8 unități de timp. Până atunci, mai avem trei procese sosite în coada pregătită, prin urmare planificatorul va alege procesul cu cel mai mic timp de explozie.
10 dintr-un 100
Dintre procesele prezentate în tabel, P3 va fi executat în continuare, deoarece are cel mai mic timp de explozie dintre toate procesele disponibile.
Așa se va desfășura procedura primul loc de muncă cel mai scurt (SJF) algoritm de programare.
Timp mediu de așteptare = 27/5