I följande exempel finns det sex processer som heter P1, P2, P3, P4, P5 och P6. Deras ankomsttid och sprängtid anges nedan i tabellen. Systemets tidskvantum är 4 enheter.
Process ID | Ankomst tid | Burst Time |
---|---|---|
1 | 0 | 5 |
2 | 1 | 6 |
3 | 2 | 3 |
4 | 3 | 1 |
5 | 4 | 5 |
6 | 6 | 4 |
Enligt algoritmen måste vi underhålla den färdiga kön och Gantt-diagrammet. Strukturen för båda datastrukturerna kommer att ändras efter varje schemaläggning.
Klar kö:
Inledningsvis, vid tidpunkt 0, anländer process P1 som kommer att schemaläggas för enheterna för tidssegment 4. I klarkön kommer det därför endast att finnas en process P1 vid start med CPU-skurtid 5 enheter.
teckensnitt gimp
P1 |
5 |
gantt-diagram
P1 kommer att köras för 4 enheter först.
Klar kö
Samtidigt som exekveringen av P1, kommer ytterligare fyra processer P2, P3, P4 och P5 i redo-kön. P1 har inte slutförts ännu, den behöver ytterligare 1 tidsenhet, därför kommer den också att läggas tillbaka till redo-kön.
P2 | P3 | P4 | P5 | P1 |
6 | 3 | 1 | 5 | 1 |
gantt-diagram
Efter P1 kommer P2 att exekveras under 4 tidsenheter, vilket visas i Gantt-diagrammet.
Klar kö
Under exekveringen av P2 anländer ytterligare en process P6 i klarkön. Eftersom P2 inte har slutförts ännu, kommer P2 också att läggas tillbaka till redo-kön med den återstående skurtiden 2 enheter.
P3 | P4 | P5 | P1 | P6 | P2 |
3 | 1 | 5 | 1 | 4 | 2 |
gantt-diagram
Efter P1 och P2 kommer P3 att exekveras i 3 tidsenheter eftersom dess CPU-bursttid bara är 3 sekunder.
Klar kö
Eftersom P3 har slutförts kommer den därför att avslutas och inte läggas till i färdigkön. Nästa process som kommer att utföras är P4.
P4 | P5 | P1 | P6 | P2 |
1 | 5 | 1 | 4 | 2 |
gantt-diagram
Efter, P1, P2 och P3, kommer P4 att exekveras. Dess sprängtid är bara 1 enhet, vilket är mindre än tidskvantumet och därför kommer den att slutföras.
Klar kö
Nästa process i redo-kön är P5 med 5 enheter skurtid. Eftersom P4 är klar kommer den inte att läggas tillbaka till kön.
P5 | P1 | P6 | P2 |
5 | 1 | 4 | 2 |
gantt-diagram
P5 kommer att exekveras för hela tidsdelen eftersom den kräver 5 enheter skurtid vilket är högre än tidsdelen.
Klar kö
P5 har inte avslutats ännu; den kommer att läggas tillbaka till kön med den återstående bursttiden på 1 enhet.
exempel på python-programmering
P1 | P6 | P2 | P5 |
1 | 4 | 2 | 1 |
GANTT-diagram
Processen P1 kommer att ges nästa tur för att slutföra dess exekvering. Eftersom det bara kräver 1 enhet skurtid så kommer det att slutföras.
Klar kö
P1 är klar och kommer inte att läggas tillbaka till redo-kön. Nästa process P6 kräver endast 4 enheter skurtid och den kommer att exekveras nästa.
P6 | P2 | P5 |
4 | 2 | 1 |
gantt-diagram
P6 kommer att exekveras i 4 tidsenheter tills den är klar.
Klar kö
Eftersom P6 är klar kommer den inte att läggas till i kön igen. Det finns bara två processer i redo-kön. Nästa process P2 kräver endast 2 tidsenheter.
P2 | P5 |
2 | 1 |
GANTT-diagram
P2 kommer att exekveras igen, eftersom det bara kräver 2 tidsenheter, så detta kommer att slutföras.
Klar kö
Nu är den enda tillgängliga processen i kön P5 som kräver 1 enhet skurtid. Eftersom tidsdelen är på 4 enheter kommer den att slutföras i nästa skur.
P5 |
1 |
gantt-diagram
P5 kommer att köras tills den är klar.
jämförbar sträng i java
Färdigställandetiden, Handläggningstiden och väntetiden kommer att beräknas enligt tabellen nedan.
Som vi vet,
Turn Around Time = Completion Time - Arrival Time Waiting Time = Turn Around Time - Burst Time
Process ID | Ankomst tid | Burst Time | Sluttid | Vändningstid | Väntetid |
---|---|---|---|---|---|
1 | 0 | 5 | 17 | 17 | 12 |
2 | 1 | 6 | 23 | 22 | 16 |
3 | 2 | 3 | elva | 9 | 6 |
4 | 3 | 1 | 12 | 9 | 8 |
5 | 4 | 5 | 24 | tjugo | femton |
6 | 6 | 4 | tjugoett | femton | elva |
Genomsnittlig väntetid = (12+16+6+8+15+11)/6 = 76/6 enheter