Til nå planla vi prosessene i henhold til ankomsttiden deres (i FCFS-planlegging). SJF-planleggingsalgoritmen planlegger imidlertid prosessene i henhold til deres eksplosjonstid.
I SJF-planlegging vil prosessen med den laveste serietiden, blant listen over tilgjengelige prosesser i klarkøen, planlegges neste gang.
Imidlertid er det svært vanskelig å forutsi bruddtiden som trengs for en prosess, og derfor er denne algoritmen svært vanskelig å implementere i systemet.
Fordeler med SJF
- Maksimal gjennomstrømning
- Minimum gjennomsnittlig vente- og behandlingstid
Ulemper med SJF
- Kan lide av problemet med sult
- Den er ikke implementerbar fordi den nøyaktige Burst-tiden for en prosess ikke kan være kjent på forhånd.
Det er forskjellige teknikker tilgjengelig ved hjelp av hvilke prosessbrytningstiden for prosessen kan bestemmes. Vi vil diskutere dem i detalj senere.
Eksempel
I det følgende eksempelet er det fem jobber navngitt som P1, P2, P3, P4 og P5. Deres ankomsttid og eksplosjonstid er gitt i tabellen nedenfor.
PID | Ankomsttid | Burst Time | Fullføringstid | Turn Around Time | Ventetid |
---|---|---|---|---|---|
1 | 1 | 7 | 8 | 7 | 0 |
2 | 3 | 3 | 1. 3 | 10 | 7 |
3 | 6 | 2 | 10 | 4 | 2 |
4 | 7 | 10 | 31 | 24 | 14 |
5 | 9 | 8 | tjueen | 12 | 4 |
Siden kommer ingen prosess til tiden 0, derav; det vil være et tomt spor i gantt-diagram fra tid 0 til 1 (tidspunktet da den første prosessen kommer).
I henhold til algoritmen planlegger operativsystemet prosessen som har den laveste eksplosjonstiden blant de tilgjengelige prosessene i klarkøen.
Til nå har vi bare én prosess i klarkøen, så planleggeren vil planlegge dette til prosessoren uansett hva som er eksplosjonstiden.
Dette vil bli utført til 8 tidsenheter. Inntil da har vi tre prosesser til i klarkøen, så planleggeren vil velge prosessen med den laveste serietiden.
Blant prosessene gitt i tabellen, vil P3 bli utført neste siden den har den laveste bruddtiden blant alle tilgjengelige prosesser.
Så det er hvordan prosedyren vil fortsette inn korteste jobb først (SJF) planleggingsalgoritme.
Gjennomsnittlig ventetid = 27/5