logo

A legrövidebb munka első (SJF) ütemezése

Eddig a folyamatokat érkezési idejük szerint ütemeztük (FCFS ütemezésben). Az SJF ütemező algoritmus azonban ütemezi a folyamatokat a burst idejük szerint.

Az SJF ütemezésben a készenléti sorban lévő elérhető folyamatok listája közül a legalacsonyabb burst idővel rendelkező folyamat ütemezése lesz a következő.

Azonban nagyon nehéz megjósolni egy folyamathoz szükséges burst időt, ezért ezt az algoritmust nagyon nehéz megvalósítani a rendszerben.

Az SJF előnyei

  1. Maximális áteresztőképesség
  2. Minimális átlagos várakozási és átfutási idő

Az SJF hátrányai

  1. Az éhezéstől szenvedhet
  2. Nem valósítható meg, mert egy folyamat pontos sorozatfelvételi ideje nem ismert előre.

Különféle technikák állnak rendelkezésre, amelyekkel a folyamat CPU burst ideje meghatározható. Később részletesen tárgyaljuk őket.

Példa

A következő példában öt P1, P2, P3, P4 és P5 job található. Érkezési idejüket és sorozatfelvételi idejüket az alábbi táblázat tartalmazza.

PID Érkezési idő Burst Time Befejezési idő Átfutási idő Várakozási idő
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 huszonegy 12 4

Mivel a folyamat nem érkezik meg a 0 időpontban, ezért; lesz egy üres hely a Gantt-diagram 0-tól 1-ig (az első folyamat megérkezésének időpontja).

Az algoritmus szerint az operációs rendszer azt a folyamatot ütemezi, amelyik a legalacsonyabb burst idővel rendelkezik a készenléti sorban lévő folyamatok közül.

Eddig csak egy folyamat van a készenléti sorban, ezért az ütemező ütemezi ezt a processzorhoz, függetlenül attól, hogy mennyi a burst ideje.

Ez 8 időegységig lesz végrehajtva. Addig még három folyamat érkezett a készenléti sorban, így az ütemező a legalacsonyabb burst idővel rendelkező folyamatot választja.

A táblázatban megadott folyamatok közül a P3 kerül végrehajtásra legközelebb, mivel ennek van a legalacsonyabb burst ideje az összes elérhető folyamat közül.

Tehát az eljárás így fog folytatódni a legrövidebb munka először (SJF) ütemező algoritmus.

os SJF ütemezési algoritmus

Átl. várakozási idő = 27/5