Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sommario
! Concetto di scheduling ! Tipi di scheduling
! Lungo termine ! Breve termine (scheduling della CPU) ! Medio termine
CONCETTO DI SCHEDULING
in esecuzione
in attesa
Diagramma di accodamento
pronto
[1]
CPU
in esecuzione
in attesa
Fine figlio
[M]
interrupt
Attesa interrupt
5
TIPI DI SCHEDULING
Tipi di scheduler
! Scheduler a lungo termine (o job scheduler)
! Seleziona quali processi devono essere portati dalla memoria alla ready queue
Ready queue
CPU
I/O
I/O queues
Graziano Pravadelli (2011) 8
! CPU-bound
! molti calcoli, pochi lunghi burst di CPU
! Pu essere assente
! usato principalmente in sistemi con risorse limitate
10
Ready queue
CPU
I/O
I/O queues
11
CPU Scheduler
! Modulo del S.O. che seleziona un processo tra quelli in memoria pronti per lesecuzione, e gli alloca la CPU ! Data la frequenza di invocazione, una parte critica del S.O.
! Necessit di algoritmi di scheduling
13
Dispatcher
! Modulo del S.O. che passa il controllo della CPU al processo scelto dallo scheduler
! Switch del contesto ! Passaggio alla modalit user ! Salto alla opportuna locazione nel programma per farlo ripartire
! Latenza di dispatch
! Tempo necessario al dispatcher per fermare un processo e farne ripartire un altro ! Deve essere la pi bassa possibile
Graziano Pravadelli (2011) 14
16
Prelazione (Preemption)
! Prelazione = rilascio forzato della CPU
! Scheduling senza prelazione (non-preemptive)
! Processo che detiene la CPU non la rilascia fino al termine del burst
Non-preemptive
Ready queue CPU
Preemptive
Ready queue CPU
I/O
I/O
I/O queues 17
Stati di un processo
! Schema complessivo
swapped
Swap in ammissione nel sistema preempt Swap out terminazione
nuovo
pronto
dispatch Completamento I/O o un evento
in esecuzione
Attesa di I/O o di evento
finito
in attesa
Graziano Pravadelli (2011) 18
Metriche di Scheduling
! Utilizzo della CPU
! Lobiettivo tenere CPU occupata pi possibile
! Throughput
! Numero di processi completati per unit di tempo
Metriche di Scheduling
! Tempo di completamento (turnaround, tt)
! Tempo necessario ad eseguire un particolare processo dal momento della sottomissione al momento del completamento
10
Criteri di ottimizzazione
! Massimizzare
! utilizzo della CPU ! throughput
! Minimizzare
! tempo di turnaround ! tempo di attesa ! tempo di risposta
Graziano Pravadelli (2011) 21
ALGORITMI DI SCHEDULING
11
! Motivazione
! implementazione semplice
23
FCFS (Esempio)
Processo P1 P2 P3 Tempo 0 P1 P2 P3 Tempo di arrivo 0 2 4 CPU burst 24 3 3 24 27 30 Processo P1 P2 P3 Tr 0 22 23 Tw 0 22 23 Tt 24 25 26
12
FCFS (Esempio)
Processo P1 P2 P3 Tempo 0 P1 P2 P3 3 Tempo di arrivo 4 0 2 6 CPU burst 24 3 3 30 Processo P1 P2 P3 Tr 2 0 1 Tw 2 0 1 Tt 26 3 4
(molto meglio!)
25
FCFS
! Svantaggio
! Effetto convoglio
! Processi brevi si accodano ai processi lunghi precedentemente arrivati
26
13
Shortest-Job-First (SJF)
! Associa ad ogni processo la lunghezza del prossimo burst di CPU ! Il processo con il burst di CPU pi breve viene selezionato per lesecuzione
27
Shortest-Job-First (SJF)
! Due schemi:
! Non preemptive ! Preemptive
! Se arriva un nuovo processo con un burst di CPU pi breve del tempo che rimane da eseguire al processo in esecuzione, questultimo viene rimosso dalla CPU per fare spazio a quello appena arrivato
! In questo caso lalgoritmo si chiama Shortest-RemainingTime-First (SRTF)
14
Tempo di arrivo 0 2 4 5 0
CPU burst 7 4 1 4
Processo P1 P2 P3 P4
Tr 0 6 3 7
Tw 0 6 3 7
Tt 7 10 4 11
12
16
Tempo di arrivo 0 2 4 5 0 2
CPU burst 7 4 1 4 4 5
Processo P1 P2 P3 P4
Tr 0 0 0 2
Tw 9 1 0 2
Tt 16 5 1 6
11
16
15
! Espandendo la formula
! Dato che sia # che (1 - #) sono <= 1, ogni termine successivo pesa meno del predecessore
Graziano Pravadelli (2011)
32
16
33
Scheduling a priorit
! Viene associata una priorit a ogni processo ! CPU allocata al processo con priorit pi alta ! Opzioni:
! Preemptive ! Non-preemptive
17
Scheduling a priorit
! Politiche di assegnamento della priorit:
! Interne al S.O.
! ! ! ! ! ! ! ! Limiti di tempo Requisiti di memoria N file aperti ! Importanza del processo Soldi pagati per lutilizzo del computer Motivi politici !
Graziano Pravadelli (2011) 35
! Esterne al S.O.
T. di arrivo 1 0 2 0 1
Pr. 3 1 3 4 2 0 1
CPU burst 10 1 2 1 5 6
Processo P1 P2 P3 P4 P5
Tr 5 0 14 18 0 16
Tw 5 0 14 18 0 18
Tt 15 1 16 19 5 19
18
Scheduling a priorit
! Problema: starvation
! Processi a bassa priorit possono non essere mai eseguiti
! Caso storico: chiusura IBM 7090 al MIT nel 1973
! Un processo era in attesa dal 1967!
37
19
HRRN (Esempio)
Proc. P1 P2 P3 P4 P5 Processo P1 P2 P3 P4 P5 T. di arrivo 1 0 2 2 1 Tr Tw 9 0 6 5 1 9 0 6 5 1 Tt 19 2 8 6 6 CPU burst 10 2 2 1 5 Tempo 0 P1 P2 P3 P4 P5
Graziano Pravadelli (2011) 39
Calcolo priorit R (termine processo) Proc. P1 P2 P3 P4 P5 2 7 8 t=0 1 t=2 1+0/2 1+0/1 1+1/5 10 t=7 1+5/2 1+5/1 t=8 1+6/2 19 1+1/10 1+6/10 1+7/10
20
! Valore ragionevole di q?
! Fare in modo che 80% dei burst di CPU siano < q
! Prestazioni
! Tempo di turnaround maggiore/uguale di SJF ! Tempo di risposta minore/uguale di SJF
Graziano Pravadelli (2011) 41
RR (Esempio)
Proc. (q=2) P1 P2 P3 P4 Tempo (q=2) In esecuzione Nella ready queue T. di arrivo 0 0 0 0 0 P1 P2 P3 P4 CPU burst 5 1 7 2 2 P2 P3 P4 P1 3 P3 P4 P1 5 P4 P1 P3 Processo P1 P2 P3 P4 Tr 0 2 3 5 Tw 7 2 9 5 Tt 12 3 16 7
7 P1 P3
9 P3 P1
11 P1 P3
12 P3
14
15 P3
42
21
43
22
Code multilivello
! Classe di algoritmi in cui la ready queue partizionata in pi code
! Esempio
! Una coda per job in foreground (interattivi) ! Una coda per job in background (batch) ! !
Code multilivello
! Necessario scheduling tra le code
! Scheduling a priorit fissa
! Es.: servire prima tutti i job di sistema, poi quelli in foreground, poi quelli in background ! Possibilit di starvation per code a priorit bassa
23
Code multilivello
47
48
24
CPU
50
25
100%
scheduler
100%
40%
100%
scheduler
scheduler
scheduler
g1 g2
gN
g1
Graziano Pravadelli (2011)
g2
gN
51
Contesto reale
! Obiettivo: minimizzare la complessit ! Gli algoritmi reali usano la prelazione e sono spesso basati su RR ! Esempio: CPU scheduling in Solaris (Unix di Sun)
! Basato su priorit con aging ! Priorit = priorit base + priorit corrente
! Priorit base = [-20 ! + 20] (-20=max, +20=min) ! Priorit corrente = 0.1 * CPU(5*n)
! CPU(t) = utilizzo della CPU negli ultimi t secondi ! n = numero medio di processi pronti allesecuzione nellultimo secondo
26
53
! Di solito usato per illustrate gli algoritmi ! Richiede conoscenze troppo specifiche sulla natura dei processi
Graziano Pravadelli (2011) 54
27
Simulazione
! Necessario programmare un modello del sistema ! Si utilizzano dati statistici o reali ! Abbastanza precisa ma costosa
56
28
Implementazione
! Unico modo assolutamente sicuro per valutare un algoritmo di scheduling:
! Codificarlo ! Inserirlo nel S.O. ! Vedere come funziona!
57
Esercitazione
! Schedulare i processi indicati in tabella con le politiche:
! FCFS ! SJF senza prelazione ! SJF con prelazione ! RR con quanto = 4 ! RR con quanto = 1 ! HRRN
Graziano Pravadelli (2011)
Proc. A B C D E
T. di arrivo 0 2 4 6 8
CPU burst 3 6 4 5 2
58
29
Esercitazione
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 A B C D E 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 A B C D E
FCFS
59
Esercitazione
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 A B C D E 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 A B C D E
RR q=4
60
30
Esercitazione
Al tempo t=8 arriva E che si mette in coda prima di D che appena uscito dalla CPU, ma dopo B che gi si trovava in coda
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 A B C D E Ready queue A B C B D C B E D C B E D C D C B C B E B E D E D C D C B C B B D D
RR q=1
Al tempo t=6 arriva D che si mette in coda prima di C che appena uscito dalla CPU
61
Esercitazione
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 A B C D E Calcolo priorit R Proc. A B C D E t=0 1 T=3 1+1/6 T=9 1+5/4 T=13 -
HRRN
31
Esercitazione
A FCFS t attesa t risposta tournaround SJF (senza prelazione) t attesa t risposta tournaround SJF (con prelazione) t attesa t risposta tournaround 0 0 3 0 0 3 0 0 3 1 1 7 1 1 7 7 1 13 5 5 9 7 7 11 0 0 4 7 7 12 9 9 14 9 9 14 10 10 12 1 1 3 0 0 2 4.6 4.6 8.6 3.6 3.6 7.6 3.2 2.0 7.2 B C D E Media
63
Esercitazione
A RR (q=1) t attesa t risposta tournaround RR (q=4) t attesa t risposta tournaround HRRN t attesa t risposta tournaround 0 0 3 1 1 7 5 5 9 9 9 14 5 5 7 4.0 4.0 8.0 0 0 3 9 1 15 3 3 7 9 5 14 9 9 11 7.5 3.6 10.0 1 0 4 10 0 16 9 1 13 9 1 14 5 2 7 6.8 0.8 10.8 B C D E Media
64
32