Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
SCHEDULINGDELLA CPU
SISTEMI OPERATIVI
Obiettivi» Introduzione allo scheduling della CPU
˃ Aspetto fondamentale dei sistemi operativi multiprogrammati
» Algoritmi di scheduling della CPU
» Criteri per la scelta degli algoritmi di scheduling della CPU per particolari sistemi
Gior
gio
Giac
into
201
8
2
Sistemi Operativi
Gior
gio
Giac
into
201
8
Sistemi Operativi
3
Livelli di scheduling
Gior
gio
Giac
into
201
8
4
Sistemi Operativi
Running
Ready
Blocked
Short Term
Medium Term
Long Term
Blocked,Suspend
Ready,Suspend
New Exit
Figure 9.2 Levels of Scheduling
Scheduling e stati dei processiGi
orgi
o Gi
acin
to 2
018
5
Sistemi Operativi
Figure 9.1 Scheduling and Process State Transitions
Ready/Suspend
New
Running Exit
Blocked
Long-termscheduling
Long-termscheduling
Medium-termscheduling
Medium-termscheduling
Short-termscheduling
Ready
Blocked/Suspend
Gior
gio
Giac
into
201
8
6
Sistemi Operativi
Alternanza di operazioni dellaCPU e di operazioni di I/O
» L’esecuzione di un processo è una alternanza di CPU burst e I/O burst
» Durante gli I/O burstdi un processo la CPU è inattiva˃ Possiamo
assegnare alla CPU un processo prontoscheduling CPU
Gior
gio
Giac
into
201
8
7
Sistemi Operativi
CPU burst
CPU burst
CPU burst
I/O burst
I/O burst
I/O burst
Durata delle sequenze di operazioni della CPU
» Processi CPU bound˃ Pochi CPU burst molto lunghi
» Processi I/O bound˃ Molti CPU burst di breve durataGi
orgi
o Gi
acin
to 2
018
8
Sistemi Operativi
Scheduler della CPU» Quando la CPU è inattiva lo scheduler della CPU
seleziona un processo dalla coda dei processi pronti˃ La coda non necessariamente è gestita con politica
FIFO˃ Gli elementi della coda sono i PCB dei processi
Gior
gio
Giac
into
201
8
9
Sistemi Operativi
Attivazione dello scheduling» Lo scheduling si attiva quando
˃ Un processo passa dallo stato running allo stato blocked (I/O, wait(), ecc.)
˃ Un processo passa dallo stato running allo stato ready
˃ Un processo passa dallo stato blocked allo stato ready (completamento I/O, ecc.)
˃ Terminazione di un processo
Gior
gio
Giac
into
201
8
10
Sistemi Operativi
Scheduling con o senza prelazione» Se lo scheduling si attiva solo al
˃ passaggio dallo stato running allo stato blocked˃ termine di un processo
allora è senza prelazione (non-preemptive) o cooperativo
» Se lo scheduling si attiva anche al˃ passaggio dallo stato running allo stato ready˃ passaggio dallo stato blocked allo stato ready
allora è con prelazione (preemptive)
Gior
gio
Giac
into
201
8
11
Sistemi Operativi
Prelazione» Il sistema operativo può far rilasciare la CPU ad
un processo per consentire l’avanzamento di un altro processo
» Cosa succede se la prelazione avviene ˃ durante una chiamata al sistema˃ durante l’esecuzione di processi cooperanti che
elaborano dati condivisi
Windows 3.x e Macintosh fino a System 9 effettuano scheduling senza prelazione
Gior
gio
Giac
into
201
8
12
Sistemi Operativi
Prelazione, chiamate di sistema e interruzioni» Durante l’esecuzione di chiamate al sistema, la
prelazione può essere ritardata» Durante l’esecuzione di interruzioni, altre
interruzioni potrebbero essere disabilitate
Questi meccanismi non sono adatti nel caso di sistemi real-time e di multielaborazione
Gior
gio
Giac
into
201
8
13
Sistemi Operativi
Dispatcher» Modulo del sistema operativo che effettua
˃ Cambio di contesto˃ Passaggio alla modalità utente˃ Salto alla istruzione corretta del programma
Gior
gio
Giac
into
201
8
14
Sistemi Operativi
Gior
gio
Giac
into
201
8
Sistemi Operativi
15
Criteri relativi alle prestazioni del sistema
˃ Percentuale di tempo in cui il processore è occupato
˃ Numero di processi completati per unità di tempo
Gior
gio
Giac
into
201
8
16
Sistemi Operativi
Criteri orientati all’utente
˃ Tempo trascorso fra l’avvio di un processo e il suo completamentoSomma di: tempo di attesa ingresso in memoria, tempo nella coda ready, tempo CPU e tempo I/O
˃ Somma degli intervalli di tempo nella coda ready
˃ Tempo trascorso fra una richiesta e la relativa risposta in sistemi interattivi
Gior
gio
Giac
into
201
8
17
Sistemi Operativi
Altri criteri orientati all’utente
˃ I tempi di risposta medi dovrebbero essere sempre gli stessi Si può ottenere cercando di ridurne la varianza
Gli algoritmi di scheduling sviluppati non tengono conto di questo aspetto
Gior
gio
Giac
into
201
8
18
Sistemi Operativi
Gior
gio
Giac
into
201
8
Sistemi Operativi
19
Confronto degli algoritmi» Esempi con insiemi di processi nella coda ready
con relativi CPU burst» Prestazioni misurate in termini di tempo medio
di attesa˃ In molti testi si misura il tempo di turnaround
considerando la somma di CPU burst e tempo medio di attesa
Gior
gio
Giac
into
201
8
20
Sistemi Operativi
First Come, First Served (FCFS)» I processi vengono eseguiti nello stesso ordine
con cui entrano nella coda dei processi pronti» Algoritmo di semplice implementazione» Il tempo di attesa di un processo dipende dalla
durata dei processi che lo precedono nella coda˃ Analogia con la coda alla cassa di un supermercato,
di una banca, di un ufficio, ecc.
Gior
gio
Giac
into
201
8
21
Sistemi Operativi
Esempio tempi di attesa FCFS
» Se i processi arrivano nella sequenza P1 P2 P3
˃ P2 attende 24 ms e P3 attende 27 msTempo medio di attesa 17 ms
Gior
gio
Giac
into
201
8
22
Sistemi Operativi
Processo CPU burstP1 24P2 3P3 3
Esempio tempi di attesa FCFS
» Se i processi arrivano nella sequenza P2 P3 P1
˃ P3 attende 3 ms e P1 attende 6 msTempo medio di attesa 3 ms
Gior
gio
Giac
into
201
8
23
Sistemi Operativi
Processo CPU burstP1 24P2 3P3 3
Prestazioni FCFS» I processi “CPU-bound” sono favoriti
˃ I processi “I/O bound” devono attendere il completamento dei processi “CPU-bound”
» Basso overhead per l’esecuzione dell’algoritmo» Non si ha prelazione
˃ Inadatto per sistemi time sharing
Gior
gio
Giac
into
201
8
24
Sistemi Operativi
Shortest Job First (SJF)» L’algoritmo seleziona il processo nella coda con
il tempo di esecuzione minore˃ shortest next CPU burst
Gior
gio
Giac
into
201
8
25
Sistemi Operativi
Processo CPU burstP1 6P2 8P3 7P4 3
Tempo medio di attesa SJF 7 ms FCFS 10.25 ms
Prestazioni SJF» Alto throughput» Ottimale rispetto al tempo medio di risposta
˃ Ma variabilità elevata!I processi più lunghi sono penalizzati
» Difficoltà e costo computazionale della stima del CPU burst successivo˃ SJF è utilizzato in scheduling a lungo termine per
elaborazione batch+ Gli utenti indicano il tempo max di esecuzione
Gior
gio
Giac
into
201
8
26
Sistemi Operativi
Gior
gio
Giac
into
201
8
Sistemi Operativi
27
Predizione CPU burst
τi = α ti + (1 - α) τi-1 Nell’esempio α = 1/2 τ0 = 10
SJF con prelazioneshortest remaining time first» Un processo in esecuzione viene prelazionato
se il CPU burst rimanente è maggiore di quello di un nuovo processo aggiunto alla coda ready
Gior
gio
Giac
into
201
8
28
Sistemi Operativi
Processo Istante di arrivo CPU burstP1 0 8P2 1 4P3 2 9P4 3 5
Tempo medio di attesa SJF con prel 6.5 ms SJF 7.75 ms
Processo CPU burst PrioritàP1 10 3P2 1 1P3 2 4P4 1 5P5 5 2
Scheduling per priorità
» Priorità più alta: valore 0
Gior
gio
Giac
into
201
8
29
Sistemi Operativi
Tempo medio di attesa 8.2 ms
Può essere con o senza prelazione
Definizione del valore di priorità» Interno
˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc.
» Esterno˃ Dipende da chi ha avviato il processo
» Pericolo di starvation˃ Se la priorità non tiene conto del tempo di attesa
Gior
gio
Giac
into
201
8
30
Sistemi Operativi
Round RobinScheduling circolare
» Ogni processo viene assegnato al processore per un quanto di tempo
» Se CPU burst > quanto di tempo˃ il processo viene prelazionato e inserito nella coda
ready
» Tempi medi di completamento (turnoaround) variabili rispetto al valore del quanto di tempo
» Ideato per sistemi interattivi time-sharing
Gior
gio
Giac
into
201
8
31
Sistemi Operativi
Esempio Round Robin
» Quanto di tempo q = 4ms
Tempo medio di attesa 5.66 ms
Gior
gio
Giac
into
201
8
32
Sistemi Operativi
Processo CPU burstP1 24P2 3P3 3
Gior
gio
Giac
into
201
8
Sistemi Operativi
33
Durata del quanto di tempo e cambi di contesto
Gior
gio
Giac
into
201
8
Sistemi Operativi
34
Durata del quanto di tempo e tempo di completamento
Empiricamente80% dei processi deve avere CPU burst di durata inferiore al quanto di tempo
Gior
gio
Giac
into
201
8
Sistemi Operativi
35
Scheduling a code multiple
All’interno di ciascuna coda si usa l’algoritmo più appropriato.
Gior
gio
Giac
into
201
8
Sistemi Operativi
36
Code multiple con retroazione
Fine CPU burst
Fine CPU burst
Fine CPU burst
CPU burst residuo
CPU burst residuo
Ingresso coda ready
Gior
gio
Giac
into
201
8
Sistemi Operativi
37
Scheduling dei thread» Modello molti-a-molti e modello molti-a-uno
˃ Process-contention scope PCSLa libreria dei thread pianifica l’esecuzione di uno dei thread a livello utente e lo associa a un LWP
˃ System-contention scope SCSLa pianificazione dell’esecuzione dei thread a livello kernel avviene a livello globale di sistema
» Modello uno-a-uno˃ Solo SCS
Gior
gio
Giac
into
201
8
38
Sistemi Operativi
Gior
gio
Giac
into
201
8
Sistemi Operativi
39
Soluzioni di scheduling» Due configurazioni
˃ Multielaborazione asimmetrica+ Un processore è il master che esegue il sistema
operativo, mentre gli altri processori eseguono solo codice utente
˃ SMP - symmetric multiprocessing+ Ciascun processore ha uno scheduler che seleziona
dalla coda il processo da eseguire– Unica coda per tutti i processori– Code distinte per ciascun processore (soluzione più
diffusa)
Gior
gio
Giac
into
201
8
40
Sistemi Operativi
Processor affinity» È l’assegnazione permanente di un processo al
processore˃ La migrazione di un processo da un processore a un
altro implica il trasferimento dei dati della cache Soft affinity˃ Il sistema operativo non garantisce il mantenimento
di un processo su un processoreHard affinity˃ Il sistema operativo garantisce la proprietà
Gior
gio
Giac
into
201
8
41
Sistemi Operativi
Gior
gio
Giac
into
201
8
Sistemi Operativi
42
NUMA e processor affinity
Bilanciamento del carico» Il sistema operativo può verificare che il carico
sia distribuito fra tutti i processori˃ Push migration
un processo controlla il carico e forza la migrazione dei processi per riequilibrio
˃ Pull migrationun processore inattivo sottrae un processo a un processore sovraccarico
Gior
gio
Giac
into
201
8
43
Sistemi Operativi
Processori multicore» Evoluzione dei sistemi multiprocessore» Ostacolo all’efficienza: attesa di dati dalla
memoria (stallo della memoria)
Gior
gio
Giac
into
201
8
44
Sistemi Operativi
Sistema multicore e multithread» Thread hardware
consentono di alternare l’esecuzione di sequenze di istruzioni di thread diversi
˃ Il sistema operativo vede un thread hardware come un processore logicoad es., con due core e due thread hardware per core il s.o. vede quattro processori logiciGi
orgi
o Gi
acin
to 2
018
45
Sistemi Operativi
Multithreading» Coarse-grain multithreading
˃ Un thread è in esecuzione nel processore fino al verificarsi di un evento a lunga latenzaIl cambio di thread richiede lo svuotamento della pipeline
» Fine-grain multithreading˃ Il cambio fra thread può avvenire anche al termine di
un ciclo di istruzioneè necessaria una logica dedicata
Gior
gio
Giac
into
201
8
46
Sistemi Operativi
Scheduling in sistemi multithreading» A livello di sistema operativo
˃ Scheduling dei thread software e dei processi
» A livello di processore˃ Scheduling dei thread hardware
Gior
gio
Giac
into
201
8
47
Sistemi Operativi
Virtualizzazione e scheduling» Algoritmo di scheduling nel sistema operativo
della macchina virtuale» Algoritmo di scheduling della CPU fisica da
parte del sistema operativo ospitante o dell’hypervisor
L’esito della combinazione di questi due livelli dipende dalla tecnica di virtualizzazione
Gior
gio
Giac
into
201
8
48
Sistemi Operativi
Gior
gio
Giac
into
201
8
Sistemi Operativi
49
Gior
gio
Giac
into
201
8
Sistemi Operativi
50
Dispatch di Solaris per i thread interattivi
Gior
gio
Giac
into
201
8
Sistemi Operativi
51
Scheduling di SolarisGi
orgi
o Gi
acin
to 2
018
Sistemi Operativi
52
Priorità di Windows
high abovenormal normal below
normalidlepriority
time-critical
real-time
31
26
25
24
23
22
16
15
15
14
13
12
11
1
15
12
11
10
9
8
1
15
10
9
8
7
6
1
15
8
7
6
5
4
1
15
6
5
4
3
2
1
highest
above normal
normal
lowest
idle
below normal
Gior
gio
Giac
into
201
8
Sistemi Operativi
53
Priorità e lunghezza del quanto di tempo in Linux
Gior
gio
Giac
into
201
8
Sistemi Operativi
54
Modello deterministico» Dato un insieme di processi in coda, determinare il
tempo medio di attesa (o il tempo medio di turnaround) per ciascuno dei seguenti algoritmi di schedulingFCFS, SJF e RR (q = 10 ms)
Gior
gio
Giac
into
201
8
55
Sistemi Operativi
Processo CPU burstP1 10P2 29P3 3P4 7P5 12
Reti di code» Modello matematico
˃ Coda dei processi pronti˃ Code di I/O˃ Distribuzione sequenze istruzioni CPU˃ Distribuzione istanti di arrivo processi nel sistema
Gior
gio
Giac
into
201
8
56
Sistemi Operativi
Gior
gio
Giac
into
201
8
Sistemi Operativi
57
Simulazione
Realizzazione» Si realizzano diverse versioni del sistema
operativo con diversi algoritmi di scheduling
Gior
gio
Giac
into
201
8
58
Sistemi Operativi