Esercizio - Lettura di un diagramma di Gantt e ordine di priorità (eserciziario, esercizi 25 e 28)
In questa pagina 3
Testo (eserciziario del corso di Sistemi Operativi, Ing. Informatica UniPD).
Esercizio 28. Il diagramma di Gantt seguente mostra lo scheduling di cinque processi; ogni freccia indica l'istante di arrivo nella coda dei pronti: a 0, a 4, a 6, a 11, a 15.
| 0-4 | 4-6 | 6-10 | 10-12 | 12-15 | 15-18 | 18-20 |
|---|---|---|---|---|---|---|
Domande: (1) l'algoritmo prelaziona la CPU ai processi? (2) qual è il tempo massimo di turnaround e quello medio? (3) se lo scheduling fosse a priorità, qual è l'ordine di priorità dei cinque processi?
Esercizio 25. Sei processi sono eseguiti su un monoprocessore secondo un diagramma (i processi in coda dei pronti sono in grigio, in esecuzione in nero). Quali tra FIFO e Round Robin (con un esempio di quanto) possono aver prodotto quella sequenza? Giustificare. Ordine di arrivo e di esecuzione: , ogni processo viene eseguito una volta sola, senza interruzioni, e il massimo tempo di esecuzione è quello di (10 unità).
Esercizio 28
(1) Prelazione. Sì. Per esempio a arriva mentre ha eseguito 4 unità: viene interrotto e ottiene la CPU. non è terminato (finirà a 15): lo scheduler gli ha tolto la CPU, quindi è preemptive. Anche a è prelazionato da .
(2) Turnaround. Turnaround fine arrivo. Le fine si leggono dal diagramma (l'ultima fascia di ogni processo):
| arrivo | fine | turnaround | |
|---|---|---|---|
| 0 | 15 | 15 | |
| 4 | 12 | 8 | |
| 6 | 10 | 4 | |
| 11 | 18 | 7 | |
| 15 | 20 | 5 |
Massimo (). Media .
(3) Priorità. Si deduce da ogni prelazione e da ogni scelta:
- a , prelaziona : ;
- a , prelaziona : ;
- a finisce e riprende (non ): coerente con ;
- a arriva ma continua fino a 12: (un arrivo con priorità uguale non prelaziona);
- a finisce e tra e (entrambi pronti) va : ;
- a arriva mentre esegue e dopo va : (non prelaziona, e viene dopo).
Ordine: .
Esercizio 25
- FIFO: sì. In FIFO ogni processo gira dall'inizio alla fine nell'ordine di arrivo senza interruzioni. L'ordine di arrivo è identico a quello di esecuzione e ogni processo ha un solo tratto nero: è compatibile.
- Round Robin: sì, con un quanto il massimo tempo di esecuzione (10). Se il quanto è almeno pari alla durata del processo più lungo (, 10), nessun processo viene mai prelazionato: RR si riduce a FIFO e produce la stessa sequenza. Un esempio: , o anche . Con un quanto più piccolo (per esempio ), verrebbe interrotto e comparirebbe in più tratti, cosa che il diagramma non mostra.
Domande d'esame
Come si capisce da un Gantt se lo scheduling è preemptive? Traccia. Un processo compare in più tratti separati da altri processi prima di essere terminato, o un nuovo arrivo prende subito la CPU a metà del burst di un altro.
Versione ripasso
- 28: Gantt (0-4), (4-6), (6-10), (10-12), (12-15), (15-18), (18-20); arrivi 0, 4, 6, 11, 15. Teoria: Scheduling della CPU - FCFS, SJF, priorità e round robinLo scheduler della CPU sceglie tra i processi pronti quello a cui dare il core (il dispatcher esegue il cambio, con latenza di dispatch); lo scheduling è non preemptive (il processo tiene la CPU finché termina o si blocca) o preemptive (la CPU gli può essere tolta, con rischio di race condition); i criteri sono utilizzo della CPU e throughput (da massimizzare), tempo di attesa, di turnaround (completamento meno arrivo) e di risposta (da minimizzare); FCFS è semplice ma soffre dell'effetto convoglio (esempio 24, 3, 3: attesa media 17 contro 3); SJF è ottimo per l'attesa media ma richiede la lunghezza del prossimo burst, stimata con la media esponenziale tau(n+1) = alfa t(n) + (1-alfa) tau(n); SRTF è la versione preemptive (esempio con attesa media 6,5 contro 7,75); round robin dà a ciascuno un quanto q e nessuno attende più di (n-1)q; la priorità causa starvation, risolta con l'aging; code multilivello e a feedback (MLFQ) combinano le politiche.Scheduling della CPU - FCFS, SJF, priorità e round robin →.
- Preemptive: sì ( prelaziona a 4, prelaziona a 6).
- Turnaround fine arrivo: 15, 8, 4, 7, 5; massimo 15 (), medio 7,8.
- Priorità: (prelazioni dicono la stretta maggioranza; i non-prelazionati danno ).
- 25: FIFO sì (arrivo = esecuzione, un tratto per processo). RR sì se il quanto è il burst massimo (10): nessuna prelazione, RR FIFO.
- Errori tipici: turnaround senza sottrarre l'arrivo; priorità strettamente maggiore dove c'è solo ; dimenticare che RR con quanto grande è FIFO.