Nell'esempio seguente, sono presenti sei processi denominati P1, P2, P3, P4, P5 e P6. Il loro orario di arrivo e il tempo di burst sono riportati di seguito nella tabella. Il quanto di tempo del sistema è di 4 unità.
ID processo | Orario di arrivo | Tempo di scoppio |
---|---|---|
1 | 0 | 5 |
2 | 1 | 6 |
3 | 2 | 3 |
4 | 3 | 1 |
5 | 4 | 5 |
6 | 6 | 4 |
Secondo l'algoritmo, dobbiamo mantenere la coda pronta e il diagramma di Gantt. La struttura di entrambe le strutture dati verrà modificata dopo ogni programmazione.
Coda pronta:
Inizialmente, al tempo 0, arriva il processo P1 che sarà schedulato per l'intervallo temporale 4 unità. Quindi nella coda pronta ci sarà un solo processo P1 all'inizio con un tempo di burst della CPU di 5 unità.
P1 |
5 |
diagramma di Gantt
Il P1 verrà eseguito prima per 4 unità.
Coda pronta
Nel frattempo, dopo l'esecuzione di P1, altri quattro processi P2, P3, P4 e P5 arrivano in coda. P1 non è ancora stato completato, necessita di un'altra unità di tempo, quindi verrà aggiunto nuovamente alla coda dei pronti.
P2 | P3 | P4 | P5 | P1 |
6 | 3 | 1 | 5 | 1 |
diagramma di Gantt
Dopo P1, P2 verrà eseguito per 4 unità di tempo, come mostrato nel diagramma di Gantt.
Coda pronta
Durante l'esecuzione di P2, nella coda dei pronti arriva un ulteriore processo P6. Poiché P2 non è ancora stato completato, quindi, anche P2 verrà aggiunto nuovamente alla coda dei prodotti pronti con il tempo di burst rimanente di 2 unità.
P3 | P4 | P5 | P1 | P6 | P2 |
3 | 1 | 5 | 1 | 4 | 2 |
diagramma di Gantt
Dopo P1 e P2, P3 verrà eseguito per 3 unità di tempo poiché il tempo di burst della CPU è di soli 3 secondi.
Coda pronta
Poiché P3 è stato completato, verrà terminato e non verrà aggiunto alla coda dei prodotti pronti. Il prossimo processo che verrà eseguito è P4.
P4 | P5 | P1 | P6 | P2 |
1 | 5 | 1 | 4 | 2 |
diagramma di Gantt
Dopo, P1, P2 e P3, P4 verrà eseguito. Il suo tempo di scoppio è solo di 1 unità, che è inferiore al quanto di tempo, quindi verrà completato.
Coda pronta
Il processo successivo nella coda pronta è P5 con 5 unità di burst time. Poiché P4 è completato, non verrà aggiunto nuovamente alla coda.
P5 | P1 | P6 | P2 |
5 | 1 | 4 | 2 |
diagramma di Gantt
P5 verrà eseguito per l'intero intervallo di tempo perché richiede 5 unità di tempo burst che è superiore all'intervallo di tempo.
Coda pronta
P5 non è stato ancora completato; verrà aggiunto nuovamente alla coda con il tempo di burst rimanente di 1 unità.
confronto di stringhe java
P1 | P6 | P2 | P5 |
1 | 4 | 2 | 1 |
Diagramma di Gantt
Al processo P1 verrà assegnato il turno successivo per completare la sua esecuzione. Poiché richiede solo 1 unità di tempo di burst, verrà completato.
Coda pronta
P1 è completato e non verrà aggiunto nuovamente alla coda pronta. Il successivo processo P6 richiede solo 4 unità di burst time e verrà eseguito successivamente.
P6 | P2 | P5 |
4 | 2 | 1 |
diagramma di Gantt
P6 verrà eseguito per 4 unità di tempo fino al completamento.
Coda pronta
Poiché P6 è completato, non verrà aggiunto nuovamente alla coda. Ci sono solo due processi presenti nella coda pronta. Il processo successivo P2 richiede solo 2 unità di tempo.
P2 | P5 |
2 | 1 |
Diagramma di Gantt
P2 verrà eseguito di nuovo, poiché richiede solo 2 unità di tempo, quindi verrà completato.
Coda pronta
Ora, l'unico processo disponibile nella coda è P5 che richiede 1 unità di burst time. Poiché l'intervallo di tempo è di 4 unità, verrà completato nel burst successivo.
P5 |
1 |
diagramma di Gantt
P5 verrà eseguito fino al completamento.
Il tempo di completamento, il tempo di consegna e il tempo di attesa verranno calcolati come mostrato nella tabella seguente.
Come sappiamo,
Turn Around Time = Completion Time - Arrival Time Waiting Time = Turn Around Time - Burst Time
ID processo | Orario di arrivo | Tempo di scoppio | Tempo di completamento | Tempo di consegna | Tempo di attesa |
---|---|---|---|---|---|
1 | 0 | 5 | 17 | 17 | 12 |
2 | 1 | 6 | 23 | 22 | 16 |
3 | 2 | 3 | undici | 9 | 6 |
4 | 3 | 1 | 12 | 9 | 8 |
5 | 4 | 5 | 24 | venti | quindici |
6 | 6 | 4 | ventuno | quindici | undici |
Tempo di attesa medio = (12+16+6+8+15+11)/6 = 76/6 unità