Scheduling
Corso di
Progetto e Sviluppo di
Sistemi in Tempo Reale
Marcello Cinque
1
Introduzione allo Scheduling
l Sommario della lezione:
l Definizioni di base
l Vincoli sui processi
l Classificazione e metriche
l Anomalie di scheduling
l Riferimenti
l G. Buttazzo – Sistemi in Tempo Reale –
Pitagora Editrice (Cap. 2)
2
Processo o Task
l Sequenza di istruzioni che, in assenza di altre attività,
viene eseguita dal processore in modo continuativo fino
al suo completamento
Ci
si Pi
ri Ri fi
l ri : release time (o arrival time ai)
l si : start time
l Ci : computation time (o WCET)
l fi : finisihing time (o completion time)
l Ri = fi - ri : response time
3
Relazione tra processo e programma
l Programma
l ..è la codifica di un algoritmo in un opportuno linguaggio di
programmazione che ne rende possibile l’esecuzione da
parte di un elaboratore;
l e’ una descrizione statica delle elaborazioni da eseguire.
l Processo
l …è l’unità base di esecuzione del SO che identifica le attività
dell’elaboratore relative ad una specifica esecuzione di un
programma;
l Un processo è un programma in esecuzione
l E’ una entità dinamica (programma + stato di esecuzione).
4
Descrittore di un processo (1/2)
5
Descrittore di un processo
6
Stati di un processo
Sospensione
Attivo
Esecuzione
Attivazione
Pronto Riattivazione
7
Ready queue
Processi Pronti dispatching
attivazione terminaz.
CPU
prelazione
8
Schedulazione
l Una schedulazione è un assegnamento di task al
processore
K se JK è in esecuzione in t
σ(t) =
0 se il processore è idle in t
9
Esempio di schedulazione
idle J1 J2 J3 idle
σ(t)
3
2
1
t1 t2 t3 t4 t
l Negli istanti t1, t2, t3 e t4 avviene un context switch
l time slice: intervalli [ti , ti+1) in cui σ(t) è costante
10
Schedulazione
l Una schedulazione si dice:
11
Esempio di schedulazione
preemptive
idle J1 J2 J3 J2 J1 idle
σ(t)
3
2
1
12
Vincoli sui processi
l Vincoli temporali
l attivazione, completamento, …
l Vincoli di precedenza
l Impongono un ordinamento nell’esecuzione
l Vincoli su risorse
l Impongono una sincronizzazione nell’accesso a risorse
mutuamente esclusive
13
Vincoli temporali
14
Vincoli temporali
ci(t)
Ci xi(t)
Pi t
ri Di fi Li di
l di : absolute deadline
l Di : relative deadline
l Li = fi - di : lateness
l Ei = max(0, Li) : tardiness o exceeding time
l ci(t) : residual wcet ci(ri) = Ci
l xi(t) = di – t – ci(t) : laxity o slack time xi(ri) = Xi = di – ri – Ci
l Criticality (o laxity type): hard o soft
l vi : value (importanza relativa)
15
Modalità di attivazione
16
Task periodici
Di
job 1 Ci job k
τi
ϕi ϕi +(k-1)Ti
Ti
17
Task periodici
l Richiedono primitive specifiche e meccanismi ad-hoc del
sistema operativo per la loro gestione, ad es.:
while (condition) {
...
...
end_cycle();
}
attivo
esecuzione
idle pronto
18
Lo stato Idle
esecuzione
idle pronto
19
Task aperiodici e sporadici
Di Di
Ci Ci
Ji
ri,1 di,1 ri,2 di,2
20
Vincoli di precendenza
J2 J3
J2 è immediato
predecessore di J4
J4 J5
21
Vincoli su risorse
22
Vincoli su risorse
wait(s)
risorsa wait(s)
… condivisa …
sezione sezione
critica R critica
… …
signal(s) signal(s)
23
Vincoli su risorse
bloccato su s
J1
wait(s) signal(s)
J2
wait(s) preemption signal(s)
24
Problema generale dello scheduling
25
Problema generale dello scheduling
26
Classificazione degli algoritmi di
scheduling
Uniprocessore Multiprocessore
Statici Dinamici
Off-line On-line
Ottimi Euristici
27
Ottimalità
l Un algoritmo di scheduling si dice ottimo se è in grado di
minimizzare una funzione di costo definita sui task
28
Metriche
l Tempo medio di risposta
!
1
!!=! ! (!! ! − ! !! )!
!
!!!
!! ! = ! !! !!! !!
!!!
29
Metriche
l Lateness massima
!!"# ! = ! max(!! ! − ! !! )! !!
!
30
Anomalie di scheduling
l Si consideri un insieme J di 9 task, ordinato per priorità
decresenti:
l Priorità Ji maggiore di priorità Jk per i < k
l I task sono caratterizzati da vincoli di precedenza
C1 = 3 J1 J9 C9 = 9
J8 C8 = 4
C2 = 2 J2
J7 C7 = 4
C3 = 2 J3
J6 C6 = 4
C4 = 2 J4 J5 C5 = 4
31
Scheduling su 3 processori
J1 J9
J2 J4 J5 J7 tc = 12
J3 J6 J8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 t
C1 = 3 1 9 C9 = 9
2
8 C8 = 4 Si assume di allocare ciascun
C2 = 2
7 C7 = 4 task sul primo processore libero
C3 = 2 3
6 C6 = 4
4 5 C5 = 4
C4 = 2
32
Architettura più potente
(4 processori)
J1 J8
J2 J5 J9
tc = 15
J3 J6
J4 J7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 t
C1 = 3 1 9 C9 = 9
8
C2 = 2 2
C8 = 4
Maggiore potenza di calcolo non sem-
7 C7 = 4 pre garantisce migliori prestazioni!
C3 = 2 3
6 C6 = 4
4 5 C5 = 4
C4 = 2
33
Tempi di calcolo ridotti
(di 1 unità per processo)
J1 J5 J8
J2 J4 J6 J9 tc = 13
J3 J7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 t
C1 = 2 1 9 C9 = 8
8 C8 = 3
C2 = 1 2
7 C7 = 3
C3 = 1 3
6 C6 = 3
4 5 C5 = 3
C4 = 1
34
Eliminazione dei vincoli di
precedenza
J1 J6 J9
J2 J4 J7 tc = 16
J3 J5 J8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 t
C1 = 3 1 9 C9 = 9
8 C8 = 4
C2 = 2 2
7 C7 = 4
C3 = 2 3
6 C6 = 4
4 5 C5 = 4
C4 = 2
35