Scheduling di processi hard real-time Eugenio Faldella Dipartimento di Elettronica, Informatica e Sistemistica Facoltà di Ingegneria, Università di Bologna eugenio.faldella@unibo.it http://www.ing.unibo.it Scheduling di processi HRT
U PRIMO MODELLO DI RIFERIMETO PER LA SCHEDULAZIOE DI PROCESSI PERIODICI processi P,,, P indipendenti senza vincoli di precedenza senza risorse condivise ogni processo P (,,,) è periodico, con periodo T prefissato è caratterizzato da un tempo massimo di esecuzione C prefissato, con C < T è caratterizzato da una deadline D T l esecuzione dei processi è affidata ad un sistema di elaborazione monoprocessore il tempo impiegato dal processore per operare una commutazione di contesto tra processi è trascurabile Scheduling di processi HRT
U TEOREMA SULLA SCHEDULABILITÀ I requisiti temporali sono coerenti e consistenti? Condizione necessaria (ma in generale non sufficiente) affinché un insieme di processi periodici sia schedulabile è che il risultante fattore di utilizzazione del processore sia non superiore a : U U C T Il mo termine della sommatoria C / T (C (H / T )) / H rappresenta la frazione dell iperperiodo H mcm (T, T,, T ) richiesta per l esecuzione di P. Scheduling di processi HRT 3
SCHEDULAZIOE CLOCK-DRIVE Schedulazione di tipo off-line, guaranteed, non-preemptive, semplice da realizzare ed efficiente (l overhead associato al cambio di contesto e alla comunicazione tra processi è trascurabile), ma non idonea in contesti che implicano dinamicità e flessibilità. I parametri temporali dei processi si intendono noti a priori e non soggetti a variazioni significative a run-time. Tutti i vincoli temporali vengono soddisfatti a priori in sede di costruzione di un feasible schedule. Problema P-hard Allo scopo possono essere usati algoritmi anche molto complessi, senza incorrere in una penalizzazione delle prestazioni conseguibili a run-time. Scheduling di processi HRT 4
SCHEDULAZIOE CLOCK-DRIVE Lo schedule viene costruito con riferimento al generico iperperiodo, assumendo che qualunque decisione riguardante la schedulazione dei processi venga presa in corrispondenza di predefiniti istanti decisionali. Tali istanti possono essere o meno equidistanziati. Lo schedule risultante è di norma esplicitato in termini di una tabella, la cui generica k-esima entry è del tipo: ( t k, P(t k )) nel caso di istanti decisionali non equidistanziati, con t k t k+ -t k, (P(t k )) nel caso di istanti decisionali equidistanziati, dove P(t k ) e P(t k ) identificano rispettivamente il processo o l insieme di processi da schedulare all istante t k. Lo scheduler a run-time, avvalendosi di un timer hardware che, opportunamente programmato, genera un interrupt in corrispondenza di ogni istante decisionale, ciclicamente si limita a interpretare il contenuto di tale tabella, procedendo a riprogrammare il timer se necessario (ovvero nel caso di istanti decisionali non equidistanziati), a selezionare il processo o i processi da schedulare, a porsi quindi in attesa del successivo interrupt. Ipotesi per un corretto funzionamento: no ob overrun Scheduling di processi HRT 5
TIMER-DRIVE SCHEDULER esempio Istanti decisionali non equidistanziati t k, P(t k ), P C T, P 4 5 0 P 4 0 U 0.85? H 0 P P P P P 4 P 0 4 6 8 0 4 6 8 0!,, P,, P,, P esempio t t -t, P, C T P 6 5 8 t t 3 -t t k t k+ -t k 5,, P, 5,, P 4, P, U 0.96, P? H 4!, 5, P P P P, P 0 4 6 8 0 4 6 8 0 4 Scheduling di processi HRT 6
CYCLIC EXECUTIVE Istanti decisionali equidistanziati t P(t k ) esempio P, C T P P 4 cicli minori 5 0? P P P P P 4 P! P P 4 0 0 4 6 8 0 4 6 8 0 P, esempio ciclo maggiore P 4 P C T P 6 5 8? non esiste un feasible schedule, a meno che Scheduling di processi HRT 7
U TIPICO AMBIETE DI ESECUZIOE PREELABORAZIOI ITERE LETTURA IGRESSI ESECUZIOE DEL PROGRAMMA AGGIORAMETO USCITE Programmable Logic Controller (PLC) una differenza sostanziale rispetto ad altre piattaforme computazionali: il sistema operativo programmazione molto semplice non esiste a run-time la nozione esplicita di processo (non si pongono problemi di concorrenza e quindi di condivisione di risorse) a meno che il tempo necessario per eseguire un intera scansione del programma risulti incompatibile con i vincoli real-time imposti dall applicazione Scheduling di processi HRT 8
AMBIETI DI ESECUZIOE SEQUEZIALE aspetti temporali un approccio empirico alquanto diffuso gestione: allarmi motorizzazioni user interface A C[ms] T[ms] C/T P 5 5.6 5 50. 7.5 00.075 U(A ) 0.775 P P P P + I/O refresh T ciclo C + C + C 3 7.5 > T 5 Scheduling di processi HRT 9
AMBIETI DI ESECUZIOE SEQUEZIALE gestione: allarmi motorizzazioni user interface termoregolatori A C[ms] T[ms] C/T P 5 5.6 5 50. 7.5 00.075 P 4 0 00. U(A ) 0.875 P P P P 4 P P P P P P 4 () T ciclo 3 * C + C + C 3 + C 4 67.5 > T 50 gestione: allarmi motorizzazioni user interface A C[ms] T[ms] C/T P 5 5.6 5 50. 7.5 00.75 U(A ) 0.875 Scheduling di processi HRT 0
L APPROCCIO CYCLIC EXECUTIVE Scenario più elementare: costruzione di un feasible schedule per un insieme di processi semplicemente periodici (ovvero con periodi in relazione armonica). A C T C/T P 5 5.6 5 50. 7.5 00.075 t5 t.u. U(A ) 0.775 estensione del ciclo maggiore: M max (T, T,, T ) 00 estensione del ciclo minore: m min (T, T,, T ) 5 ciclo maggiore ciclo minore ciclo minore 3 ciclo minore 4 ciclo minore 0 0 0 30 40 50 60 70 80 90 00 processo in esecuzione - P Scheduling di processi HRT
COSIDERAZIOI REALIZZATIVE Linguaggio standard per PLC: IEC 63-3 structured text (* loop *) if (next_minor_cycle_start_time) (* from rtc interrupt *) then next_minor_cycle_start_time : false; case (minor_cycle) of : call P_handler; call P_handler; : call P_handler; call P3_handler; 3: call P_handler; call P_handler; 4: call P_handler; end_case; if (minor_cycle < last_minor_cycle) then minor_cycle : minor_cycle + ; (* next minor cycle *) else minor_cycle : first_minor_cycle; (* repeat maor cycle *) end_if; if (next_minor_cycle_start_time) then ; (* ob overrun *) end_if; end_if; (* end_loop *) Scheduling di processi HRT
PECULIARITÀ DELL APPROCCIO semplice realizzabilità non esiste a run time la nozione esplicita di processo non si pongono problemi di concorrenza e quindi di condivisione di risorse macchinosità il procedimento può risultare laborioso, specialmente se P k per cui T k >> T, k (ad es., con riferimento a A, se T 3 fosse di 0.000 anziché 00 t.u.) limitata diretta applicabilità esistono dei vincoli per quanto riguarda i valori dei parametri T e C (sempre nel rispetto della condizione U ). Ad es., con riferimento a A, se C 3 fosse di 7.5 anziché 7.5 t.u., l insieme dei processi risulterebbe non schedulabile pur risultando U 0.875, a meno di Scheduling di processi HRT 3
e LIMITI a meno di ricorrere alla tecnica del ob slicing, ovvero ad un partizionamento del (la procedura corrispondente al) processo A C T C/T P 5 5.6 5 50. 7.5 00.75 U(A ) 0.875 0 00. 7.5 00.075 con il vincolo di precedenza ciclo maggiore ciclo minore ciclo minore 3 ciclo minore 4 ciclo minore 0 0 0 30 40 50 60 70 80 90 00 processo in esecuzione - P Scheduling di processi HRT 4
STRUTTURA GEERALE [BAKER-SHAW (88)] Dimensionamento del ciclo maggiore: () M iperperiodo mcm (T,, T ) Dimensionamento del ciclo minore (o frame ): vincolo motivazione () M mod m 0 onde garantire che un ciclo maggiore consista di un numero intero di cicli minori: n cm M / m (3) m C i, i (4) m T i, i onde garantire che ogni ob di qualunque processo possa iniziare e completare la propria esecuzione all interno di un ciclo minore ( no ob preemption ) onde garantire l esecuzione in ogni ciclo maggiore del numero di ob associati a ciascun processo: n Ji M / T i, i in generale il vincolo è più restrittivo Scheduling di processi HRT 5
STRUTTURA GEERALE Dimensionamento del ciclo minore (o frame ): vincolo (5) m mcd (m, T i ) T i, i.b.: (5) (4) se (T i mod m) 0, i motivazione onde garantire che tra release time e deadline di un qualunque ob sia comunque compreso un ciclo minore completo, nell ambito del quale il ob possa essere interamente eseguito ( no ob preemption ) ed al termine del quale sia verificabile la condizione no ob overrun frame - frame frame + m m m δ i > 0 m-δ i T i (k-)t i kt i t Job ik max (m - δ i ) + m m min (δ i ) + m m - mcd (m, T i ) + m T i, i ipotesi: φ i n * m, i, n 0 (,,, ) Scheduling di processi HRT 6
IDETIFICAZIOE DEL FRAME-SIZE esempio () M mcm (T,, T 4 ) M 0 C T C/T P 4 0.5 5 0.40 0 0.0 (3) m C i, i (4) m T i, i () M mod m 0 m.. 4 m, 4 P 4 0 0.0 mcd (m, T i ) m mcd (m, T i ) T i (5) m mcd (m, Ti) Ti, i m 3 4 5 0 0 OK m m 4 4 4 4 7 6 4 4 5 0 0 O m4 T 5?? 0 4 6 8 0 4 6 8 0 Scheduling di processi HRT 7
PIAIFICAZIOE Procedimento iterativo basato su criteri euristici L esecuzione del k-esimo (k,,n Ji ) ob J ik del processo P i (i,,) può essere pianificata nel -esimo (,,n cm ) ciclo minore c se e soltanto se: (k-) T i (-) m, m k T i, C i m - Σ s C s, s P s S, dove S denota l insieme dei processi la cui esecuzione è già stata pianificata in c. Criteri di associazione ob - ciclo minore :. precedenza ai ob di processi con frequenza di esecuzione più elevata;. precedenza ai ob con tempo di esecuzione più elevato; 3. precedenza ai cicli minori con minor tempo residuo libero. Scheduling di processi HRT 8
COSTRUZIOE DI U FEASIBLE SCHEDULE C T P 4 5 0 P 4 0 M 0, m n cm 0 n J 5 n J 4 n J3 n J4 identificazione del ciclo minore (o dei cicli minori) in cui ciascun ob può essere eseguito: J J J 3 J 4 J 5 J J J 3 J 4 J 3 J 3 J 4 0 c x x x x c x x x x 4 c 3 x x x 6 c 4 x x x x 8 c 5 x x x x 0 c 6 x x x x c 7 x x x x 4 c 8 x x x 6 c 9 x x x x 8 c 0 x x x x 0 t Scheduling di processi HRT 9
COSTRUZIOE DI U FEASIBLE SCHEDULE pianificazione dell esecuzione di ciascun ob: criteri:,3 c J J J 3 J J 3 J J c J J c 3 J J J J J J J c 4 c 5 J 3 c 6 J 3 J3 J 3 J3 J 3 J3 c 7 J 4 J 4 J 4 J 3 J 4 J 3 c 8 J 4 c 9 J 5 J 5 J4 J 5 J4 J 5 J4 c 0 P P P P P 4 P 0 4 6 8 0 4 6 8 0 Scheduling di processi HRT 0
PARTIZIOAMETO DEI PROCESSI on sempre esiste un feasible schedule esempio () M mcm (T,, T 3 ) M 4 C T C/T P 6 0.67 5 8 0.65 0.67 (3) m C i, i (4) m T i, i () M mod m 0 m 5, 6 m 6 mcd (m, T i ) m mcd (m, T i ) T i (5) m mcd (m, Ti) Ti, i m 6 6 6 6 0 6 6 8 O In tali casi occorre partizionare il processo (o i processi) con maggiore tempo di esecuzione in sottoprocessi ( ob slicing ), rilassando così il vincolo (3): P i (C i,t i ) P i (C i,t i ), P i (C i,t i ), con C i + C i + C i ed i vincoli di precedenza P i P i Scheduling di processi HRT
PARTIZIOAMETO DEI PROCESSI C T C/T () M mcm (T,, T 3 ) M 4 P 6 0.67 5 8 0.65 0.67 (3) m C i, i (4) m T i, i () M mod m 0 m 3.. 6 m 3, 4, 6 (5,8) (3,8), (,8) mcd (m, T i ) m mcd (m, T i ) T i O C T C/T P 6 0.67 3 8 0.375 m 3 3 3 3 5 3 6 8 OK 8 0.50 0.67 m 4 4 4 6 4 4 6 8 OK (5) m mcd (m, Ti) Ti, i m 3, 4 Scheduling di processi HRT
PARTIZIOAMETO DEI PROCESSI C T P 6 3 8 8 m 4 M 4 n cm 6 n J 4 n J n J 3 n J3 J J J 3 J 4 J. J. J.3 J 3 J 3 0 c x x x 4 c x x 8 c 3 x x x c 4 x x x 6 c 5 x x 0 c 6 x x x 4 t c J J J J J J J A J B c J J J 3 J J 3 c 3 J J J J J J J A J B c 4 J 3 J 3 J J 3 J J 3 J c 5 J 3 J 3 J 3? J A3 J 3 c 6 J 4 J 4 J 3 J 4 J 3 J 4 J B3 J 3 E possibile identificare un feasible schedule solo ricorrendo nuovamente alla tecnica del ob slicing. (3,8) A (,8), B (,8) A B Scheduling di processi HRT 3
PARTIZIOAMETO DEI PROCESSI C T m 3 M 4 n cm 8 n J 4 n J n J 3 n J3 P 6 3 8 8 Anche in questo caso, applicando nell ordine i criteri euristici delineati, è possibile identificare un feasible schedule solo ricorrendo nuovamente alla tecnica del ob slicing. J J J 3 J 4 J. J. J.3 J 3 J 3 0 c x x x 3 c x x x 6 c 3 x x 9 c 4 x x x c 5 x x x 5 c 6 x x 8 c 7 x x x c 8 x x x 4 c J J J t c J J J J J E possibile in alternativa identificare c 3 J J 3 direttamente un feasible schedule c 4 J J J J privilegiando l allocazione dei ob c 5 J J J 3 J J 3 contraddistinti da vincoli di precedenza. c 6 J 3 J 3 c 7 J 3 J 3 c 8 J 3 J 3 J 4 J 3 J 4 Scheduling di processi HRT 4
PARTIZIOAMETO DEI PROCESSI 3 esempio () M mcm (T,, T 3 ) M 40 C T C/T P 5 0.40 8 0.5 5 0 0.5 (3) m C i, i (4) m T i, i () M mod m 0 m 5 m 5 mcd (m, T i ) m mcd (m, T i ) T i (5) m mcd (m, Ti) Ti, i m 5 5 5 5 9 5 5 8 0 O Rilassamento del vincolo (3): (5,0) (3,0), (,0) con Scheduling di processi HRT 5
PARTIZIOAMETO DEI PROCESSI C T C/T () M mcm (T,, T 3 ) M 40 P 5 0.40 8 0.5 5 0 0.5 (3) m C i, i (4) m T i, i () M mod m 0 m 3.. 5 m 4, 5 (5,0) (3,0), (,0) (5) m mcd (m, Ti) Ti, i O C T C/T mcd (m, T i ) m mcd (m, T i ) T i P 5 0.40 8 0.5 3 0 0.5 m 4 4 4 7 4 4 5 8 0 O 0 0.0 Ulteriore rilassamento del vincolo (3): (3,0) A (,0), B (,0) con A B Scheduling di processi HRT 6
PARTIZIOAMETO DEI PROCESSI C T C/T () M mcm (T,, T 3 ) M 40 P 5 0.40 8 0.5 3 0 0.5 0 0.0 (3) m C i, i (4) m T i, i () M mod m 0 m.. 5 m, 4, 5 (3,0) A (,0), B (,0) O C T C/T P 5 0.40 8 0.5 A 0 0.0 B 0 0.05 0 0.0 (5) m mcd (m, Ti) Ti, i m mcd (m, T i ) m mcd (m, T i ) T i 3 5 8 0 OK A B Scheduling di processi HRT 7
PARTIZIOAMETO DEI PROCESSI C T P 5 8 A 0 B 0 0 A B M 40, m n cm 0 n J 8 n J 5 n J3A n J3B n J3 J J J 3 J 4 J 5 J 6 J 7 J 8 J J J 3 J 4 J 5 J 3. J 3. 0 c x x x c x x x 4 c 3 x x 6 c 4 x x x 8 c 5 x x x 0 c 6 x x x c 7 x x x 4 c 8 x x 6 c 9 x x x 8 c 0 x x x 0 c x x x c x x x 4 c 3 x x 6 c 4 x x x 8 c 5 x x x 30 c 6 x x x 3 c 7 x x x 34 c 8 x x 36 c 9 x x x 38 c 0 x x x 40 Scheduling di processi HRT 8 t
PARTIZIOAMETO DEI PROCESSI C T P 5 8 A 0 B 0 c c c 3 c 4 c 5 c 6 J J J 3 J J J J J 3 J J J 3A J J J 3 J J J 3A J J J 3 J J J 3A J J J 3 0 4 6 8 0 0 c 7 c 8 J 3B J 3B J 3 4 6 c 9 J 4 J 4 J 4 J 4 J 4 8 A B c 0 J 3 J 3 J 3 J 3 0 c J 5 J 5 J 5 J 5 J 5 M 40, m c c 3 J 4 J 3A J 4 J 3A J 4 J 3A J 4 4 6 c 4 J 6 J 6 J 6 J 6 J 6 8 c 5 J 3B J 7 J 3B J 7 30 n cm 0 c 6 c 7 J 7 J 7 J 5 J 7 J 5 J 5 J 5 3 34 n J 8 c 8 c 9 J 8 J 8 J 8 J 8 J 3 J 8 36 38 n J 5 c 0 40 t n J3A n J3B n J3 Scheduling di processi HRT 9
SCHEDULAZIOE PRIORITY-DRIVE Ad ogni processo è staticamente o dinamicamente associata una priorità in dipendenza dei corrispondenti requisiti temporali. Ad ogni processo è dinamicamente associata una informazione che ne identifica lo stato ai fini della esecuzione: processo IDLE processo READY processo RUIG L esecuzione di un processo è sospesa se un altro processo di priorità superiore è pronto per l esecuzione (PREEMPTIO). Scheduling di processi HRT 30
L'ALGORITMO RATE MOOTOIC PRIORITY ORDERIG (RMPO) Ad ogni processo è staticamente associata una priorità direttamente proporzionale alla corrispondente frequenza di esecuzione: p(p ) p / T / D (,,,) OTTIMALITÀ DELL'ALGORITMO Se un insieme di processi periodici è schedulabile con un qualche algoritmo che prevede un attribuzione statica di priorità, allora tale insieme è schedulabile anche con RMPO. Se un insieme di processi periodici non è schedulabile con RMPO, allora tale insieme non è schedulabile con alcun altro algoritmo che preveda un attribuzione statica di priorità. Scheduling di processi HRT 3
IL MECCAISMO DELLA PREEMPTIO A C T C/T p P 5 5.6 max 5 50. 7.5 00.75 min U(A ) 0.875 P 0 0 0 30 40 50 60 70 80 90 00 preempted Idle Ready Running Scheduling di processi HRT 3
AALISI DI SCHEDULABILITÀ costruzione di diagrammi temporali che evidenziano l evoluzione dei processi dal punto di vista dell esecuzione applicazione di criteri basati sul fattore di utilizzazione del processore da parte dei (singoli) processi calcolo dei tempi di risposta dei singoli processi Esito sempre conclusivo? sì no Scheduling di processi HRT 33
AALISI DI SCHEDULABILITÀ ATTRAVERSO DIAGRAMMI TEMPORALI A 3 C T C/T p P 5 5 0.6 max 5 50 0. 30 00 0.3 min U(A 3 ) P 0 0 0 30 40 50 60 70 80 90 00 Idle Ready Running U è condizione sufficiente per la schedulabilità di un insieme di processi semplicemente periodici (con periodi in relazione armonica). Scheduling di processi HRT 34
AALISI DI SCHEDULABILITÀ ATTRAVERSO DIAGRAMMI TEMPORALI A 4 C T C/T p P 5 0 0.5 max 6 5 0.4 min U(A 4 ) 0.9 P 0 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 30 Idle Ready Running missed deadline (): insieme di processi non schedulabile Quando non sussiste una relazione armonica tra i periodi dei processi, la condizione U non è sufficiente per garantire la schedulabilità. Scheduling di processi HRT 35
AALISI DI SCHEDULABILITÀ ATTRAVERSO DIAGRAMMI TEMPORALI A 5 C T C/T p P 5 0 0.50 max 8 9 0.4 min U(A 5 ) 0.9 P 0 4 6 8 0 4 6 8 Idle Ready Running La schedulabilità è garantita se per ogni processo è rispettata la prima deadline a partire dalla condizione più sfavorevole di contemporanea attivazione del processo stesso e di tutti i processi di priorità superiore (istante critico). Scheduling di processi HRT 36
TEST DI SCHEDULABILITÀ BASATO SUL FATTORE DI UTILIZZAZIOE DEL PROCESSORE [LIU-LAYLAD (73)] Condizione sufficiente (ma non necessaria) affinché un insieme di processi sia schedulabile con l algoritmo RMPO è che: U U RMPO / ( ) ( ) insieme di processi schedulabile U 0,75 0,5.88.779.756.743 3 4 5 no forse si lim U RMPO ( ) ln 0. 693 Scheduling di processi HRT 37
IL LIMITE SUPERIORE MIIMO (LEAST UPPER BOUD) DEL FATTORE DI UTILIZZAZIOE L applicazione di un algoritmo di scheduling (A) induce nello spazio dei possibili insiemi di processi Σ {σ (, T,, T, C,, C )} una partizione in tre sottospazi disgiunti Σ, Σ, Σ 3 U Σ {σ insieme di processi non schedulabile} Σ {σ insieme di processi difficilmente schedulabile (una variazione di C (C +ε) o di T (T -ε) per un qualunque P in σ conduce ad un nuovo insieme di processi σ non più schedulabile)} Σ 3 {σ insieme di processi schedulabile cui non corrisponde la piena utilizzazione del processore} U lub (A) min {U ub (σ, A)} σ Σ least upper bound upper bound Scheduling di processi HRT 38
CALCOLO DI U lub per RMPO ) Analisi del caso elementare corrispondente a processi T T T T mod T + i + f T T T U C T? Uub( U, T / T ) limite superiore (upper bound) di U? ub ( U, T / T ) U Uub U + limite superiore (upper bound) di U? U lub min { U ub } limite superiore minimo (least upper bound) di U ) Generalizzazione dei risultati nel caso di > processi Scheduling di processi HRT 39
CALCOLO DI U ub () caso : f > U, > ovvero f T C T... T Idle P Ready Running T i T f T ( T C) + f T C [ i ( U) + f U] T ub C i C ( U ) C i + f U U Uub T i + f Scheduling di processi HRT 40
CALCOLO DI U ub () caso : f U, ovvero f T C T... T Idle P Ready Running T i T f T ( T C) i ( U) T ub C i C ( U ) C i U Uub T i + f Scheduling di processi HRT 4
CALCOLO DI U ub () ( U, i, f ) U Uub U + ub U ub ( f ) U U i + f ( U ) < f U i + f f f U T / T i + f Scheduling di processi HRT 4
CALCOLO DI U ub () U U ub ( f ) f U U < i + f ( U ) i + f U f f -U -U ub U T / T i + f Scheduling di processi HRT 43
CALCOLO DI U lub () ( U, i, f ) Uub ( f ) U U i + f ( U ) < f U i + f f f U U ( U, i, f ) Uub ( U, i, f ) Uub U f ( f ) f U lub ( i, f ) i + f T... T Idle P Ready Running T i T f T Scheduling di processi HRT 44
CALCOLO DI U lub () ( f ) f U lub ( i, f ) i + f 0.95 0.9 0.85 i U lub ( i, f ) Ulub 0.8 0.75 0.7 0.65 + f i Ulub( f ) + f 0.6 0.55 0.5 3 4 5 6 7 8 9 0 T / T i + f Scheduling di processi HRT 45
CALCOLO DI U lub () U lub ( f ) + f + f 0.98 0.96 0.94 du df ( f ) f + f ( + f ) lub 0 Ulub 0.9 0.9 0.88 0.86 0.84 f U lub ( ) 0.8 0 0. 0. 0.3 0.4 0.5 0.6 0.7 0.8 0.9 f Scheduling di processi HRT 46
CALCOLO DI U lub () i T < < T T U f T + T C C T T C T C T T f / / T T C T ( ) C T ( / ) C / / U U i processi concorrono uniformemente al fattore di utilizzazione del processore T C C P T T +C T -T Idle Ready Running Scheduling di processi HRT 47
CALCOLO DI U lub (>) C T T C T3 T M T C C T T C ub C T T T T T... T T T............ T T... P... P Idle Ready Running Scheduling di processi HRT 48
Scheduling di processi HRT 49 CALCOLO DI U lub (>) T T C 3 T T C ub T T C T T C M R R R R U ub L R T T U + R K R U U U ub ub + + K T T U T T U 3 T T U M T T U ub
Scheduling di processi HRT 50 CALCOLO DI U lub (>) R K R U ub +,,, 0 R R K R R K R U i i i i ub L / K R R R L ( ) ( ) K K K K U / / lub +
CALCOLO DI U lub (>) U lub / ( ) U,, L, i processi concorrono uniformemente al fattore di utilizzazione del processore ( ) T T T,..., ( ) C T ( ) C C C,..., Scheduling di processi HRT 5
Scheduling di processi HRT 5... Esplicitando l utilizzazione schedulabile dell algoritmo RMPO in funzione dei singoli fattori di utilizzazione dei processi (non semplicemente del numero di processi, come nel teorema), si perviene ad un test di schedulabilità meno conservativo. T T C T T C 3 T T C T T C ( ),,..., U T T + + ( ) U T T + ( ) ( ) U U,, U U, U RMPO + L U COROLLARIO DEL TEOREMA DI LIU-LAYLAD
U COROLLARIO DEL TEOREMA DI LIU-LAYLAD se U U ( U, U, L, U ) U ( ) U L U RMPO RMPO 0.9 utilizzazione schedulabile in accordo a RMPO () URMPO () URMPO (U,U,,U) 0.8 0.7 0.6 U 0.5 0.4 0.3 0. 0. 0 0 0. 0. 0.3 0.4 0.5 0.6 0.7 0.8 0.9 U Scheduling di processi HRT 53
U COROLLARIO DEL TEOREMA DI LIU-LAYLAD C T C/T P 5 0 0.5 5 5 0. 5 50 0. U RMPO 3 ( 3) 0. 78 U 0.8 > U RMPO 3 3 ( U 0.5, U 0., U 0.) ( + U ).98 P 0 0 0 30 40 50 Idle Ready Running Scheduling di processi HRT 54
ALTRI TEST DI SCHEDULABILITÀ DIPEDETI DAI PARAMETRI DEI PROCESSI: IL TEST DI KUO-MOK (9) Un insieme S di processi P,,, P contraddistinto da un fattore di utilizzazione del processore U è schedulabile con RMPO se (condizione solo sufficiente) U U RMPO (K), essendo K il numero di sottoinsiemi disgiunti di processi semplicemente periodici in S. La schedulabilità dell insieme S è garantita se è schedulabile l insieme S di K < processi P,,, P K ad esso equivalente. Al processo P (,,, K) in S, corrispondente al sottoinsieme di processi semplicemente periodici P x, P y,, P z in S, compete un fattore di utilizzazione del processore U U x + U y + + U z, un periodo T min (T x, T y,, T z ) e un tempo di esecuzione C U T. S C T C/T P 5 0 0.5 5 5 0. 5 50 0. P P {, } S C T C /T P 5 0 0.5 7.5 5 0.3 3 ( 3) 0. 78 U 0.8 > URMPO ( ) 0. 88 U ' 0.8 URMPO Scheduling di processi HRT 55
IL TEST DI KUO-MOK S C T C/T P 4 0 0.40 4 0 0.0 8 40 0.0 P 4 3.6 45 0.08 P 5.8 90 0.0 P {P,, } {P 4,P 5 } S C T C /T P 8 0 0.8 4.5 45 0. 5 ( 5) 0. 743 U 0.9 > URMPO U ' 0.9 > URMPO ( ) 0. 88 ( U 0.4, L, U 0. 0) URMPO 5 corollario ( U ' 0.8, U ' 0. ) URMPO 5 ( + U ). > ( + U ').98 Scheduling di processi HRT 56
IL TEST DI KUO-MOK ei casi in cui il partizionamento non sia univoco, conviene optare per quello che induce una distribuzione del fattore di utilizzazione del processore quanto più disuniforme possibile. S C T C/T P 5.5 0 0.55 5 5 0. 5 50 0. S C T C /T S C T C /T P 5.5 0 0.55 7.5 5 0.3 P P {, } P {P, } P 6.5 0 0.65 5 5 0. U ' 0.85 > U RMPO ( ) 0. 88 U RMPO ( U 0.55, U ' 0. 3) ' U RMPO ( U 0.65, U ' 0. ) ' ( + ').05 > U corollario ( + U ').98 Scheduling di processi HRT 57
IL TEST DI BURCHARD et al. (96) L utilizzazione schedulabile dell algoritmo RMPO è tanto maggiore (tendendo al valore limite nel caso di processi semplicemente periodici) quanto meno i periodi dei processi si discostano dalla relazione armonica. X log T log T ζ max X min X U RMPO (, ζ) ( ) / ( ) ζ /( ) ( ) + ζ ζ < / ζ / Scheduling di processi HRT 58
IL TEST DI BURCHARD 0.95 U RMPO (,ζ) 0.9 0.85 0.8 0.75 U RMPO () 0.7 4 6 8 0 0.8 0.6 ζ 0.4 0. 0 Scheduling di processi HRT 59
IL TEST DI BURCHARD A 5 C T C/T P 5 0 0.50 8 9 0.4 ( ) 0. 88 U 0.9 > URMPO ( + U ).3 URMPO( U 0.5, U 0.4) > X 0.3 X 0.48 ζ0.074 (, ζ 0.074) 0. 95 U 0.9 < URMPO Scheduling di processi HRT 60
IL TEST DI HA (97) Un insieme S di processi P,,, P è schedulabile con RMPO se (condizione solo sufficiente) ad esso corrisponde un insieme accelerato S di processi P,,, P semplicemente periodici e con fattore di utilizzazione del processore U U + U + + U. insieme S insieme accelerato S P (T, C ) P (T T, C C ) (T, C )...... (T T, C C )... P (T, C ) P (T T, C C ) Scheduling di processi HRT 6
IL TEST DI HA S C T C/T P 5 0.500 6 6.375 X 0.3, X 0 ζ0.3 ( ) 0. 88 U 0.875 > U RMPO ( + U ).065 URMPO ( U 0.5, U 0.375) > (, ζ 0.3) 0. 85 U 0.875 > U RMPO insieme accelerato S C T C /T P 5 8.65 6 6.375 U +U Scheduling di processi HRT 6
IL TEST DI HA Scheduling di processi HRT 63
IL TEST DI HA iterazione Complessità computazionale dell algoritmo: O( ) P T T T......... P k T k T k T i T i- * T i / T i- i,...,......... P T T P T T......... T i T i+ / T i+ / T i i k-,..., k - P k T k T k T k......... T i T i- * T i / T i- i k+,..., P T T P T T......... P k T k T k......... T i T i+ / T i+ / T i i -,..., P T T T Scheduling di processi HRT 64
IL TEST DI HA Limiti dell algoritmo S C T C/T I iterazione P T 0 T 0 P 8 0 0.4 6 60 0. 7 90 0.3 P 4 8 80 0. U.05 II iterazione T 60 T 60 T 3 90 T 3 60 P 4 T 4 80 T 4 80 P T 0 T 0 T * T / T 0 * 60 / 0 T * T 3 / T 60 * 90 / 60 T 3 * T 4 / T 3 60 * 80 / 60 T / T / T 60 / 60 / 0 U 0.9 U.05 T 60 T 60 T 3 90 T 3 60 P 4 T 4 80 T 4 80 T * T 3 / T 60 * 90 / 60 T 3 * T 4 / T 3 60 * 80 / 60 S C T C/T III iterazione P T 0 T 5 T / T / T 45 / 45 / 0 P 8 0 0.40 6 40 0.5 7 80 0.34 U.067 T 60 T 45 T 3 90 T 3 90 P 4 T 4 80 T 4 80 T 3 / T 3 / T 90 / 90 / 60 T 3 * T 4 / T 3 90 * 80 / 90 P 4 8 60 0. IV iterazione P T 0 T 5 T / T / T 45 / 45 / 0 U.0 U.067 T 60 T 45 T 3 90 T 3 90 P 4 T 4 80 T 4 80 T 3 / T 3 / T 90 / 90 / 60 T 4 / T 4 / T 3 80 / 80 / 90 Scheduling di processi HRT 65
AALISI DI SCHEDULABILITÀ BASATA SUL CALCOLO DEI TEMPI DI RISPOSTA [AUDSLEY et al. (93)] La schedulabilità è garantita se il tempo di risposta di ogni processo nelle condizioni più sfavorevoli (cioè a partire da un istante critico) non eccede la corrispondente deadline: ( R ) T i,,..., R i Ci + Ii i i I i rappresenta l interferenza sul tempo di risposta R i del processo P i derivante dall esecuzione di processi di priorità superiore. I i ( R i ) p p i R > i C T R i può essere calcolato nel seguente modo: n ( R ) n,,... 0 n R i C i, R i Ci + Ii i Scheduling di processi HRT 66
L ALGORITMO DI AUDSLEY A 5 C T C/T il processo a priorità massima non è soggetto a interferenza processo P : processo : P 5 0 0.50 U(A 5 ) 0.9 8 9 0.4 R R 0 C 5 < T 0 R 0 C 8 R C + R 0 /T * C 8 + 8/0 * 5 3 R C + R /T * C 8 + 3/0 * 5 8 R 3 C + R /T * C 8 + 8/0 * 5 8 R 3 R 8 < T 9 n0 n n n3 C R 0 I (R 0 ) + C R I (R ) + C R I (R ) + C R 3 0 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 Scheduling di processi HRT 67
L ALGORITMO DI AUDSLEY A 4 C T C/T P 5 0 0.5 6 5 0.4 U(A 4 ) 0.9 processo P : R R 0 C 5 < T 0 processo : R 0 C 6 R C + R 0 /T * C 6 + 6/0 * 5 R C + R /T * C 6 + /0 * 5 6 R 6 > T 5 n0 n n C R 0 I (R 0 ) + C R I (R ) + C R 0 3 4 5 6 7 8 9 0 3 4 5 6 Scheduling di processi HRT 68
U TEST PIÙ EFFICIETE, MA Ai fini della schedulabilità, è sufficiente verificare se per ogni processo, nelle condizioni più sfavorevoli (cioè a partire da un istante critico), risulta: C i T T i ( T ) C + C T i,, L, + Ii i i p > p i i A 5 C T C/T P 5 0 0.50 8 9 0.4 U(A 5 ) 0.9 processo P : C + I (T ) 5 < T 0 processo : C + T /T * C 8 + 9/0 * 5 8 < T 9 Scheduling di processi HRT 69
MEO EFFICACE Il test identifica un insieme di condizioni solo sufficienti: C T C/T P 5 0.50 P : C + I (T ) 5 < T 0 0 30.333 0 65.308 : C + T /T * C 0 + 30/0 * 5 0 < T 30 U 0.89 : C 3 + T 3 /T * C + T 3 /T * C 0 + 65/0 * 5 + 65/30 * 0 70 > T 3 65 P Idle Ready : Running 0 0 0 30 40 50 60 R 30 C 3 0 R 3 C 3 + R 30 /T * C + R 30 /T * C 0 + 0/0 * 5 + 0/30 * 0 35 R 3 C 3 + R 3 /T * C + R 3 /T * C 0 + 35/0 * 5 + 35/30 * 0 50 R 33 C 3 + R 3 /T * C + R 3 /T * C 0 + 50/0 * 5 + 50/30 * 0 55 R 34 C 3 + R 33 /T * C + R 33 /T * C 0 + 55/0 * 5 + 55/30 * 0 55 R 34 R 33 55 < T 3 65 Scheduling di processi HRT 70
U ESTESIOE DEL MODELLO PER LA SCHEDULAZIOE DI PROCESSI SIA PERIODICI CHE SPORADICI I processi sporadici, pur essendo tipicamente caratterizzati da una bassa frequenza di esecuzione, impongono vincoli più stringenti per quanto concerne il tempo di completamento della loro esecuzione (processi urgenti): D < T Ai fini della schedulazione è sufficiente estendere il precedente modello, prevedendo che ogni processo P sia esplicitamente caratterizzato da tre parametri: T (MIT nel caso di processi sporadici, periodo nel caso di processi periodici), D T (< nel caso di processi sporadici, nel caso di processi periodici) e C < D. Scheduling di processi HRT 7
L'ALGORITMO DEADLIE MOOTOIC PRIORITY ORDERIG (DMPO) [LEUG-WHITEHEAD (8)] Ad ogni processo P ( ) è staticamente associata una priorità inversamente proporzionale alla corrispondente deadline relativa: p / D. OTTIMALITÀ DELL'ALGORITMO Se un insieme di processi periodici e/o sporadici è schedulabile con un qualche algoritmo che prevede un attribuzione statica di priorità, allora tale insieme è schedulabile anche con DMPO. Se un insieme di processi periodici e/o sporadici non è schedulabile con DMPO, allora tale insieme non è schedulabile con alcun altro algoritmo che preveda un attribuzione statica di priorità. Scheduling di processi HRT 7
0 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 0 AALISI DI SCHEDULABILITÀ ATTRAVERSO DIAGRAMMI TEMPORALI A 6 C T D C/T p(rmpo) p(dmpo) P 4 0 0 0.40 3 5 6 0.0 max max U(A 6 ) 0.87 6 0.7 min min P 0 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 0 P Idle Ready Running RMPO: missed deadline DMPO: no missed deadline Scheduling di processi HRT 73
AALISI DI SCHEDULABILITÀ ATTRAVERSO DIAGRAMMI TEMPORALI A 7 C T D C/T p P 4 0 0 0.40 3 5 6 0.0 max 7 0.3 min U(A 7 ) 0.9 P 0 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 0 3 4 5 Idle Ready Running missed deadline (): insieme di processi non schedulabile Per poter schedulare applicazioni con un elevato fattore di utilizzazione del processore (come A 7 o A 4 ), occorre utilizzare un algoritmo che attribuisca le priorità ai processi non staticamente, bensì dinamicamente. Scheduling di processi HRT 74
AALISI DI SCHEDULABILITÀ: CALCOLO DEI TEMPI DI RISPOSTA Algoritmo di Audsley: condizione necessaria e sufficiente affinché un insieme di processi periodici e sporadici sia schedulabile con l algoritmo DMPO è che: R i R T i ( R ) C + C D i,, L, Ci + Ii i i p > p i i A 6 C T D C/T P 4 0 0 0.40 3 5 6 0.0 6 0.7 U(A 6 ) 0.87 : P : R R 0 C 3 < D 6 R 0 C 4 R C + R 0 /T * C 4 + 4/5 * 3 7 R C + R /T * C 4 + 7/5 * 3 7 R R 7 < D 0 : R 30 C 3 6 R 3 C 3 + R 30 /T * C + R 30 /T * C 6 + 6/5 * 3 + 6/0 * 4 3 R 3 C 3 + R 3 /T * C + R 3 /T * C 6 + 3/5 * 3 + 3/0 * 4 7 R 33 C 3 + R 3 /T * C + R 3 /T * C 6 + 7/5 * 3 + 7/0 * 4 0 R 34 C 3 + R 33 /T * C + R 33 /T * C 6 + 0/5 * 3 + 0/0 * 4 0 R 34 R 33 0 < D 3 Scheduling di processi HRT 75
TEST DI SCHEDULABILITÀ Condizione sufficiente (ma non necessaria) affinché un insieme di processi periodici e sporadici sia schedulabile con l algoritmo DMPO è che: C i D T i ( D ) C + C D i,, L, + Ii i i p > p i i A 6 C T D C/T P 4 0 0 0.40 3 5 6 0.0 6 0.7 U(A 6 ) 0.87 : C + I (D ) 3 < D 6 P : C + D /T * C 4 + 0/5 * 3 7 < D 0 : C 3 + D 3 /T * C + D 3 /T * C 6 + /5 * 3 + /0 * 4 4 > D 3 Scheduling di processi HRT 76
TEST DI SCHEDULABILITÀ Test basato sulla densità di utilizzazione del processore Condizione sufficiente (ma non necessaria) affinché un insieme di processi periodici e sporadici sia schedulabile con l algoritmo DMPO è che: C D U RMPO / ( ) ( ) Condizione fortemente conservativa se esistono uno o più processi con deadline relativa << periodo. Scheduling di processi HRT 77
TEST DI SCHEDULABILITÀ C T D C/D P 4 3 0.33 5 5 0.0 3 5 0.5 0.9 3 C 0.8 > U RMPO ( 3) 0. 78 D Il test fallisce nonostante l insieme dei processi sia schedulabile con l algoritmo DMPO: P 0 3 4 5 6 7 8 9 0 3 4 5 Idle Ready Running Scheduling di processi HRT 78
IL TEST DI LEHOCZKY (90) Condizione sufficiente (ma non necessaria) affinché un insieme di processi periodici e sporadici, ciascuno contraddistinto da una deadline relativa D δ * T,,,,, sia schedulabile con l algoritmo DMPO è che: C T U (, δ) ( ) ) δ / + δ 0.5 δ δ min { δ } δ 0 δ 0.5 C T D C/T D/T P 4 3 0.5 0.75 5 5 0.0 3 5 0.5 0.0 0.7 3 C 0.65 U ( 3, δ 0.7) 0. 656 T Scheduling di processi HRT 79
IL TEST DI LEHOCZKY U RMPO () 0.8 U(, δ) 0.6 0.4 0. 0 δ * U RMPO () 0.8 0.6 δ 0.4 0. 0 0 8 6 4 Scheduling di processi HRT 80
IL TEST BASATO SUL FATTORE DI UTILIZZAZIOE EFFICACE DEI PROCESSI Il test di Lehoczky nella formulazione precedente risulta ancora decisamente conservativo se i δ sono alquanto diversi fra loro. In tal caso è conveniente applicare il test calcolando individualmente per ogni processo P, in ordine di priorità decrescente, il fattore di utilizzazione efficace f, definito da: f C i + C + C i H T n i T k H k essendo H e H n i due sottoinsiemi di processi di priorità p(p ) con periodo, rispettivamente, D e < D, f e verificando se risulta: ( H + δ δ ) U n, L insieme di processi è schedulabile se tale condizione (sufficiente, non necessaria) è soddisfatta per P,,,,. Scheduling di processi HRT 8
IL TEST BASATO SUL FATTORE DI UTILIZZAZIOE EFFICACE DEI PROCESSI C T D C/T C/D D/T P 4 4 0.50 0.50 6 5 0.67 0.00 0.833 7 0.083 0.43 0.583 P 4 9 9 0. 0. 4 C D 0.85 > U RMPO ( 4) 0. 757 4 C 0.7 > U ( 4, δ 0.583) 0. 574 T H n H f U(,δ) P P 4 { } { } {P } { } {P, } { } {P, } { } /4 0.5 /4 + /6 0.47 /4 + /6 + / 0.5 /4 + /6 + (+)/9 0.75 U(,) U(,5/6) 0.749 U(3,7/) 0.575 U(3,) 0.78 Scheduling di processi HRT 8
SCHEDULABILITA I PRESEZA DI ITERRUPT SERVICE ROUTIES Il test basato sul fattore di utilizzazione efficace può essere convenientemente applicato per verificare la schedulabilità di un insieme di processi periodici (e/o sporadici) gestiti in accordo alla strategia RMPO (o DMPO) in presenza di interrupt service routines (ISR). E sufficiente a tale scopo procedere al calcolo del fattore di utilizzazione efficace di ogni ISR e di ogni processo, tenendo conto che le ISR vengono eseguite ad una priorità in generale più elevata di quella che loro deriverebbe dalla corrispondente frequenza di esecuzione. Esempio: la precedente applicazione risulterebbe ancora schedulabile se, al posto di P 4, considerassimo una ISR di pari frequenza e tempo di esecuzione? Scheduling di processi HRT 83
SCHEDULABILITA I PRESEZA DI ITERRUPT SERVICE ROUTIES C T D C/T C/D D/T P 4 4 0.50 0.50 6 5 0.67 0.00 0.833 7 0.083 0.43 0.583 ISR P 4 9 9 0. 0. H n H f U(,δ) ISR P { } { } { } {ISR} {P } {ISR} /9 0. (+)/4 0.75 /4 + (+)/6 0.75 U(,) U(,) U(,5/6) 0.749 {P, } {ISR} /4 + /6 + (+)/ 0.667 U(3,7/) 0.575 ISR P 0 3 4 5 6 7 8 9 0 condizione sufficiente, non necessaria Idle Ready Running Scheduling di processi HRT 84
L'ALGORITMO EARLIEST DEADLIE FIRST (EDF) Ad ogni processo è dinamicamente associata una priorità tanto maggiore quanto più imminente è la corrispondente deadline assoluta. A 4 C T D C/T P 5 0 0 0.5 6 5 5 0.4 U(A 4 ) 0.9 P 0 0 0 30 Idle Ready Running task-level dynamic-priority algorithm ob-level fixed-priority algorithm Scheduling di processi HRT 85
JOB-LEVEL FIXED vs. DYAMIC PRIORITY C T D C/T P 0.8 0.40.5 5 5 0.30.5 6 6 0.5 U 0.95 Idle Ready Running EDF p(j ) > p(j 3 ) P 0 0.5.5.5 3 3.5 4 4.5 5 5.5 6 (nonstrict) Least Slack Time First: task-level and ob-level dynamic-priority algorithm istanti decisionali: all atto del release o del complemento della esecuzione di un ob slack t 0 t 0.8 t t.8 t 4 t 4.3 t 5 t 5.3 t 5.4 t 6 P. -. -. 0.9 0.9 0.6 -. 3.5.7.7.9 0.7-3.5 3. 3. 3. 4.5 3.7.5.7.7.4 0.7 - - 4.5 LST p(j ) > p(j 3 ) p(j ) < p(j 3 ) p(j ) > p(j 3 ) P 0 0.5.5.5 3 3.5 4 4.5 5 5.5 6 Scheduling di processi HRT 86
OSTRICT LST slack 4.5 C T D C/T P 0.8 0.40.5 5 5 0.30.5 6 6 0.5 4 J 3 slack t 0 t 0.8 t P. -. 3.5.7.7 4.5 3.7.5 3.5 3 J P.5 0 0.5.5 J J 0 0.5.5 t Scheduling di processi HRT 87
STRICT vs. OSTRICT LST C T D C/T P.5 8 8 0.3 7 0.58 nonstrict LST slack t 0 t 7 P 5.5 -.5 5 - P 0 4 6 8 strict LST slack t 5 4 J J J J P 3 0 4 6 8 0 0 0 4 6 8 0 t Scheduling di processi HRT 88
EDF: CODIZIOI DI SCHEDULABILITÀ Condizione necessaria e sufficiente affinché un insieme di processi periodici sia schedulabile con l algoritmo EDF è che: U i Condizione sufficiente (ma non necessaria) affinché un insieme di processi periodici e sporadici sia schedulabile con l algoritmo EDF è che: Ci UEDF T i i Ci D i A 7 C T D C/T C/D P 4 0 0 0.40 0.40 3 5 6 0.0 0.50 7 0.3 0.3 U(A 7 ) 0.9 (A 7 ). Idle Ready Running P 0 0 0 30 40 Scheduling di processi HRT 89
AALISI DI SCHEDULABILITÀ: L APPROCCIO PROCESSOR DEMAD [BARUAH et al. (90)] La schedulabilità di un insieme di processi periodici e sporadici, contraddistinti da un fattore di utilizzazione del processore U ed attivati contemporaneamente all istante 0, è garantita se in ogni intervallo [0,t] il tempo di elaborazione cumulativamente richiesto per completare l esecuzione di tutti i ob aventi deadline t non eccede il tempo disponibile t: C P i i i t D Ti i ( 0, t) C ( 0, t) + C t i Ai fini della schedulabilità, è sufficiente verificare se tale condizione è soddisfatta per t D {d ik d ik (k-) T i + D i, d ik < BI, i, k }, essendo [0,BI] ( busy interval ) il più piccolo intervallo entro il quale termina l esecuzione di tutti i ob attivati in esso (ovvero all istante BI il processore risulta idle). BI può essere calcolato iterativamente nel seguente modo: n 0 n BI BI Ci BI Ci n,,... i i Ti (se U, n BI n BI n- H (iperperiodo); solo in caso contrario BI ) Scheduling di processi HRT 90
L APPROCCIO PROCESSOR DEMAD A 7 C T D C/T C/D P 4 0 0 0.40 0.40 3 5 6 0.0 0.50 7 0.3 0.3 U(A 7 ) 0.9 (A 7 ). BI 0 C + C + C 3 4 BI BI 0 /T C + BI 0 /T C + BI 0 /T 3 C 3 4/0 4 + 4/5 3 + 4/ 7 8 BI BI /T C + BI /T C + BI /T 3 C 3 8/0 4 + 8/5 3 + 8/ 7 BI 3 BI /T C + BI /T C + BI /T 3 C 3 /0 4 + /5 3 + / 7 5 BI 4 BI 3 /T C + BI 3 /T C + BI 3 /T 3 C 3 5/0 4 + 5/5 3 + 5/ 7 3 BI 5 BI 4 /T C + BI 4 /T C + BI 4 /T 3 C 3 3/0 4 + 3/5 3 + 3/ 7 39 BI 6 BI 5 /T C + BI 5 /T C + BI 5 /T 3 C 3 39/0 4 + 39/5 3 + 39/ 7 39 BI 5 BI 39 < H mcm (0, 5, ) 330 D {6, 0, 0,,, 30, 36} Scheduling di processi HRT 9
L APPROCCIO PROCESSOR DEMAD 0 C (0,t) 0 0 0 0 0 30 40 t 40 0 30 C (0,t) 0 C P (0,t) 0 0 0 0 0 30 40 t 0 0 0 0 0 0 30 40 t C 3 (0,t) 0 0 0 0 0 30 40 t Scheduling di processi HRT 9
L APPROCCIO PROCESSOR DEMAD BI 39 < H 330 P 0 0 0 30 40 D {6, 0, 0,,, 30, 36} t C (0,t) C (0,t) C 3 (0,t) C P (0,t) t 6 0 3 0 3 0 4 3 0 7 0 8 3 0 8 6 0 4 8 6 7 30 6 7 5 36 9 7 8 Scheduling di processi HRT 93
L APPROCCIO PROCESSOR DEMAD A 8 C T D C/T C/D P 4 0 0 0.40 0.40 3 5 6.5 0.0 0.46 8 0.38 0.38 U(A 8 ) 0.98 (A 8 ).4 n BI n 0 5 9...... (BI 8 BI 7 60) t C (0,t) C (0,t) C 3 (0,t) C P (0,t) t 6.5 0 3 0 3 0 4 3 0 7 0 8 3 0 8 3 8 9.5 8 6 8 P 0 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 0 3 Idle Ready Running Scheduling di processi HRT 94
Scheduling di processi HRT 95 L APPROCCIO PROCESSOR DEMAD Indicato con: U C T D t i i i i * è possibile, qualora risulti t* < BI, migliorare l efficienza dell approccio limitandosi a verificare se è soddisfatta la condizione C P (0,t) t solo per il seguente insieme D* di istanti t: ( ) ( ) t C, T D Ut C T D t 0,t C 0,t C i i i i i i i i * P + + e quindi che C P (0,t) t per t t*. D* {d ik d ik (k-) T i + D i, d ik < t*, i, k }. Ciò deriva dalla constatazione che:
L APPROCCIO PROCESSOR DEMAD La diversa modellazione del tempo di elaborazione complessivamente richiesto in [0,t]: C (0,t) 0 0 A 7 C T D C/T C/D P 4 0 0 0.40 0.40 3 5 6 0.0 0.50 7 0.3 0.3 0 0 0 0 30 40 t 40 0 30 C (0,t) 0 C P (0,t) 0 0 0 0 0 30 40 t 0 0 0 0 0 0 30 40 t C 3 (0,t) 0 BI 39 D {6, 0, 0,,, 30, 36} 0 0 0 0 30 40 t t* D* {6, 0, 0, } t* < BI D* D Scheduling di processi HRT 96
L APPROCCIO PROCESSOR DEMAD A 9 C T D P 4 0 5 3.5 5 8 5 BI 0 D {5, 8, 5} t* 7.7 D* {5, 8, 5,, 3, 5} t* > BI D* D t C (0,t) C (0,t) C 3 (0,t) C P (0,t) t 5 4 0 0 4 8 4 3.5 0 7.5 5 8 3.5 0.5 In generale: t* o BI? min (t*,bi) BI n Scheduling di processi HRT 97
RMPO, DMPO, EDF: ASPETTI REALIZZATIVI Separazione tra aspetti funzionali e temporali ame P... P Period P Period... P Period Relative Deadline P Deadline... P Deadline InitializationEntryPoint P ResetHandler... P ResetHandler JobEntryPoint P Handler... P Handler MissedDeadlineEntryPoint P MissedDeadlineHandler... P MissedDeadlineHandler Specifiche a livello di application design SystemTickRate ( ) /* real-time clock frequency */ SystemTickConnect (EntryPoint) /* hook to real-time clock interrupt handler */ TaskSpawn (ame, Priority, Options, StackSize, EntryPoint, Arg,, Arg0) /* creation & activation */ SetTaskPriority (TaskId, Priority) /* TaskId 0: calling task */ TaskSuspend (TaskId) /* TaskId 0: calling task */ TaskResume (TaskId) TaskIsSuspended (TaskId) Primitive del Sistema Operativo (VxWorks) Distinzione tra politiche e meccanismi Scheduling di processi HRT 98
RMPO, DMPO: IL RUOLO DEL METASCHEDULER A C T P 5 5 5 50 7.5 00 Ad ogni processo è attribuita una priorità (statica) in base alla corrispondente deadline relativa RESUME SUSPEDRESUME SUSPEDRESUME SUSPEDRESUME SUSPEDRESUME P RESUME SUSPED RESUME SUSPED RESUME RESUME SUSPED RESUME Metascheduler P 0 0 0 30 40 50 60 70 80 90 00 Idle Ready Running Scheduling di processi HRT 99
ESECUZIOE PERIODICA DEL METASCHEDULER Real-Time Clock Interrupt void SystemTickInterruptHandler (void) { SystemTickHandler ( ); SystemTickConnect (SystemTickHandler); } private void SystemTickHandler (void) { if ((--MetaschedulerReleaseTimer) 0) { TaskResume (MetaschedulerId); } } MetaschedulerReleaseTimer MetaschedulerReleaseTime; /* 50 se T RTC 500 µs T METASCHEDULER mcd (5 (P ), 50 ( ), 00 ( )) 5 ms */ Scheduling di processi HRT 00
ESECUZIOE PERIODICA DEI PROCESSI MetaschedulerId TaskSpawn ( Metascheduler, HighPriority, DefaultOptions, DefaultStackSize, MetaschedulerShell, 0); private void MetaschedulerShell (void) { while (true) { TaskSuspend (0); private void Metascheduler (void) Metascheduler ( ); { } repeat for each P } { if ((--PReleaseTimer) 0) { TaskResume (PId); PReleaseTimer PReleaseTime; /* (P ), ( ), 4 ( ) */ } } } Scheduling di processi HRT 0
ESECUZIOE PERIODICA DEI PROCESSI /* for each P */ PId TaskSpawn ( P, PPriority, DefaultOptions, DefaultStackSize, TaskShell, PHandler); private void TaskShell (void (* PHandler) (void)) { while (true) { TaskSuspend (0); PHandler ( ); } } missed deadline Scheduling di processi HRT 0
GESTIOE DEI SOVRACCARICHI Gli stati di un processo a livello di: metascheduler idle not_idle scheduler suspended ready / running Metascheduler: TaskResume (PId) RESUME ready suspended Scheduler: Task Dispatching and Preemption running SUSPED Task: TaskSuspend (self) Scheduling di processi HRT 03
GESTIOE DEI SOVRACCARICHI private void Metascheduler (void) { repeat for each P { if (PState! idle) { PExecutionTimer++; if (TaskIsSuspended (PId)) { ExecutionTimeLogHandler (P, PExecutionTimer) /* min, max, average, */ PState idle; } else { if (PExecutionTimer PCompletionTime) /* missed deadline */ { PMissedDeadlineCounter++; PMissedDeadlineHandler; /* application dependent */ } } } Scheduling di processi HRT 04
GESTIOE DEI SOVRACCARICHI } } MetaSchedulerReleaseTime PReleaseTime if ((--PReleaseTimer) 0) { 50 00 00 if (PState idle) 5 50 00 { TaskResume (PId); PReleaseTimer PReleaseTime; PExecutionTimer 0; PState not_idle; } else /* overrun */ { P POverrunCounter++; if (POverrunHandlingPolicy ASAP) risoluzione PReleaseTimer ; /* release next ob As Soon As Possible */ else PReleaseTimer PReleaseTime; /* skip next ob execution */ } } Scheduling di processi HRT 05
GESTIOE DEI SOVRACCARICHI private void SystemTickHandler (void) { if ((--MetaschedulerReleaseTimer) 0) { if (TaskIsSuspended (MetaschedulerId)) TaskResume (MetaschedulerId); else MetaschedulerOverrunCounter++; MetaschedulerReleaseTimer MetaschedulerReleaseTime; } } Scheduling di processi HRT 06
RMPO, DMPO: IIZIALIZZAZIOE void MetaschedulerAndTasksInitialization (void) { MetaschedulerReleaseTime /* [SystemTicks] */ SystemTickRate /* [SystemTicks/s] */ * MetaschedulerPeriod /* [µs] */ / 000000; repeat for each P { PResetHandler ( ); PReleaseTime /* [MetaschedulerTicks] */ PPeriod /* [µs] */ / MetaschedulerPeriod; PCompletionTime /* idem */ PDeadline /* [µs] */ / MetaschedulerPeriod; PPriority PriorityHandler (PCompletionTime); PId TaskSpawn ( P, PPriority, DefaultOptions, DefaultStackSize, TaskShell, PHandler); PReleaseTimer ; PState idle; PMissedDeadlineCounter 0; POverrunCounter 0; ExecutionTimeLogResetHandler (P); /* min, max, average, */ } MetaschedulerId TaskSpawn ( MetaScheduler, HighPriority, DefaultOptions, DefaultStackSize, MetaschedulerShell, 0); MetaschedulerReleaseTimer ; MetaschedulerOverrunCounter 0; } SystemTickConnect (SystemTickHandler); Scheduling di processi HRT 07
RMPO: RISULTATI SPERIMETALI C T C/T p P 5 0 0.50 max 6 5 0.40 5 0.08 min U 0.98 overrun handling policy: ASAP P 0 0 0 30 40 50 missed deadline Idle Ready Running effetto domino sui processi di priorità inferiore Scheduling di processi HRT 08
RMPO: RISULTATI SPERIMETALI overrun handling policy: SKIP P 0 0 0 30 40 50 no missed deadlline Idle Ready Running t.u. RTC ISR Metascheduler P S.O.: VxWorks Tool: WindView Scheduling di processi HRT 09
head EDF: ASPETTI REALIZZATIVI Gestione dinamica della priorità di ciascun processo in base alla corrispondente deadline assoluta not-idle tasks queue tail next next next P max δct δct priority priority P id previous previous previous P id CT: Completion Time δct: delta Completion Time δct(next(head)) CT(next(head)) δct() CT() - CT(previous()), next( next(head)) inizializzazione: next(head) tail, previous(tail) head Scheduling di processi HRT 0
GESTIOE DIAMICA DELLE PRIORITA Enqueue (, CT()) Dequeue () δct() CT(); c next(head); while (δct() > δct(c)) { δct() - δct(c); c next(c); } if (c! tail) δct(c) - δct(); p previous(c); next(p) ; next() c; previous() p; previous(c) ; UpdatePriorities (); p previous(); c next(); if (c! tail) δct(c) + δct(); next(p) c; previous(c) p; UpdatePriorities (c); UpdatePriorities (i) while (i! tail) { priority(i) (priority(previous(i))); SetTaskPriority (P id (i), priority(i)); i next(i); } Scheduling di processi HRT
GESTIOE DIAMICA DELLE PRIORITA private void Metascheduler (void) UpdateCompletionTimes ( ) { c next(head); UpdateCompletionTimes ( ); repeat for each P while (δct(c) 0) c next(c); { if (c! tail) δct(c)--; idem Enqueue (P, PCompletionTime); TaskResume (PId); idem } } private void TaskShell (void (* PHandler) (void)) { } while (true) { } TaskSuspend (0); PHandler ( ); SetTaskPriority (0, MetaSchedulerPriority); Dequeue (P); Scheduling di processi HRT
UA EFFICIETE GESTIOE ALTERATIVA 3 livelli di priorità (Low, Medium, High), condivisi da tutti i processi. Medium: priorità di un processo allorché running, ovvero con deadline più imminente. Low: priorità di un processo allorché pronto, ovvero con deadline meno imminente. High: priorità (coincidente con quella del metascheduler) di un processo allorché, al termine di un ob e prima di autosospendersi, promuove l esecuzione del processo con deadline ora più imminente, modificandone la priorità da Low a Medium. RESUME READY Low SUSPEDED Medium Low High SUSPED RUIG Scheduling di processi HRT 3
private void Metascheduler (void) { UpdateCompletionTimes ( ); r next(head); repeat for each P { idem EnqueueOnly (P, PCompletionTime); SetTaskPriority (PId, Low); TaskResume (PId); idem } if (next(head)! r) { } UA EFFICIETE GESTIOE ALTERATIVA } if (r! tail) SetTaskPriority (P id (r), Low); SetTaskPriority (P id (next(head)), Medium); private void TaskShell (void (* PHandler) (void)) { while (true) { TaskSuspend (0); PHandler ( ); SetTaskPriority (0, High); DequeueOnly (P); if (next(head)! tail) SetTaskPriority (P id (next(head)), Medium); } } Scheduling di processi HRT 4
EDF: RISULTATI SPERIMETALI C T C/T P 5 0 0.50 6 5 0.40 5 0.08 U 0.98 P 0 0 0 30 40 50 Idle Ready Running RTC ISR Metascheduler P S.O.: VxWorks Tool: WindView Scheduling di processi HRT 5