Salta al contenuto
Note per Studenti Esercizio - Round robin con priorità e task idle (eserciziario, esercizio 83)

Esercizio - Round robin con priorità e task idle (eserciziario, esercizio 83)

In questa pagina 3

Testo (eserciziario del corso di Sistemi Operativi, Ing. Informatica UniPD, esercizio 83, tradotto). Dato lo scheduling round robin preemptive con priorità e quanto di 10 unità; esiste inoltre un task idle con burst 0 che gira quando non ci sono processi pronti. Un processo prelazionato viene messo in fondo alla coda del proprio livello di priorità. Il numero più alto è la priorità più alta.

processo priorità burst arrivo
P1P_1 40 20 0
P2P_2 30 25 25
P3P_3 30 25 30
P4P_4 35 15 60
P5P_5 5 10 100
P6P_6 10 10 105

Si mostri il diagramma di Gantt, il turnaround e l'attesa di ogni processo. 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 →.

Regole

  • Si esegue il processo pronto di priorità più alta. Un nuovo arrivo con priorità strettamente maggiore prelaziona subito il processo in esecuzione (che va in fondo alla propria coda).
  • Processi con la stessa priorità girano a round robin con quanto 10.
  • Quando nessun processo è pronto gira l'idle.

Svolgimento

intervallo esegue motivo
0 .. 20 P1P_1 (40) unico processo; il quanto scade a 10 e a 20 ma nessun altro è pronto, quindi continua; finisce a 20
20 .. 25 idle nessun processo pronto
25 .. 35 P2P_2 (30) arriva a 25; quanto fino a 35
35 .. 45 P3P_3 (30) P3P_3 è arrivato a 30 e attende in coda 30; scaduto il quanto di P2P_2 (residuo 15) tocca a lui (residuo 15)
45 .. 55 P2P_2 (30) altro quanto (residuo 5)
55 .. 60 P3P_3 (30) residuo 15: esegue 5 unità e a 60 arriva P4P_4
60 .. 75 P4P_4 (35) P4P_4 ha priorità 35 > 30 e prelaziona P3P_3 (residuo 10); esegue 15 unità (un quanto e mezzo, nessuno ha priorità uguale) e finisce a 75
75 .. 80 P2P_2 (30) P2P_2 (in coda prima di P3P_3) esegue le sue 5 unità residue e finisce a 80
80 .. 90 P3P_3 (30) residuo 10, finisce a 90
90 .. 100 idle
100 .. 105 P5P_5 (5) arriva a 100 e parte
105 .. 115 P6P_6 (10) P6P_6 arriva a 105 con priorità 10 > 5 e prelaziona P5P_5 (residuo 5); finisce a 115
115 .. 120 P5P_5 (5) termina a 120

Diagramma di Gantt:

0-20 20-25 25-35 35-45 45-55 55-60 60-75 75-80 80-90 90-100 100-105 105-115 115-120
P1P_1 idle P2P_2 P3P_3 P2P_2 P3P_3 P4P_4 P2P_2 P3P_3 idle P5P_5 P6P_6 P5P_5

Verifica delle durate eseguite: P2=10+10+5=25P_2 = 10 + 10 + 5 = 25 ✓; P3=10+5+10=25P_3 = 10 + 5 + 10 = 25 ✓; P4=15P_4 = 15 ✓; P1=20P_1 = 20 ✓; P5=5+5=10P_5 = 5 + 5 = 10 ✓; P6=10P_6 = 10 ✓.

Turnaround e attesa

arrivo fine turnaround burst attesa
P1P_1 0 20 20 20 0
P2P_2 25 80 55 25 30
P3P_3 30 90 60 25 35
P4P_4 60 75 15 15 0
P5P_5 100 120 20 10 10
P6P_6 105 115 10 10 0

Risultati coincidenti con la soluzione del corso (turnaround 20, 55, 60, 15, 20, 10; attesa 0, 30, 35, 0, 10, 0).

Domande d'esame

Perché P5P_5 attende anche se è stato il primo a partire dopo l'idle? Traccia. Perché a t=105t=105 arriva P6P_6 con priorità maggiore (10 > 5) e lo prelaziona: P5P_5 riprende solo a 115 e attende 10 unità.

Versione ripasso

Teoria collegata