În exemplul următor, există șase procese numite P1, P2, P3, P4, P5 și P6. Ora de sosire și timpul de explozie sunt date mai jos în tabel. Cuantumul de timp al sistemului este de 4 unități.
ID proces | Timpul sosirii | Timp de explozie |
---|---|---|
1 | 0 | 5 |
2 | 1 | 6 |
3 | 2 | 3 |
4 | 3 | 1 |
5 | 4 | 5 |
6 | 6 | 4 |
Conform algoritmului, trebuie să menținem coada pregătită și diagrama Gantt. Structura ambelor structuri de date va fi schimbată după fiecare programare.
Coada gata:
Inițial, la ora 0, sosește procesul P1 care va fi programat pentru intervalul de timp 4 unități. Prin urmare, în coada gata, va exista un singur proces P1 la începutul cu timpul de explozie a CPU 5 unități.
P1 |
5 |
diagrama Gantt
P1 va fi executat mai întâi pentru 4 unități.
Coadă gata
Între timp, execuția P1, încă patru procese P2, P3, P4 și P5 sosesc în coada gata. P1 nu s-a finalizat încă, are nevoie de încă o unitate de timp, prin urmare, va fi adăugat și înapoi la coada de așteptare.
P2 | P3 | P4 | P5 | P1 |
6 | 3 | 1 | 5 | 1 |
diagrama Gantt
După P1, P2 va fi executat timp de 4 unități de timp, care este afișat în diagrama Gantt.
Coadă gata
În timpul execuției P2, încă un proces P6 este sosit în coada de așteptare. Deoarece P2 nu s-a finalizat încă, P2 va fi, de asemenea, adăugat înapoi la coada de așteptare cu timpul de explozie rămas de 2 unități.
P3 | P4 | P5 | P1 | P6 | P2 |
3 | 1 | 5 | 1 | 4 | 2 |
diagrama Gantt
După P1 și P2, P3 va fi executat timp de 3 unități de timp, deoarece timpul de explozie a procesorului este de numai 3 secunde.
Coadă gata
Deoarece P3 a fost finalizat, acesta va fi terminat și nu va fi adăugat la coada de așteptare. Următorul proces care va fi executat este P4.
P4 | P5 | P1 | P6 | P2 |
1 | 5 | 1 | 4 | 2 |
diagrama Gantt
După, P1, P2 și P3, P4 va fi executat. Timpul său de explozie este de numai 1 unitate, ceea ce este mai mic decât cuantumul de timp, prin urmare, va fi finalizat.
Coadă gata
Următorul proces din coada de pregătire este P5 cu 5 unități de timp de explozie. Deoarece P4 este finalizat, nu va fi adăugat înapoi la coadă.
P5 | P1 | P6 | P2 |
5 | 1 | 4 | 2 |
diagrama Gantt
P5 va fi executat pentru întregul interval de timp, deoarece necesită 5 unități de timp de explozie, care este mai mare decât intervalul de timp.
Coadă gata
P5 nu a fost încă finalizat; va fi adăugat înapoi la coadă cu timpul de explozie rămas de 1 unitate.
P1 | P6 | P2 | P5 |
1 | 4 | 2 | 1 |
Diagrama GANTT
Procesului P1 i se va da următoarea tură pentru a-și finaliza execuția. Deoarece necesită doar 1 unitate de timp de explozie, deci va fi finalizat.
Coadă gata
P1 este finalizat și nu va fi adăugat înapoi la coada gata. Următorul proces P6 necesită doar 4 unități de timp de explozie și va fi executat în continuare.
P6 | P2 | P5 |
4 | 2 | 1 |
diagrama Gantt
P6 va fi executat timp de 4 unități de timp până la finalizare.
Coadă gata
Deoarece P6 este finalizat, nu va fi adăugat din nou la coadă. Există doar două procese prezente în coada gata. Următorul proces P2 necesită doar 2 unități de timp.
P2 | P5 |
2 | 1 |
Diagrama GANTT
P2 va fi executat din nou, deoarece necesită doar 2 unități de timp, prin urmare, acesta va fi finalizat.
Coadă gata
Acum, singurul proces disponibil în coadă este P5, care necesită 1 unitate de timp de explozie. Deoarece intervalul de timp este de 4 unități, deci va fi completat în următoarea explozie.
P5 |
1 |
diagrama Gantt
P5 va fi executat până la finalizare.
Timpul de finalizare, timpul de realizare și timpul de așteptare vor fi calculate așa cum se arată în tabelul de mai jos.
După cum știm,
Turn Around Time = Completion Time - Arrival Time Waiting Time = Turn Around Time - Burst Time
ID proces | Timpul sosirii | Timp de explozie | Timp de finalizare | Întoarceți Timpul | Timp de asteptare |
---|---|---|---|---|---|
1 | 0 | 5 | 17 | 17 | 12 |
2 | 1 | 6 | 23 | 22 | 16 |
3 | 2 | 3 | unsprezece | 9 | 6 |
4 | 3 | 1 | 12 | 9 | 8 |
5 | 4 | 5 | 24 | douăzeci | cincisprezece |
6 | 6 | 4 | douăzeci și unu | cincisprezece | unsprezece |
Timp mediu de așteptare = (12+16+6+8+15+11)/6 = 76/6 unități