Criteri di Scheduling Algoritmi di Scheduling Multiple

  Criteri di Scheduling
  Algoritmi di Scheduling
  Multiple-Processor Scheduling  
Asymmetric/Symmetric multiprocessing
 
Processori Multicore
Operating System Concepts – 7th Edition
5.2
Silberschatz, Galvin and Gagne ©2005
1
  Massimizzare lʼutilizzo della CPU mediante multiprogrammazione
  CPU–I/O Burst Cycle  
Processo alterna cicli di CPU ad attese di I/O
  Distribuzione dei cicli di CPU (CPU-burst)
Operating System Concepts – 7th Edition
5.3
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7th Edition
5.4
Silberschatz, Galvin and Gagne ©2005
2
Operating System Concepts – 7th Edition
5.5
Silberschatz, Galvin and Gagne ©2005
  Sceglie tra i processi pronti quello da eseguire e vi alloca la CPU
  La Schedulazione della CPU avviene quando un processo:
1. Passa da attivo in stato di attesa
2. Passa da attivo a stato di pronto
3. Passa da stato di attesa a stato di pronto
4. Termina
  Scheduling secondo 1 e 4 eʼ non-preemptive (senza prelazione)
  Se si schedula secondo 2 e 3, preemptive (con prelazione)
Operating System Concepts – 7th Edition
5.6
Silberschatz, Galvin and Gagne ©2005
3
  Il Dispatcher passa il controllo della CPU al processo selezionato
dallo schedulatore a breve termine:  
Cambia il contesto (context switch)
 
Passa in modalitaʼ utente
 
Salta alla locazione giusta da cui il processo schedulato deve
ripartire
 
Latenza di Dispatch latency – tempo necessario al dispatcher
per fermare un processo e farne ripartire un altro
Operating System Concepts – 7th Edition
5.7
Silberschatz, Galvin and Gagne ©2005
  Utilizzo della CPU utilization
 
CPU quasi sempre occupata
  Throughput – # di processi completati per unitaʼ di tempo
  Tempo di Turnaround – tempo necessario per completare
un particolare processo
  Tempo di attesa – tempo trascorso dal processo nella coda
di dei processi in stato di pronto
  Tempo di risposta – tempo trascorso dal momento in cui
una richiesta viene sottoposta al sistema fino al momento in
cui una prima risposta appare in output (importante in
ambienti time-sharing)
Operating System Concepts – 7th Edition
5.8
Silberschatz, Galvin and Gagne ©2005
4
  Massimizza uso di CPU
  Massimizza throughput
  Minimizza turnaround
  Minimizza tempo dʼattesa   Minimizza tempo di risposta
Operating System Concepts – 7th Edition
Silberschatz, Galvin and Gagne ©2005
5.9
Process
Burst Time
P1
24
P2
3
P3
3
  I processi arrivano nellʼordine: P1 , P2 , P3 Il diagramma di Gantt per la schedulazione:
P1
P2
0
24
P3
27
30
  Tempo di attesa:
P1 = 0; P2 = 24; P3 = 27
  Tempo medio di attesa: (0 + 24 + 27)/3 = 17
Operating System Concepts – 7th Edition
5.10
Silberschatz, Galvin and Gagne ©2005
5
Consideriamo ora lʼordine di arrivo
P2 , P3 , P1   Il diagramma di Gantt diventa:
P2
0
P3
3
P1
6
30
  Tempi di attesa: P1 = 6; P2 = 0; P3 = 3
  Tempo medio di attesa: (6 + 0 + 3)/3 = 3
 
Miglioramento significativo
  Evitato lʼeffetto convoglio: processi brevi dopo processi lunghi
Operating System Concepts – 7th Edition
5.11
Silberschatz, Galvin and Gagne ©2005
  Scegli il processo con il piuʼ piccolo CPU burst
  Schemi possibili:  
Non-preemptive – una volta assegnata la CPU ad un processo
attendi fino a completamento del CPU burst
 
preemptive – se un nuovo processo arriva con CPU burst piuʼ
breve del tempo rimanente al CPU burst del processo in
esecuzione, prelaziona
  Schema
