Fram till nu har vi schemalagt processerna enligt deras ankomsttid (i FCFS-schemaläggning). SJFs schemaläggningsalgoritm schemalägger dock processerna enligt deras skurtid.
I SJF-schemaläggning kommer processen med den lägsta skurtiden, bland listan över tillgängliga processer i redo-kön, att schemaläggas härnäst.
Det är emellertid mycket svårt att förutsäga den skurtid som behövs för en process, varför denna algoritm är mycket svår att implementera i systemet.
Fördelar med SJF
- Maximal genomströmning
- Minsta genomsnittliga vänte- och handläggningstid
Nackdelar med SJF
- Kan lida av problemet med svält
- Det är inte implementerbart eftersom den exakta Burst-tiden för en process inte kan vara känd i förväg.
Det finns olika tekniker tillgängliga genom vilka CPU-skurtiden för processen kan bestämmas. Vi kommer att diskutera dem i detalj senare.
min live cricket
Exempel
I följande exempel finns det fem jobb som heter P1, P2, P3, P4 och P5. Deras ankomsttid och sprängtid anges i tabellen nedan.
PID | Ankomst tid | Burst Time | Sluttid | Vändningstid | Väntetid |
---|---|---|---|---|---|
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 | tjugoett | 12 | 4 |
Eftersom ingen process anländer vid tidpunkten 0, alltså; det kommer att finnas en tom plats i gantt-diagram från tid 0 till 1 (den tidpunkt då den första processen anländer).
Enligt algoritmen schemalägger operativsystemet den process som har den lägsta skurtiden bland de tillgängliga processerna i redo-kön.
Tills nu har vi bara en process i den färdiga kön, så schemaläggaren kommer att schemalägga detta till processorn oavsett vad som är dess bursttid.
Detta kommer att utföras till 8 tidsenheter. Till dess har vi ytterligare tre processer anlänt i den färdiga kön, så schemaläggaren kommer att välja processen med den lägsta skurtiden.
Bland processerna som anges i tabellen kommer P3 att exekveras härnäst eftersom den har den lägsta skurtiden bland alla tillgängliga processer.
Så det är så proceduren kommer att fortsätta in kortaste jobbet först (SJF) schemaläggningsalgoritm.
Genomsnittlig väntetid = 27/5