Schedulazione real-time di task PERIODICI Sono la maggioranza delle attività di elaborazione. Es. regolazione, acquisizione, filtraggio, monitoraggio, comando di attuatori etc. Ipotesi: Tutte le richieste di esecuzione sono inoltrate ad intervalli regolari ( periodo ) Il tempo di eseuzione di un task è costante La deadline coincide con la fine del periodo corrente Tutti i task sono indipendenti Quindi, un processo periodico è caratterizzato da due parametri: Periodo T i Tempo di esecuzione C i
Schedulazione di task periodici Ulteriori definizioni: Istante di richiesta: istante in cui una istanza periodica diventa pronta per l esecuzione Frequenza di richiesta: inverso del periodo di un task Tempo di risposta: tempo che intercorre tra istante di richiesta e istante di completamento Istante critico: istante di richiesta che genera il più lungo tempo di risposta Zona critica: intervallo tra istante critico e istante di completamento dell istanza. Equivale al tempo di risposta più lungo.
Schedulazione di task periodici Fattore di utilizzazione del processore U è la frazione di tempo utilizzata dalla CPU per eseguire l insieme di task (è una misura della occupazione del tempo di CPU per ( periodici eseguire un insieme di task In un insieme di n task: Il processore è completamente utilizzato dall insieme di task se un piccolo aumento di un C i rende la schedulazione non fattibile Limite superiore minimo U lsm del fattore di utilizzazione: minimo tra i fattori di utilizzazione calcolati su tutti gli insiemi di task che utilizzano completamente il processore. Parametro caratteristico di scheduling. è il carico massimo gestibile da un algoritmo di schedulazione.
Schedulazione di task periodici Se un insieme di task periodici ha un fattore di utilizzazione del processore U minore di U lsm l insieme di task è sicuramente schedulabile Se un insieme di task periodici ha un fattore di utilizzazione del processore U maggiore o uguale a U lsm l insieme di task potrebbe essere schedulabile Zona di schedulabilità per qualsiasi insieme U lsm1 U lsm2 U lsm3 U lsm4 U lsm U lsm1
Schedulazione di task periodici Teorema di schedulabilità generale Condizione sufficiente per la schedulabilità di un insieme di task ( A ) periodici con un algoritmo A è U U lsm Dim. Direttamente dalla definizione di U lsm Teorema della non schedulabilità Condizione sufficiente per la non schedulabilità è U > 1. Dim. Sia T=T 1 T 2 T n = T i. Se U>1 UT>T. Quindi: Σ (T/T i )C i > T La quantità (T/T i ) rappresenta il nr. di volte che il task τ i viene eseguito in T, mentre (T/T i )C i rappresenta il tempo di calcolo richiesto dal task τ i nel tempo T. Quindi la domanda totale in [0,T] è superiore al tempo disponibile T, quindi la schedulazione non è fattibile con nessun algoritmo.
Schedulazione di task periodici Analisi del tempo di risposta per valutare la schedulabilità: Valutazione del tempo di risposta nel caso peggiore, R, e controllo della deadline: R D Valutazione del tempo di risposta nel caso peggiore: è dato dal tempo di calcolo più interferenze dei task a più alta priorità: Durante R i, ogni task a più alta priorità esegue volte L interferenza totale è data da Quindi il tempo di risposta nel caso peggiore R i può essere descritto con dove la sommatoria è estesa a tutti i task di priorità maggiore del task i
Schedulazione di task periodici La soluzione della equazione dove hp(i) è l insieme dei task a priorità maggiore di i, è ottenuta per ricorrenza: Solve by forming a recurrence relationship: Quando la ricorrenza converge, cioè i valori restano costanti, si ottiene il termine R i
Schedulazione di task periodici a priorità fissa Priorità stabilite a priori Come stabilire le priorità dei task? Sulla base dei tempi di esecuzione Priorità maggiore ai task con maggiore/minore tempo di esecuzione Sulla base dei periodi Priorità maggiore ai task con maggiore/minore periodo di esecuzione Sulla base della utilizzazione Priorità maggiore ai task con maggiore/minore coefficiente di utilizzazione Sulla base delle deadline Priorità maggiore ai task con maggiore/minore tempo di deadline
Schedulazione di task periodici a priorità fissa: Rate Monotonic Supponiamo di ordinare i task secondo periodi crescenti Algoritmo Rate Monotonic: assegna ad ogni processo una priorità direttamente proporzionale alla propria frequenza di richiesta (task ( elevata con periodo breve priorità ( SPF ) Chiamato anche Shortest Period First Pre-emptive, statico Proprietà: RM è ottimo, nel senso che se un insieme di task NON è schedulabile con RM, allora non è schedulabile con nessun altra regola di assegnazione a priorità fisse
Schedulazione di task periodici a priorità fissa: Rate Monotonic Altro esempio:
Schedulazione di task periodici: Rate Monotonic Teorema della ottimalità di RM Se un insieme di task periodici NON è schedulabile con RM, allora non esiste un algoritmo di schedulazione a priorità fissa per quell insieme di task. Dim. Si afferma che: se un insieme di task non è schedulabile con RM non esiste altra schedulazione. Cioè: se esiste una schedulazione è schedulabile con RM. Supponiamo di avere due task periodici τ1 e τ2, con T1<T2. Secondo RM, dovrebbe essere schedulato prima τ1 e poi τ2. Prendiamo una schedulazione non RM, cioè facciamo prima τ2 poi τ1. Affinché sia fattibile: (1) C1+C2 <= T1
Schedulazione di task periodici: Rate Monotonic Supponiamo ora di usare RM. Ci sono due possibili casi: ( a Caso τ1 Δ=T2-F. T1 Cioè tutte le richieste di t1 vengono completate entro T2. Cioè C1<=Δ Affinchè RM sia fattibile, deve essere Mostriamo che, se vale (1), allora RM è fattibile. Moltiplicando (1) per F: τ2 CVD
Schedulazione di task periodici: Rate Monotonic Caso b) L ultima esecuzione di τ1 si sovrappone con τ2. Cioè: In questo caso, RM è fattibile se: CVD
Calcolo di U lsm per RM Consideriamo due processi periodici τ 1 e τ 2 con tempi di esecuzione C 1 e C 2 e periodi tali che T1 < T2. L algoritmo RM assegna a τ 2 la priorità maggiore. Def: F è il numero di periodi completi di t1 all interno di T2. Aumentiamo il tempo di esecuzione C 2 fino a che sia possibile schedulare. Consideriamo i casi di prima, a) e b): ( a Caso T2-T1F In questo caso, e il max valore ammissibile di C2 è Allora, il fattore di utilizzazione è: Dato che [.] è negativa, il minimo valore di U di ha per
Calcolo di U lsm per RM Caso b) T2-T1F In questo caso Quindi il max valore ammissibile per C2 è Il fattore di utilzzazione è in questo caso: In questo caso la quantità tra parentesi [.] è positiva e U descresce al diminuire di C1. Il minimo di U si ha per il minimo di C1, cioè
Calcolo di U lsm per RM Qual è il valore minimo di U? Prendiamo il caso a). Sostituendo nella espressione di U: Chiamando per semplicità a=t2/t1 si scrive: Questa funzione tende a per a 0, e per a. In mezzo raggiunge un minimo. Il minimo si può valutare con du/da=0 cioè 1- F(1+F)/a 2 =0 cioè Il valore di U nel punto di minimo è:
Calcolo di U lsm per RM Ricordiamo che cioè F è un numero intero: 1, 2, 3 perché T2>T1 U è crescente con F. Il minimo di F corrisponde al minimo di U, U lsm, e vale ( 1 1/2 2(2 = lsm U Si dimostra che la stessa relazione vale per numero di task maggiore di 2. Cioè il limite superiore minimo del fattore di utilizzazione del processore per la schedulazione Rate Monotonic vale, in generale per n task: ( 1 1/n U lsm = n(2 Il valore decresce con n: per n=2 U lsm = 0.83 per n=3 U lsm = 0.78 per n=4 U lsm = 0.76 Per n tendente a l espressione converge verso 0.69
Calcolo di U lsm per RM
( EDF ) Earliest Deadline First ( ordinata Uno dei più usati, Complessità O(n) (lista Si seleziona dalla lista dei processi pronti quello la cui deadline è più imminente Pre-emptive: se arriva un task con deadline minore sospensione ( vicina Utilizzabile nei SO a base prioritaria (priorità alta=deadline ( velocizzare ) La coda dei processi pronti ordinata Teorema di schedulabilità: Condizione necessaria e sufficiente per la schedulabilità è ΣC i /T i 1 U lsm =1 Esempio: C i T i τ 1 1 5 τ 2 2 7 τ 3 4 9 U=1/5+2/7+4/9=0.93
( EDF ) Earliest Deadline First Semplice dimostrazione della schedulabilità: Condizione necessaria e sufficiente per la schedulabilità è ΣC i /T i 1 Necessarietà: schedulabilità ΣC i /T i 1 Per assurdo: supponiamo che sched U > 1. Per il teorema della non schedulabilità si ha che se U>1 allora è non schedulabile. Questo contraddice l ipotesi. Sufficienza: ΣC i /T i 1 schedulabilità Per assurdo: suffoniamo che ΣC i /T i 1 NON schedulabile. Se è Non schedulabile si può dimostrare che U > 1 cosa che contraddice l ipotesi.
Esempio Si considerino i seguenti 3 task periodici: C T τ1 2 4 τ2 2 5 τ3 2 6 Calcolo di U: U=2/4+2/5+2/6=1,23 EDF I task non sono schedulabili τ1 τ2 τ3 0 5 10? τ1 RM τ2 τ3? 0 5 10
(. cont ) Esempio Facendo riferimento all esempio della slide precedente: C T t1 2 4 t2 2 5 t3 2 6 Vogliamo qui calcolare i tempi massimi di risposta usando la ricorrenza Per RM le priorità decrescono da t1 a t3. Risulta quindi che t1 non può essere interrotto da nessun task, t2 può essere interrotto da t1 e t3 può essere interrotto da t1 e t2. Quindi (senza fare tutti i conti): w 1 =C 1 =2<d 1 =T1=4 w 0 2 =C 2 =2; w1 2 = C 2 + ceil(w0 2 /T 1 ) C 1 = 4; w 1 3 =4 < d2=t 2 =5 w 0 3 =C 3 =2; w1 3 = C 3 + ceil(w0 3 /T 1 ) C 1 +ceil(w0 3 /T 2 ) C 2 =6; w 2 3 =10; w3 3 =12; w4 3 =14; w 5 3 =16; w6 3 =18; w7 3 =20; w7 3 =20 che non è minore di d3!!
Esempio 1 Verificare la schedulabilità dei seguenti due task periodici con Rate Monotonic: 1 o : calcolo del coefficiente di utilizzazione: 2 o : calcolo del limite superiore: Risposta: i due task periodici sono schedulabili con Rate Monotonic:
Esempio 2 Verificare la schedulabilità con RM dei seguenti tre task periodici: Calcolo del coeff. di utilizzazione CPU e limite superiore: I task periodici potrebbero essere schedulabili. Analisi del tempo di risposta nel caso peggiore:
Esempio 2 - cont Analisi del tempo di risposta nel caso peggiore: L insieme di task è schedulabile con RM!
Esempio 3 Verificare la schedulabilità con RM dei seguenti task periodici: Calcolo della utilizzazione del processore e del limite superiore L insieme di task non è schedulabile con RM
Esempio 4 Verificare la schedulabilità con EDF dei seguenti task periodici: ( Di=Ti ) Test di schedulabilità: L insieme dei task è schedulabile con EDF
Schedulazione: Esempio 4 - cont
Deadline Monotonic Estensione del RM: schedulazione di processi periodici con deadline indipendenti dal periodo Parametri: C i = tempo massimo di esecuzione T i = periodo D i = deadline relativa all istante della richiesta T i C i d i D i = d i r i C i <= D i <= T i D i Algoritmo: Viene schedulato il processo con la deadline relativa più corta Nei sistemi a base prioritaria, P i = 1/D i Test di schedulabilità ( condizione sufficiente):
RM vs EDF: Ottimalità Rate Monotonic è ottimo per gli algoritmi a priorità fissa: priorità inversamente proporzionale al periodo EDF è ottimo per gli algoritmi a priorità dinamica: priorità inversamente proporzionale alla deadline Tutti i task schedulabili con RM sono anche schedulabili con EDF Ma: per n-> inf. RM può schedulare sicuramente con una occupazione massima di 0.69 Mentre EDF può schedulare anche con una occupazione al 100%
RM vs EDF: Overhead Overhead di Calcolo EDF deve ricalcolare le priorità ad ogni arrivo RM calcola le priorità una sola volta Overhead di Context-switch Dovuto alla pre-emption EDF deve fare molte interruzioni per rispettare le priorità Esempio di due task periodici τ(c, p): τ 1 (2,5), τ 2 (4,7) U=0.97 RM t2 t3 0 5 10 Deadline mancata! 15 EDF t2 t3 0 5 10
RM vs EDF: Overhead Numero di interruzioni: risultati di simulazione Valori medi, 1000 simulazioni, periodi random da 10 a 100, U=0.9 Per pochi task, il num di interruzioni cresce Per molti task, la durata scende (U=0.9!) e quindi scende il numero di interr. Numero di interruzioni Numero di task