noto come: Shortest-Remaining-Time-First (SRTF)
  SJF ottimizza (minimizza) il tempo medio di attesa
Operating System Concepts – 7th Edition
5.12
Silberschatz, Galvin and Gagne ©2005
6
Process
Arrival Time
Burst Time
P1
0.0
7
P2
2.0
4
P3
4.0
1
P4
5.0
4
  SJF (non-preemptive)
P1
0
P3
3
7
P2
P4
8
12
16
  Tempo media di attesa = (0 + 6 + 3 + 7)/4 = 4
Operating System Concepts – 7th Edition
Silberschatz, Galvin and Gagne ©2005
5.13
Process
Arrival Time
Burst Time
P1
0.0
7
P2
2.0
4
P3
4.0
1
P4
5.0
4
  SJF (preemptive)
P1
0
P2
2
P3
4
P2
5
P4
7
P1
11
16
  Tempo medio di attesa = (9 + 1 + 0 +2)/4 = 3
Operating System Concepts – 7th Edition
5.14
Silberschatz, Galvin and Gagne ©2005
7
  Possiamo solo stimare tale lunghezza
  Possibilitaʼ: usa le lunghezza dei precedenti CPU bursts
 
Es.: media esponenziale
1.
2.
3.
4.
€
t n = lunghezza effettiva dell'n mo CPU burst
τ n +1 = valore atteso del prossimo CPU burst
α, 0 ≤ α ≤ 1
Definisci : τ n +1 = α t n + (1− α )τ n .
€
Operating System Concepts – 7th Edition
5.15
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7th Edition
5.16
Silberschatz, Galvin and Gagne ©2005
8
  α =0
τn+1 = τn
  La storia recente non ha valore
  α =1
  τn+1 = α tn
  Solo il precedente CPU burst ha valore
  Se espandiamo la formula otteniamo:
τn+1 = α tn+(1 - α)α tn -1 + …
+(1 - α )j α tn -j + …
+(1 - α )n +1 τ0
 
  Nota che α e (1 - α) sono ≤ 1, quindi ogni termine nella formula
pesa meno del precedente
Operating System Concepts – 7th Edition
5.17
Silberschatz, Galvin and Gagne ©2005
  Ogni processo ha associato un valore di prioritaʼ (intero)
  La CPU eʼ allocata al processo con prioritaʼ piuʼ alta
(spesso nueri piccoli indicano prioritaʼ alta)
 
Preemptive
 
Non-preemptive
  SJF eʼ uno sceduling a prioritaʼ definita dal tempo previsto di CPU
burst.
  Problemi: Starvation – processi con prioritaʼ bassa potrebbero
essere “dimenticati”
  Soluzione: Aging – incrementare la prioritaʼ dei processi in funzione
del tempo trascorso in stato di pronto
Operating System Concepts – 7th Edition
5.18
Silberschatz, Galvin and Gagne ©2005
9
  Ogni processo riceve la CPU per un breve intervallo (time
quantum), tipicamente 10-100 millisecondi. Passato tale quanto
di tempo, il processo ritorno all fine della coda dei processi in
stato di pronto.
  Se n processi in coda di pronto e quanto di tempo = q, ogni
processo riceve 1/n di CPU time in blocchi di q unitaʼ per volta.
Nessun processo attende piuʼ di (n-1)q unitaʼ.
  Performance
 
q grande ⇒ FIFO
 
q piccolo ⇒ q deve esser maggiore del tempo di context
switch, per evitare eccessivo
Operating System Concepts – 7th Edition
Process
P1
P2
P3
P4
  Il diagramma di Gantt: P1
0
P2
20 37
Silberschatz, Galvin and Gagne ©2005
5.19
P3
Burst Time
53
17
68
24
P4
57
P1
P3
P4
P1
P3
P3
77 97 117 121 134 154 162
  Tipicamente, rispetto a SJF, tempo di turnround piuʼ alto, ma
migliore tempo di risposta
Operating System Concepts – 7th Edition
5.20
Silberschatz, Galvin and Gagne ©2005
10
Operating System Concepts – 7th Edition
5.21
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7th Edition
5.22
Silberschatz, Galvin and Gagne ©2005
11
  La coda dei processi pronti divisa in code separate:
