Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di...
Transcript of Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di...
Principi di Schedulazione in tempo reale
1
Task in tempo reale
n Un task ti è una sequenza di processi in tempo reale τik ciascuno caratterizzato daq un tempo d’arrivo rik (r=release time, oppure a=arrival time)
q un tempo di inizio esecuzione sik q un tempo di fine esecuzione fikq una deadline assoluta dik, q una deadline relativa Dik, q da un tempo di esecuzione Cik
k
k
sik fik
2
Task periodici
Task periodico τi
n Triggerati a periodi fissi da un timer
n Consistono in una sequenza infinita di attività identiche, chiamate istanze.
n Ciascuna istanza è caratterizzata da un periodo T e da un tempo di calcolo C
3
Task aperiodici
Task aperiodici:
Task sporadici:
n Triggerati da interrupt esternin I task sporadici sono triggerati da interrupt esterni con un minimo tempo di interarrivo tra gli interrupt
4
Parametri descrittivi dei processi in tempo reale
n Lateness: L=f-d
n Exceeding time: E=max(0,L) à tempo in cui un processo è rimasto attivo oltre la propria deadline
n Slack time (o LAXITY): LX=d-a-C à ritardo di attivazione max consentita
n Metriche di valutazione: basate sulla funzione di costo che dipende dal tempo di terminazione del task. La funzione di costo rappresenta l’importanza relativa del task.
5
Parametri descrittivi dei processi in tempo reale
n Qualche esempio di funzioni di costo:
6
Esempi di funzioni di costo
n Andamento della importanza dei task:
f
f
f
f
v(f)
v(f)v(f)
v(f)
Non real time
hard real time
soft real time
critico
−∞
7
Sistemi operativi in tempo reale
n FATTI DEI SISTEMI OPERATIVI RTq In un sistema di controllo RT ogni processo è ben noto! Nessun
task del sistema è un processo casualeq è importante assicurare che tutti i task critici completino la loro
attività entro la deadlineq in una applicazione RT, i vari processi sono cooperanti: non è
necessario usare spazi di indirizzamento separatin PRESUPPOSTI DESIDERATI DAL S.O.
q Scheduling ottimo per rispettare i vincoli temporaliq Condivisione risorse à condivisione spazio indirizzamentoq Garanzia di esecuzione à i task critici vengono attivati solo se
possono essere completati in tempoq Prevedibilità del meccanismo dello scheduling à tutte le primitive
devono avere un tempo di esecuzione massimo definitoq Flessibilità à struttura modulare per adattarsi alla applicazione
8
n CARATTERISTICHE REALI (Ereditate dalle implementazioni classiche)q Multitaskingq Schedulazione prioritaria (non adatta ai sistemi RT)q Risposta alle interruzioni (una rapida risposta puo’ rallentare
l’esecuzione dei processi)q Sincronizzazione e cooperazione dei processi (indesiderato nei
SORT)q Piccolo nucleo e veloce T.S. (Ma: il veloce T.S. non garantisce la
terminazione dei task)q Clock RT per la generazione di un riferimento temporale. I sistemi
commerciali non forniscono primitive per i vincoli temporali à l’utente deve trasformare i vincoli temporali in priorità
n PREVEDIBILITA’ DEL SISTEMAq Devo sapere se i processi possono essere completati in tempo à
determinismo dei processi
Sistemi operativi in tempo reale
9
Sistemi operativi in tempo reale
n Cause di aleatorietà: q DMAq CACHE (cache fault)q Interrupts (un processo puo’ essere più urgente di un interrupt).
Approcci:q Disabilitazione delle interruzioni (polling)q Disabilit. Interruz. Tranne il Timer che interroga periodicamente
l’I/Oq Mantenere gli interrupts ma schedulare un task come un altroq Primitive del nucleo (devono avere durata max)q Mutua esclusione (soluzioni ad hoc)q Gestione della memoria (page fault! à partizioni statiche)q Linguaggio di programmazione (deve trattare i vincoli temporali)
10
n SCHEDULAZIONE q Def.: schedulazione fattibile se esiste un
assegnamento ai task tale che i task vengono completati rispettando i vincoli
q Def.: un insieme di task è schedulabile se esiste una schedulazione fattibile
q Def.: vincoli sui processi: temporali, di precedenza, su risorse condivise
Sistemi operativi in tempo reale
11
Scheduling real-timedi task APERIODICIn Ottimizzare una funzione di costo definita sui parametri temporali
n Notazione di Graham: (α|β|γ) dove:
α : macchina fisica (monoprocessore, multiprocessore, etc)β : tipo di vincoli ai processi (precedenza, preemption, etc.)γ : funzione di costo minimizzata
n Esempio: (1|prec|LMAX), (3|nopreempt.|Σfi), (2| |Σfi)
12
Algoritmo di Jacksonn Algoritmo (1|a0|Lmax) per un sistema di n tasksn Consideriamo un insieme di task
J={Ji(ai, Ci, di), i=1…n}, dove ai=a0 per ogni i=1…nn Algoritmo:
la massima lateness Lmax è minimizzata se i processi sono schedulati in ordine di deadline crescenti
n La complessità di calcolo dipende principalmente dalla procedura di ordinamento dell’insieme di task à O(nlogn)
46783di
21111Ci
J5J4J3J2J1
0 1 2 3 4 5 6 7 8 9
J1 J5 J4 J3 J2
1 5 4 3 2
Lmax = -1
13
Algoritmo di Jackson
n Test di schedulabilità: i
∀ i=1..n; ∑ Ck ≤ di k=1 n Esempio di schedulazione Non Fattibile
57463di
22112Ci
J5J4J3J2J1
0 1 2 3 4 5 6 7 8 9
J1 J3 J4J5 J2
1 5 43 2
Lmax = 1
14
Algoritmo di Jacksonn Ottimalità dell’algoritmo di Jacksonn Per una schedulazione generica, esisteranno almeno due task Ja e
Jb con da ≤ db tali che Jb precede Ja:
n Se si invertono i due task, la lateness massima diminuisce:
dbda
JaJb
La=fa-da
Lb=fb-dbLmax=fa-da
fb fa
JbJa
L’a=f’a-da
L’b=f’b-db
f’bf’adbda
Se (L’a> L’b) L’max = f’a-da < fa-da à L’max < Lmax
Se (L’b> L’a) L’max = f’b-db = fa-db < fa-da à L’max < Lmax
Eseguendo un numero finito di scambi di questo tipo si ottiene la schedulazioneottima
15
Algoritmo di Hornn Algoritmo (1|preemp|Lmax)n Rimuove l’ipotesi di attivazioni simultanee: attivazione dinamica e pre-emptionn Estensione dell’algoritmo di Jacksonn Algoritmo: La massima lateness Lmax di un insieme di n task con attivazione
dinamica è minimizzata se, ogni volta che un nuovo task entra nel sistema la coda dei processi pronti viene riordinata per deadline crescente e la CPU viene assegnata al processo con deadline più imminente.
n Chiamata anche Earliest Deadline First (EDF)
n Ottimalità nel senso che minimizza Lmax e nel senso della schedulazione.
0 5 10
J1
J2
J3
J4
J5
16
Algoritmo di Hornn Complessità O(n2), dove n è il numero di processi che possono essere
attivati dinamicamente.n Test di garanzia di schedulabilità: derivato dal test di Jackson: i
∀ i=1..n; ∑ ck(t) ≤ di k=1 dove ck(t) sono i tempi residui istantanei di esecuzione e di sono le
deadline riscalate rispetto ai tempi di arrivo.n Minimizzazione di Lmax: deriva da Jacksonn Teorema:
Se un insieme di task aperiodici non è schedulabile con l’algoritmo di Horn, allora non è schedulabile con nessun altro algoritmo.
Dim.:In altre parole, l’enunciato del teorema afferma che:
se un insieme di task è schedulabile con un qualche algoritmo A,allora sicuramente è schedulabile con l’algoritmo di Horn.
17
Algoritmo di Horn (cont.)n Si divida la scala temporale in quanti pari all’unità di tempo del sisteman Sia t=0 il primo istante di attivazione dei processin Sia D=max(di) la deadline più lontanan Sia σA una qualsiasi schedulazione fattibilen Sia σ (t) il task in esecuzione al tempo t nella schedulazione correnten Sia E(t) il task con deadline più imminenten Sia tE l’istante di tempo in cui inizia E(t) nella schedulazione correnteAllora: la schedulazione può essere trasformata in una schedulazione di Horn
con il seguente algoritmo:Trasforma(){ σ = σA;
for (t=0; t<D; t++) if(σ(t) ≠ E(t)){ σ(tE)=σ(t);
σ(t)=E(t); }}
18
Algoritmo di Horn (cont.)n Ciascuna trasformazione preserva il tempo di calcolo dei task (i quanti
possono essere solo traslati, non accorciati o allungati)n Tutti i tempi possono al più essere ritardati di tE
n Se la schedulazione σA è fattibile, allora prima della trasformazione (tE+1) ≤ dE, ma dE ≤ di per ogni i, quindi dopo la trasformazione (tE+1) ≤ di
quindi tutti i task terminano entro le deadline à Horn è fattibilen Esempio di una trasformazione:
5
J1
J2J3J4
5
J1
J2J3J4
0 10 13 D
50 10 13 D
19
Algoritmo di Horn (cont.)
n Analisi della schedulabilità: deve essere fatta ad ogni arrivo è le deadline devono essere riscalate ad ogni arrivo del tempo dell’arrivo
q Istante 0: sono presenti in coda J1 e J2 (nell’ordine).Tempo residuo per J1: 1; per J2: 2. 1 <= d1= 2 1+2 <= d2=5
q Istante 2: sono presenti in coda J3 e J2 (nell’ordine).Tempo residuo per J3: 2; per J2: 1. 2 <= d3=2 2+1 <= d2=3
q Istante 3: sono presenti in coda J3, J2, J4 (nell’ordine).Tempo residuo per J3: 1; per J2: 1; per J4: 2. 1 <= d3=1 1+1 <= d2=2 1+1+2 <= d4=7
q Istante 6: sono presenti in coda J5, J4 (nell’ordine).Tempo residuo per J5: 2; per J4: 1. 2 <= d5=3 2+1 <= d4=4
0 5 10
J1
J2
J3
J4
J5
20
Schedulazione senza pre-emption algoritmo di Horn
n Se si esclude l’ipotesi di preemption, con attivazione dinamica l’algoritmo EDF non è più ottimo
n Esempio:
521J2
740J1
DiCiai 5 10
5 10
J1
J2
J1
J2
Schedulazioneottima
SchedulazioneEDF
21
Schedulazione senza pre-emption: Algoritmo di Bratley
n Schedulazione senza pre-emption di un insieme di task attivati dinamicamente
n Ricerca su un albero con pruningn Complessità O(nn!)n Algoritmo off-line. Esempio:
420J4
621J3
511J2
724J1
diCiai Numero nel nodo à task che viene schedulatoNumero accanto al nodo à tempo in cui il task terminaJ+ à task che supera la deadline à schedulazione fattibile
22
Schedulazione senza pre-emption: Algoritmo Spring
n Sistema Hard real-timen Garantisce dinamicamente (on-line) l’esecuzione dei processi
attivati tenendo conto dei vincoli (temporali, di precedenza, sulle risorse, no pre-emption, esecuzione su multiprocessore, fault tolerance …)
n Usa una funzione di costo H euristican Ogni volta che si estende una schedulazione parziale, si valuta H
per i task non ancora schedulati e si sceglie quello che minimizza Hn Albero delle schedulazioni con pruning.n Alcune funzioni euristiche:
q H=1 à FCFS (First Come First Served)q H=C à SJF (Shortest Job First)q H=d à EDF (Earliest Deadline First)q H=Test à ESTF (Earliest Start Time First)q H=d+W*C à EDF+SJF
23
Algoritmi di Schedulingcon Vincoli di Precedenza
n Può essere risolta con algoritmi polinomiali solo se si impongono ipotesi semplificative
n Algoritmo Latest Deadline First (LDF). Algoritmo (1|prec, a0| Lmax)n Algoritmo: Dato un insieme J di n task con grafo di precedenza, si costruisce la
lista di scheduling a partire dal fondo. Fra tutti i task che non hanno successori nel grafo, si seleziona il processo con la deadline più lunga.
n Schedulato l’ultimo task, la lista viene eseguita in ordine inverso.n Esempio:
61JF
51JE
31JD
41JC
51JB
21JA
diiCiA
B C
D E F
2
5 4
3 5 65
50
0
8
8
A B D C E F
FEDBCA
LDF
EDF
Lmax=0
Lmax=LD=1
A D C B E F
A D C B E F
24
Algoritmo EDF con vincoli di precedenza
n Algoritmo (1|prec,pre-empt|Lmax)n Modifica i tempi di arrivo e le deadline di tutti i processi in modo da
trasformare i vincoli di precedenza in vincoli temporali. Dopo le trasformazioni, i processi sono schedulati con EDF
n Modifica dei tempi di arrivo:n per ogni nodo iniziale del grafo di precedenza, ai*=ain si seleziona un task Jk non ancora modificato, tale che tutti i suoi
predecessori siano stati modificati. Se Jk non esiste, termina.n Modifica il tempo di arrivo di Jk: ak*=max(ak, max(ai*+Ci:JiàJk)]n Vai al punto 2)
n Modifica i tempi di deadline:n per ogni nodo terminale, di*=din seleziona un task Jk non ancora modificato tale che tutti i suoi successori
siano stati modificati. Se Jk non esiste, si terminan modifica la deadline di Jk: dk*=min[dk, min(di*-Ci:JkàJi)]n vai al 2)
n Complessità O(n2)
25