V následujícím příkladu je šest procesů pojmenovaných jako P1, P2, P3, P4, P5 a P6. Jejich čas příjezdu a čas burstu jsou uvedeny níže v tabulce. Časové kvantum systému je 4 jednotky.
ID procesu | Čas příjezdu | Burst Time |
---|---|---|
1 | 0 | 5 |
2 | 1 | 6 |
3 | 2 | 3 |
4 | 3 | 1 |
5 | 4 | 5 |
6 | 6 | 4 |
Podle algoritmu musíme udržovat připravenou frontu a Ganttův diagram. Struktura obou datových struktur se po každém plánování změní.
Připravená fronta:
Zpočátku, v čase 0, přichází proces P1, který bude naplánován pro časový úsek 4 jednotky. Ve frontě připravenosti tedy bude pouze jeden proces P1 na začátku s dobou shluku CPU 5 jednotek.
P1 |
5 |
Ganttův diagram
P1 se nejprve provede pro 4 jednotky.
Připravená fronta
Mezitím provádění P1, čtyři další procesy P2, P3, P4 a P5 dorazí do připravené fronty. P1 ještě není dokončen, potřebuje další 1 jednotku času, proto bude také přidán zpět do fronty připravených.
P2 | P3 | P4 | P5 | P1 |
6 | 3 | 1 | 5 | 1 |
Ganttův diagram
Po P1 se bude provádět P2 po dobu 4 jednotek času, což je znázorněno v Ganttově diagramu.
sousední úhly
Připravená fronta
Během provádění P2 dorazí do fronty připravených ještě jeden proces P6. Vzhledem k tomu, že P2 ještě není dokončen, P2 bude také přidán zpět do fronty připravenosti se zbývající dobou shluku 2 jednotky.
P3 | P4 | P5 | P1 | P6 | P2 |
3 | 1 | 5 | 1 | 4 | 2 |
Ganttův diagram
Po P1 a P2 se P3 spustí po 3 jednotky času, protože doba shluku CPU je pouze 3 sekundy.
Připravená fronta
Vzhledem k tomu, že P3 byla dokončena, bude ukončena a nebude přidána do připravené fronty. Další proces, který bude proveden, je P4.
pořadí podle náhodného sql
P4 | P5 | P1 | P6 | P2 |
1 | 5 | 1 | 4 | 2 |
Ganttův diagram
Poté budou provedeny P1, P2 a P3, P4. Jeho doba výbuchu je pouze 1 jednotka, což je méně než časové kvantum, takže bude dokončeno.
Připravená fronta
Dalším procesem ve frontě připravenosti je P5 s 5 jednotkami času burstu. Protože P4 je dokončen, nebude přidán zpět do fronty.
P5 | P1 | P6 | P2 |
5 | 1 | 4 | 2 |
Ganttův diagram
P5 bude proveden pro celý časový úsek, protože vyžaduje 5 jednotek času burstu, který je vyšší než časový úsek.
Připravená fronta
P5 ještě není dokončena; bude přidán zpět do fronty se zbývající dobou shluku 1 jednotky.
P1 | P6 | P2 | P5 |
1 | 4 | 2 | 1 |
Ganttův diagram
Proces P1 bude mít další kolo, aby dokončil své provedení. Vzhledem k tomu, že vyžaduje pouze 1 jednotku času burstu, bude dokončena.
Připravená fronta
P1 je dokončen a nebude přidán zpět do připravené fronty. Další proces P6 vyžaduje pouze 4 jednotky času burstu a bude proveden jako další.
P6 | P2 | P5 |
4 | 2 | 1 |
Ganttův diagram
P6 se bude provádět po dobu 4 jednotek času do dokončení.
Připravená fronta
Protože P6 je dokončen, nebude znovu přidán do fronty. Ve frontě připravených jsou pouze dva procesy. Další proces P2 vyžaduje pouze 2 jednotky času.
P2 | P5 |
2 | 1 |
Ganttův diagram
P2 se provede znovu, protože vyžaduje pouze 2 jednotky času, a proto bude dokončen.
Připravená fronta
Nyní je jediným dostupným procesem ve frontě proces P5, který vyžaduje 1 jednotku času burstu. Vzhledem k tomu, že časový úsek má 4 jednotky, bude dokončen v další dávce.
P5 |
1 |
Ganttův diagram
P5 bude proveden až do dokončení.
Java generuje náhodné číslo
Doba dokončení, doba obratu a čekací doba budou vypočítány tak, jak je uvedeno v tabulce níže.
Jak víme,
Turn Around Time = Completion Time - Arrival Time Waiting Time = Turn Around Time - Burst Time
ID procesu | Čas příjezdu | Burst Time | Čas dokončení | Turn Around Time | Čekací doba |
---|---|---|---|---|---|
1 | 0 | 5 | 17 | 17 | 12 |
2 | 1 | 6 | 23 | 22 | 16 |
3 | 2 | 3 | jedenáct | 9 | 6 |
4 | 3 | 1 | 12 | 9 | 8 |
5 | 4 | 5 | 24 | dvacet | patnáct |
6 | 6 | 4 | dvacet jedna | patnáct | jedenáct |
Průměrná čekací doba = (12+16+6+8+15+11)/6 = 76/6 jednotek