foreground (interactive)
background (batch)
  Ogni coda eʼ gestita al proprio algoritmo di scheduling
 
foreground – RR
 
background – FCFS
  Scheduling tra le code
 
Scheduling a prioritaʼ fissa; (prima tutti I processi in foreground
quindi quelli in background). Rischio di starvation.
 
Time slice – ogni coda ha assegnata una percentuale di tempo
di CPUin cui puoʼ schedulare I propri processi;
  es.:
– 
80% to foreground in RR
20% to background in FCFS Operating System Concepts – 7th Edition
5.23
Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7th Edition
5.24
Silberschatz, Galvin and Gagne ©2005
12
  Processi possono cambiare coda;  
Possibilitaʼ di implementare tecniche di aging
  Parametri critici:
 
numero di code
 
Algoritmo di scheduling usato in ciascuna coda
 
Criterio di promozione dei processi tra le code
 
Criterio di declassamento dei processi tra le code
 
Criterio di assegnazione di un processo ad una coda in
funzione del servizio richiesto
Operating System Concepts – 7th Edition
5.25
Silberschatz, Galvin and Gagne ©2005
  Tre code:  
Q0 – RR con q=8 milliseconds
 
Q1 – RR con q=16 milliseconds
 
Q2 – FCFS
  Scheduling
 
Ogni nuovo job eʼ ammesso alla coda Q0 servita con FCFS.
Quando attivo, il processo ha 8 milliseconds per completare.
Se non completa passa alla coda Q1.
 
In Q1 i job sono schedulati con criterio FCFS con q=16. Se tale
quanto non risulta sufficiente, il processo passa in Q2.
Operating System Concepts – 7th Edition
5.26
Silberschatz, Galvin and Gagne ©2005
13
Operating System Concepts – 7th Edition
5.27
Silberschatz, Galvin and Gagne ©2005
  w : tempo speso dal processo in attesa in stato di pronto
  s : tempo totale necessario al processo per arrivare a terminazione
  R = (w+s)/s
  Lo scheduling HRRN sceglie il processo con max R
 
Processi brevi hanno “prioritaʼ”  
Implementa una sorta di “aging” implicito
Operating System Concepts – 7th Edition
5.28
Silberschatz, Galvin and Gagne ©2005
14
  Code Multilivello con retroazione
  CPU(i) = CPU(i-1)/2
stima del tempo di CPU   P(i) = Base + CPU(i)/2 + nice
  Un valore alto di P(i) indica prioritaʼ bassa
  Base : serve per definire le code o classi di processi
  Processi che usano molta CPU vengono penalizzati
Operating System Concepts – 7th Edition
5.29
Silberschatz, Galvin and Gagne ©2005
  CPU scheduling deve bilanciare il carico e le condivisioni
tra I vari processori
  Multiprogrammazione asimmetrica: un solo processore
accede alle strutture dati di sistema e gestisce la
suddivisione per tutti
  Multiprogrammazione Simmetrica: ogni processore fa
scheduling autonomamente; Operating System Concepts – 7th Edition
5.30
Silberschatz, Galvin and Gagne ©2005
15
Multiprocessing Simmetrico: ogni processore si schedula
autonomamente;
 
 
 
Alternative:   Coda comune
  Code separate
Affinitaʼ di processo: meglio evitare che un processo
passi da un processore allʼaltro
  Affinitaʼ forte: no switching   Affinitaʼ debole: no switching preferito ma non
garantito
Bilanciamento del carico (in contrasto con lʼaffinitaʼ di
processo)   Migrazione mediante push
  Migrazione
Operating System Concepts – 7th Edition
mediante pull 5.31
Silberschatz, Galvin and Gagne ©2005
  Processori multipli sullo stesso chip
 
 
Ogni core ha il suo insieme di registri
Risparmio energetico e piuʼ veloce
  Multi-threading
 
 
I Core possono schedulare diversi thread
  Multi-Thread gestito in hardware
Dual core, dual thread = (virtualmente) 4 processori
  Scheduling parallelo di processi e (hw thread)
Operating System Concepts – 7th Edition
5.32
Silberschatz, Galvin and Gagne ©2005
16