Scheduling di processi hard real-time

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Scheduling di processi hard real-time"

Transcript

1 Scheduling di processi hard real-time Eugenio Faldella Dipartimento di Elettronica, Informatica e Sistemistica Facoltà di Ingegneria, Università di Bologna eugenio.faldella@unibo.it Scheduling di processi HRT

2 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

3 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

4 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

5 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

6 TIMER-DRIVE SCHEDULER esempio Istanti decisionali non equidistanziati t k, P(t k ), P C T, P P 4 0 U 0.85? H 0 P P P P P 4 P !,, P,, P,, P esempio t t -t, P, C T P 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 Scheduling di processi HRT 6

7 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 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

8 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

9 AMBIETI DI ESECUZIOE SEQUEZIALE aspetti temporali un approccio empirico alquanto diffuso gestione: allarmi motorizzazioni user interface A C[ms] T[ms] C/T P U(A ) P P P P + I/O refresh T ciclo C + C + C > T 5 Scheduling di processi HRT 9

10 AMBIETI DI ESECUZIOE SEQUEZIALE gestione: allarmi motorizzazioni user interface termoregolatori A C[ms] T[ms] C/T P P U(A ) P P P P 4 P P P P P P 4 () T ciclo 3 * C + C + C 3 + C > T 50 gestione: allarmi motorizzazioni user interface A C[ms] T[ms] C/T P U(A ) Scheduling di processi HRT 0

11 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 t5 t.u. U(A ) 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 processo in esecuzione - P Scheduling di processi HRT

12 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

13 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 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

14 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 U(A ) con il vincolo di precedenza ciclo maggiore ciclo minore ciclo minore 3 ciclo minore 4 ciclo minore processo in esecuzione - P Scheduling di processi HRT 4

15 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

16 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

17 IDETIFICAZIOE DEL FRAME-SIZE esempio () M mcm (T,, T 4 ) M 0 C T C/T P (3) m C i, i (4) m T i, i () M mod m 0 m.. 4 m, 4 P mcd (m, T i ) m mcd (m, T i ) T i (5) m mcd (m, Ti) Ti, i m OK m m O m4 T 5?? Scheduling di processi HRT 7

18 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

19 COSTRUZIOE DI U FEASIBLE SCHEDULE C T P 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

20 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 Scheduling di processi HRT 0

21 PARTIZIOAMETO DEI PROCESSI on sempre esiste un feasible schedule esempio () M mcm (T,, T 3 ) M 4 C T C/T P (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 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

22 PARTIZIOAMETO DEI PROCESSI C T C/T () M mcm (T,, T 3 ) M 4 P (3) m C i, i (4) m T i, i () M mod m 0 m 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 m OK m OK (5) m mcd (m, Ti) Ti, i m 3, 4 Scheduling di processi HRT

23 PARTIZIOAMETO DEI PROCESSI C T P 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

24 PARTIZIOAMETO DEI PROCESSI C T m 3 M 4 n cm 8 n J 4 n J n J 3 n J3 P 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

25 PARTIZIOAMETO DEI PROCESSI 3 esempio () M mcm (T,, T 3 ) M 40 C T C/T P (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 O Rilassamento del vincolo (3): (5,0) (3,0), (,0) con Scheduling di processi HRT 5

26 PARTIZIOAMETO DEI PROCESSI C T C/T () M mcm (T,, T 3 ) M 40 P (3) m C i, i (4) m T i, i () M mod m 0 m 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 m O Ulteriore rilassamento del vincolo (3): (3,0) A (,0), B (,0) con A B Scheduling di processi HRT 6

27 PARTIZIOAMETO DEI PROCESSI C T C/T () M mcm (T,, T 3 ) M 40 P (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 A B (5) m mcd (m, Ti) Ti, i m mcd (m, T i ) m mcd (m, T i ) T i OK A B Scheduling di processi HRT 7

28 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

29 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 c 7 c 8 J 3B J 3B J 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 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 n J 8 c 8 c 9 J 8 J 8 J 8 J 8 J 3 J n J 5 c 0 40 t n J3A n J3B n J3 Scheduling di processi HRT 9

30 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

31 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

32 IL MECCAISMO DELLA PREEMPTIO A C T C/T p P max min U(A ) P preempted Idle Ready Running Scheduling di processi HRT 3

33 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

34 AALISI DI SCHEDULABILITÀ ATTRAVERSO DIAGRAMMI TEMPORALI A 3 C T C/T p P max min U(A 3 ) P 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

35 AALISI DI SCHEDULABILITÀ ATTRAVERSO DIAGRAMMI TEMPORALI A 4 C T C/T p P max min U(A 4 ) 0.9 P 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

36 AALISI DI SCHEDULABILITÀ ATTRAVERSO DIAGRAMMI TEMPORALI A 5 C T C/T p P max min U(A 5 ) 0.9 P 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

37 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, no forse si lim U RMPO ( ) ln Scheduling di processi HRT 37

38 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

39 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

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) + 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

41 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

42 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

43 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

44 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

45 CALCOLO DI U lub () ( f ) f U lub ( i, f ) i + f i U lub ( i, f ) Ulub f i Ulub( f ) + f T / T i + f Scheduling di processi HRT 45

46 CALCOLO DI U lub () U lub ( f ) + f + f du df ( f ) f + f ( + f ) lub 0 Ulub f U lub ( ) f Scheduling di processi HRT 46

47 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

48 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

49 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

50 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 +

51 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

52 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

53 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) U U Scheduling di processi HRT 53

54 U COROLLARIO DEL TEOREMA DI LIU-LAYLAD C T C/T P U RMPO 3 ( 3) U 0.8 > U RMPO 3 3 ( U 0.5, U 0., U 0.) ( + U ).98 P Idle Ready Running Scheduling di processi HRT 54

55 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 P P {, } S C T C /T P ( 3) U 0.8 > URMPO ( ) U ' 0.8 URMPO Scheduling di processi HRT 55

56 IL TEST DI KUO-MOK S C T C/T P P P P {P,, } {P 4,P 5 } S C T C /T P ( 5) U 0.9 > URMPO U ' 0.9 > URMPO ( ) ( 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

57 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 S C T C /T S C T C /T P P P {, } P {P, } P U ' 0.85 > U RMPO ( ) 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

58 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

59 IL TEST DI BURCHARD 0.95 U RMPO (,ζ) U RMPO () ζ Scheduling di processi HRT 59

60 IL TEST DI BURCHARD A 5 C T C/T P ( ) U 0.9 > URMPO ( + U ).3 URMPO( U 0.5, U 0.4) > X 0.3 X 0.48 ζ0.074 (, ζ 0.074) U 0.9 < URMPO Scheduling di processi HRT 60

61 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

62 IL TEST DI HA S C T C/T P X 0.3, X 0 ζ0.3 ( ) U > U RMPO ( + U ).065 URMPO ( U 0.5, U 0.375) > (, ζ 0.3) U > U RMPO insieme accelerato S C T C /T P U +U Scheduling di processi HRT 6

63 IL TEST DI HA Scheduling di processi HRT 63

64 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

65 IL TEST DI HA Limiti dell algoritmo S C T C/T I iterazione P T 0 T 0 P P 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 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 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

66 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

67 L ALGORITMO DI AUDSLEY A 5 C T C/T il processo a priorità massima non è soggetto a interferenza processo P : processo : P U(A 5 ) 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 Scheduling di processi HRT 67

68 L ALGORITMO DI AUDSLEY A 4 C T C/T P 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 Scheduling di processi HRT 68

69 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 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

70 MEO EFFICACE Il test identifica un insieme di condizioni solo sufficienti: C T C/T P P : C + I (T ) 5 < T : C + T /T * C /0 * 5 0 < T 30 U 0.89 : C 3 + T 3 /T * C + T 3 /T * C /0 * /30 * 0 70 > T 3 65 P Idle Ready : Running 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 * /30 * 0 50 R 33 C 3 + R 3 /T * C + R 3 /T * C /0 * /30 * 0 55 R 34 C 3 + R 33 /T * C + R 33 /T * C /0 * /30 * 0 55 R 34 R < T 3 65 Scheduling di processi HRT 70

71 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

72 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

73 AALISI DI SCHEDULABILITÀ ATTRAVERSO DIAGRAMMI TEMPORALI A 6 C T D C/T p(rmpo) p(dmpo) P max max U(A 6 ) min min P P Idle Ready Running RMPO: missed deadline DMPO: no missed deadline Scheduling di processi HRT 73

74 AALISI DI SCHEDULABILITÀ ATTRAVERSO DIAGRAMMI TEMPORALI A 7 C T D C/T p P max min U(A 7 ) 0.9 P 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

75 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 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

76 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 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

77 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

78 TEST DI SCHEDULABILITÀ C T D C/D P C 0.8 > U RMPO ( 3) D Il test fallisce nonostante l insieme dei processi sia schedulabile con l algoritmo DMPO: P Idle Ready Running Scheduling di processi HRT 78

79 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 C 0.65 U ( 3, δ 0.7) T Scheduling di processi HRT 79

80 IL TEST DI LEHOCZKY U RMPO () 0.8 U(, δ) δ * U RMPO () δ Scheduling di processi HRT 80

81 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

82 IL TEST BASATO SUL FATTORE DI UTILIZZAZIOE EFFICACE DEI PROCESSI C T D C/T C/D D/T P P C D 0.85 > U RMPO ( 4) C 0.7 > U ( 4, δ 0.583) T H n H f U(,δ) P P 4 { } { } {P } { } {P, } { } {P, } { } /4 0.5 /4 + / /4 + /6 + / 0.5 /4 + /6 + (+)/ U(,) U(,5/6) U(3,7/) U(3,) 0.78 Scheduling di processi HRT 8

83 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

84 SCHEDULABILITA I PRESEZA DI ITERRUPT SERVICE ROUTIES C T D C/T C/D D/T P ISR P H n H f U(,δ) ISR P { } { } { } {ISR} {P } {ISR} /9 0. (+)/ /4 + (+)/ U(,) U(,) U(,5/6) {P, } {ISR} /4 + /6 + (+)/ U(3,7/) ISR P condizione sufficiente, non necessaria Idle Ready Running Scheduling di processi HRT 84

85 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 U(A 4 ) 0.9 P Idle Ready Running task-level dynamic-priority algorithm ob-level fixed-priority algorithm Scheduling di processi HRT 85

86 JOB-LEVEL FIXED vs. DYAMIC PRIORITY C T D C/T P U 0.95 Idle Ready Running EDF p(j ) > p(j 3 ) P (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 LST p(j ) > p(j 3 ) p(j ) < p(j 3 ) p(j ) > p(j 3 ) P Scheduling di processi HRT 86

87 OSTRICT LST slack 4.5 C T D C/T P J 3 slack t 0 t 0.8 t P J P J J t Scheduling di processi HRT 87

88 STRICT vs. OSTRICT LST C T D C/T P nonstrict LST slack t 0 t 7 P P strict LST slack t 5 4 J J J J P t Scheduling di processi HRT 88

89 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 U(A 7 ) 0.9 (A 7 ). Idle Ready Running P Scheduling di processi HRT 89

90 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

91 L APPROCCIO PROCESSOR DEMAD A 7 C T D C/T C/D P 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/ / / 7 8 BI BI /T C + BI /T C + BI /T 3 C 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/ / / 7 3 BI 5 BI 4 /T C + BI 4 /T C + BI 4 /T 3 C 3 3/ / / 7 39 BI 6 BI 5 /T C + BI 5 /T C + BI 5 /T 3 C 3 39/ / / 7 39 BI 5 BI 39 < H mcm (0, 5, ) 330 D {6, 0, 0,,, 30, 36} Scheduling di processi HRT 9

92 L APPROCCIO PROCESSOR DEMAD 0 C (0,t) t C (0,t) 0 C P (0,t) t t C 3 (0,t) t Scheduling di processi HRT 9

93 L APPROCCIO PROCESSOR DEMAD BI 39 < H 330 P D {6, 0, 0,,, 30, 36} t C (0,t) C (0,t) C 3 (0,t) C P (0,t) t Scheduling di processi HRT 93

94 L APPROCCIO PROCESSOR DEMAD A 8 C T D C/T C/D P U(A 8 ) 0.98 (A 8 ).4 n BI n (BI 8 BI 7 60) t C (0,t) C (0,t) C 3 (0,t) C P (0,t) t P Idle Ready Running Scheduling di processi HRT 94

95 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:

96 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 t C (0,t) 0 C P (0,t) t t C 3 (0,t) 0 BI 39 D {6, 0, 0,,, 30, 36} t t* D* {6, 0, 0, } t* < BI D* D Scheduling di processi HRT 96

97 L APPROCCIO PROCESSOR DEMAD A 9 C T D P 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 In generale: t* o BI? min (t*,bi) BI n Scheduling di processi HRT 97

98 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

99 RMPO, DMPO: IL RUOLO DEL METASCHEDULER A C T P 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 Idle Ready Running Scheduling di processi HRT 99

100 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

101 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

102 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

103 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

104 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

105 GESTIOE DEI SOVRACCARICHI } } MetaSchedulerReleaseTime PReleaseTime if ((--PReleaseTimer) 0) { if (PState idle) { 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

106 GESTIOE DEI SOVRACCARICHI private void SystemTickHandler (void) { if ((--MetaschedulerReleaseTimer) 0) { if (TaskIsSuspended (MetaschedulerId)) TaskResume (MetaschedulerId); else MetaschedulerOverrunCounter++; MetaschedulerReleaseTimer MetaschedulerReleaseTime; } } Scheduling di processi HRT 06

107 RMPO, DMPO: IIZIALIZZAZIOE void MetaschedulerAndTasksInitialization (void) { MetaschedulerReleaseTime /* [SystemTicks] */ SystemTickRate /* [SystemTicks/s] */ * MetaschedulerPeriod /* [µs] */ / ; 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

108 RMPO: RISULTATI SPERIMETALI C T C/T p P max min U 0.98 overrun handling policy: ASAP P missed deadline Idle Ready Running effetto domino sui processi di priorità inferiore Scheduling di processi HRT 08

109 RMPO: RISULTATI SPERIMETALI overrun handling policy: SKIP P no missed deadlline Idle Ready Running t.u. RTC ISR Metascheduler P S.O.: VxWorks Tool: WindView Scheduling di processi HRT 09

110 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

111 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

112 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

113 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

114 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

115 EDF: RISULTATI SPERIMETALI C T C/T P U 0.98 P Idle Ready Running RTC ISR Metascheduler P S.O.: VxWorks Tool: WindView Scheduling di processi HRT 5

Scheduling di processi HRT

Scheduling di processi HRT Scheduling di processi HRT Primo modello per la schedulazione di processi periodici N processi P1, P2,, PN indipendenti senza vincoli di precedenza, senza risorse condivise; ogni processo Pj (j = 1, 2,,N)

Dettagli

Riassunto di Sistemi in Tempo Reale LS

Riassunto di Sistemi in Tempo Reale LS Riassunto di Sistemi in Tempo Reale LS Silvia Cereda July 10, 2007 1 Schedulazione di processi periodici Condizione necessaria (ma non sufficiente) affinché un insieme di N processi sia schedulabile è

Dettagli

Algoritmi di scheduling - Parte 2

Algoritmi di scheduling - Parte 2 Algoritmi di scheduling - Parte 2 Automazione I 12/11/2013 Vincenzo Suraci STRUTTURA DEL NUCLEO TEMATICO ALGORITMO DEADLINE MONOTONIC PRIORITY ORDERING (DMPO) ALGORITMO TIMELINE SCHEDULING (TS) SCHEDULING

Dettagli

Schedulazione in RTAI

Schedulazione in RTAI Schedulazione in RTAI RTAI: modulo kernel rt_hello_km.c #include #include Thread real-time... Ciclo infinito RT_TASK task; Periodico... void task_routine() { while(1) { /* Codice

Dettagli

Sistemi Real-Time Ing. Rigutini Leonardo

Sistemi Real-Time Ing. Rigutini Leonardo Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dell informazione Università di Siena Sistema Real-Time Sistema in cui la correttezza non dipende solamente dai valori di output ma anche

Dettagli

Scheduling. Scheduling 14/12/2003 1/7

Scheduling. Scheduling 14/12/2003 1/7 Scheduling In un computer multiprogrammato più processi competono per l'uso della CPU. La parte di sistema operativo che decide quale processo mandare in esecuzione è lo scheduler. Batch OS: scheduling

Dettagli

RTAI e scheduling. Andrea Sambi

RTAI e scheduling. Andrea Sambi RTAI e scheduling Andrea Sambi Scheduling Linux Due politiche di scheduling priority-driven possibili. FIFO priorità uguali Processo 1 iniziato Processo 1: iterazione 1 Processo 1: iterazione 2 Processo

Dettagli

PROVA SCRITTA DI SISTEMI IN TEMPO REALE (18/7/2007)

PROVA SCRITTA DI SISTEMI IN TEMPO REALE (18/7/2007) PROVA SCRITTA DI SISTEMI IN TEMPO REALE (18/7/2007) PROBLEMA n. 1 L esecuzione del seguente insieme di processi periodici, tra loro indipendenti, è affidata ad un sistema di elaborazione monoprocessore:

Dettagli

Principi di Schedulazione in tempo reale

Principi di Schedulazione in tempo reale Principi di Schedulazione in tempo reale 1 Task in tempo reale Un task t i è una sequenza di processi in tempo reale τ ik ciascuno caratterizzato da q un tempo d arrivo r ik (r=release time, oppure a=arrival

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Lo scheduling. Tipici schedulatori

Lo scheduling. Tipici schedulatori Lo scheduling Un processo durante la sua evoluzione è o running o in attesa di un evento. Nel secondo caso trattasi della disponibilità di una risorsa (CPU, I/O, struttura dati, ecc.) di cui il processo

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU

Sistemi Operativi SCHEDULING DELLA CPU Sistemi Operativi SCHEDULING DELLA CPU Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling

Dettagli

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano scheduling Riedizione modifi cata delle slide della Prof. DI Stefano 1 Scheduling Alternanza di CPU burst e periodi di I/O wait a) processo CPU-bound b) processo I/O bound 2 CPU Scheduler Seleziona uno

Dettagli

Scheduling della CPU:

Scheduling della CPU: Coda dei processi pronti (ready( queue): Scheduling della CPU primo ultimo PCB i PCB j PCB k contiene i descrittori ( process control block, PCB) dei processi pronti. la strategia di gestione della ready

Dettagli

Scheduling. Lo scheduler è la parte del SO che si occupa di

Scheduling. Lo scheduler è la parte del SO che si occupa di Scheduling Lo scheduler è la parte del SO che si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L algoritmo di scheduling (la politica utilizzata dallo scheduler) ha impatto

Dettagli

Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base

Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base Scheduling Sistemi Operativi e Distribuiti A.A. 2-25 Bellettini - Maggiorini Concetti di base Il massimo utilizzo della CPU si ottiene mediante la multiprogrammazione Ogni processo si alterna su due fasi

Dettagli

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1 SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Algoritmi di scheduling

Algoritmi di scheduling Capitolo 2 Algoritmi di scheduling 2.1 Sistemi Real Time In un sistema in tempo reale (real time) il tempo gioca un ruolo essenziale. Le applicazioni di tali sistemi sono molteplici e di larga diffusione.

Dettagli

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata

Dettagli

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. E. Calabrese: Fondamenti di Informatica Problemi-1 Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. L'informatica

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

Scheduling della CPU Simulazione in linguaggio Java

Scheduling della CPU Simulazione in linguaggio Java Scheduling della CPU Simulazione in linguaggio Java Realizzato da: Amelio Francesco 556/001699 Di Matteo Antonio 556/000067 Viola Antonio 556/000387 Progetto di Sistemi Operativi Docente Giancarlo Nota

Dettagli

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Un sistema operativo è un insieme di programmi che consentono ad un utente di INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli

Dettagli

Algoritmi di scheduling

Algoritmi di scheduling Capitolo 3 Algoritmi di scheduling Come caso particolare di studio, di seguito è discussa in dettaglio la politica di scheduling del sistema operativo LINUX (kernel precedente alla versione 2.6). Sono

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

Dettagli

Sistemi di Controllo Real Time

Sistemi di Controllo Real Time Sistemi di Controllo Real Time Automazione 13/10/2015 Vincenzo Suraci STRUTTURA DEL NUCLEO TEMATICO SISTEMI REAL TIME CLASSIFICAZIONE DEI SISTEMI REAL TIME PARALLELISMO E PROGRAMMAZIONE CONCORRENTE SISTEMI

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

Scheduling della CPU

Scheduling della CPU Scheduling della CPU Scheduling della CPU Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: attivita` di allocazione della risorsa CPU ai processi. Scheduler

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 3-Schedulazione 1 Prerequisiti Concetto di media Concetto di varianza 2 1 Introduzione Come sappiamo, l assegnazione della CPU ai processi viene gestita dal nucleo, attraverso

Dettagli

Sistemi Operativi Kernel

Sistemi Operativi Kernel Approfondimento Sistemi Operativi Kernel Kernel del Sistema Operativo Kernel (nocciolo, nucleo) Contiene i programmi per la gestione delle funzioni base del calcolatore Kernel suddiviso in moduli. Ogni

Dettagli

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2 Computazione multi-processo Avere più processi allo stesso momento implica/richiede Processi e Threads Pt. 2 Concorrenza ed efficienza Indipendenza e protezione dei dati ma deve prevedere/permettere anche:

Dettagli

Low Power Scheduling per Sistemi Real Time

Low Power Scheduling per Sistemi Real Time Low Power Scheduling per Sistemi Real Time Corso di Sistemi Real Time A.A. 2007-08 Ing. Giordano Kaczynski Sistemi Real Time 1 Introduzione Il consumo di energia nei sistemi portatili negli ultimi anni

Dettagli

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse

Dettagli

Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi.

Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi. Concetti fondamentali Scheduling della CU Introduzione allo scheduling Uno degli obbiettivi della multiprogrammazione è quello di massimizzare l utilizzo delle risorse e in particolare della CU er raggiungere

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli

Ottimizzazione delle interrogazioni (parte I)

Ottimizzazione delle interrogazioni (parte I) Ottimizzazione delle interrogazioni I Basi di Dati / Complementi di Basi di Dati 1 Ottimizzazione delle interrogazioni (parte I) Angelo Montanari Dipartimento di Matematica e Informatica Università di

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

GESTIONE INFORMATICA DEI DATI AZIENDALI GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming

Dettagli

Ottimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni

Ottimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni Ottimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni CARLO MANNINO Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica

Dettagli

Processi e Thread. Scheduling (Schedulazione)

Processi e Thread. Scheduling (Schedulazione) Processi e Thread Scheduling (Schedulazione) 1 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L

Dettagli

Sistemi Operativi a.a. 2004-2005. Esercizi - 2

Sistemi Operativi a.a. 2004-2005. Esercizi - 2 Sistemi Operativi a.a. 004-005 Esercizi - Renzo Davoli Alberto Montresor. I diritti di memorizzazione elettronica, di riproduzione e di adattamento parziale o totale (compresi microfilm e copie fotostatiche)

Dettagli

Esercitazione E6 Esercizi d esame

Esercitazione E6 Esercizi d esame Esercitazione E6 Esercizi d esame Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 E6-1 Memoria virtuale Si consideri un sistema a memoria virtuale con indirizzi a 32 bit, indirizzi fisici a 20

Dettagli

Scheduling della CPU

Scheduling della CPU Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux 6.1 Sistemi multiprocessori simmetrici Fin qui si sono trattati i problemi di scheduling

Dettagli

SCHEDULATORI DI PROCESSO

SCHEDULATORI DI PROCESSO Indice 5 SCHEDULATORI DI PROCESSO...1 5.1 Schedulatore Round Robin...1 5.2 Schedulatore a priorità...2 5.2.1 Schedulatore a code multiple...3 5.3 Schedulatore Shortest Job First...3 i 5 SCHEDULATORI DI

Dettagli

SCHEDULING SCHEDULING

SCHEDULING SCHEDULING Corso di Laurea Triennale in INGEGNERIA GESTIONALE Anno Accademico 2012/13 Prof. Davide GIGLIO 1 INDICE Esempio Introduttivo Generalità sui problemi di scheduling SINGLE MACHINE SPT (shortest processing

Dettagli

IL SISTEMA OPERATIVO

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO... è l insieme dei programmi che rende agevole l uso dell hardware, mascherando le caratteristiche delle risorse fisiche (interfaccia) gestisce le risorse fisiche ottimizzandone l

Dettagli

J. Assfalg Appunti di Sistemi Operativi

J. Assfalg Appunti di Sistemi Operativi Multiprogrammazione J. Assfalg Appunti di Sistemi Operativi La multiprogrammazione nasce come un metodo per massimizzare l'uso della CPU piuttosto che come uno strumento per fornire un miglior servizio

Dettagli

Schedulazione di attività in presenza di attività interrompibili

Schedulazione di attività in presenza di attività interrompibili Schedulazione di attività in presenza di attività interrompibili Maria Silvia Pini Resp. accademico: Prof.ssa Francesca Rossi Università di Padova Attività FSE DGR 1102/2010 La gestione dell informazione

Dettagli

AND NON CAP WEIGHTED PORTFOLIO

AND NON CAP WEIGHTED PORTFOLIO SOCIALLY RESPONSIBLE INVESTMENT AND NON CAP WEIGHTED PORTFOLIO Forum per la Finanza Sostenibile Milano 30 giugno 2009 Giulio Casuccio Head of Quantitatives Strategies and Research Principi ed obiettivi:

Dettagli

Introduzione ai tipi di dato astratti: applicazione alle liste

Introduzione ai tipi di dato astratti: applicazione alle liste Universitàdegli Studi di L Aquila Facoltàdi Scienze M.F.N. Corso di Laurea in Informatica Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2005/2006 Introduzione ai tipi di dato astratti: applicazione

Dettagli

Architettura di un sistema di calcolo

Architettura di un sistema di calcolo Richiami sulla struttura dei sistemi di calcolo Gestione delle Interruzioni Gestione della comunicazione fra processore e dispositivi periferici Gerarchia di memoria Protezione. 2.1 Architettura di un

Dettagli

Base di dati e sistemi informativi

Base di dati e sistemi informativi Base di dati e sistemi informativi Una base di dati è un insieme organizzato di dati opportunamente strutturato per lo svolgimento di determinate attività La base di dati è un elemento fondamentale per

Dettagli

MODELLISTICA DI IMPIANTI E SISTEMI 2

MODELLISTICA DI IMPIANTI E SISTEMI 2 MODELLISTICA DI IMPIANTI E SISTEMI 2 Indice 1 Dalla traccia al modello 2 1.1 BAS................................................ 4 I Traccia Si consideri il problema della gestione efficiente dei servizi

Dettagli

La schedulazione. E.Mumolo mumolo@units.it

La schedulazione. E.Mumolo mumolo@units.it La schedulazione E.Mumolo mumolo@units.it Concetti fondamentali Multiprogrammazione: esecuzione simultanea di più sequenze di esecuzione Pseudo-parallelismo su una sola CPU Esecuzione parallela su più

Dettagli

La Metodologia adottata nel Corso

La Metodologia adottata nel Corso La Metodologia adottata nel Corso 1 Mission Statement + Glossario + Lista Funzionalià 3 Descrizione 6 Funzionalità 2 Schema 4 Schema 5 concettuale Logico EA Relazionale Codice Transazioni In PL/SQL Schema

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione SISTEMI OPERATIVI (parte prima - gestione dei processi) Tra i compiti di un sistema operativo sicuramente troviamo i seguenti: Gestione dei processi Gestione della memoria Gestione del file-system Ci occuperemo

Dettagli

Sistemi Operativi (modulo di Informatica II) I processi

Sistemi Operativi (modulo di Informatica II) I processi Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto

Dettagli

Sistemi di Automazione Industriale

Sistemi di Automazione Industriale Introduzione ai PLC Sistemi di Automazione Industriale Ridurre e/o eliminare il ruolo dell operatore umano Ogni sistema di automazione prevede: Sistema Controllato; è un generatore di eventi non prevedibili

Dettagli

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza Il problema di flusso di costo minimo (MCF) Dati : grafo orientato G = ( N, A ) i N, deficit del nodo i : b i (i, j) A u ij, capacità superiore (max quantità di flusso che può transitare) c ij, costo di

Dettagli

Algoritmi Priority-Driven RT. Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di Bergamo

Algoritmi Priority-Driven RT. Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di Bergamo Algoritmi Priority-Driven RT Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di Bergamo 2 Algoritmi Real Time Earliest Due Date (statico) Seleziona il task con la deadline relativa più

Dettagli

La Gestione delle risorse Renato Agati

La Gestione delle risorse Renato Agati Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File

Dettagli

Il descrittore di processo (PCB)

Il descrittore di processo (PCB) Il descrittore di processo (PC) Il S.O. gestisce i processi associando a ciascuno di essi un struttura dati di tipo record detta descrittore di processo o Process Control lock (PC) Il PC contiene tutte

Dettagli

Calcolatori: Algebra Booleana e Reti Logiche

Calcolatori: Algebra Booleana e Reti Logiche Calcolatori: Algebra Booleana e Reti Logiche 1 Algebra Booleana e Variabili Logiche I fondamenti dell Algebra Booleana (o Algebra di Boole) furono delineati dal matematico George Boole, in un lavoro pubblicato

Dettagli

La riforma del servizio di distribuzione del

La riforma del servizio di distribuzione del CReSV Via Röntgen, 1 Centro Ricerche su Sostenibilità e Valore 20136 Milano tel +39 025836.3626 La riforma del servizio di distribuzione del 2013 gas naturale In collaborazione con ASSOGAS Gli ambiti territoriali

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad

Dettagli

Java Virtual Machine

Java Virtual Machine Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina

Dettagli

J. Assfalg Appunti di Sistemi Operativi

J. Assfalg Appunti di Sistemi Operativi Lo scheduler di Linux (kernel 2.4) La politica di scheduling di Linux si propone il raggiungimento dei seguenti obiettivi (molti dei quali sono in contrasto): timesharing gestione di priorità dinamiche

Dettagli

Lo scheduler di UNIX (1)

Lo scheduler di UNIX (1) Lo scheduler di UNIX (1) Lo scheduling a basso livello è basato su una coda a più livelli di priorità 1 Lo scheduler di UNIX (2) Si esegue il primo processo della prima coda non vuota per massimo 1 quanto

Dettagli

Sistemi Operativi. 5 Gestione della memoria

Sistemi Operativi. 5 Gestione della memoria Gestione della memoria Compiti del gestore della memoria: Tenere traccia di quali parti della memoria sono libere e quali occupate. Allocare memoria ai processi che ne hanno bisogno. Deallocare la memoria

Dettagli

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling Concetti fondamentali L obiettivo della multiprogrammazione è di avere processi sempre in esecuzione al fine di

Dettagli

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. La nozione di multiprogrammazione prevede la possibilità di

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

Dettagli

Ottimizzazione Multi Obiettivo

Ottimizzazione Multi Obiettivo Ottimizzazione Multi Obiettivo 1 Ottimizzazione Multi Obiettivo I problemi affrontati fino ad ora erano caratterizzati da una unica (e ben definita) funzione obiettivo. I problemi di ottimizzazione reali

Dettagli

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software

Dettagli

Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica prof. Ing. Corrado Santoro A.A. 2010-11 Architettura di un sistema operativo Progr 1 Progr 2 Progr

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Più processori uguale più velocità?

Più processori uguale più velocità? Più processori uguale più velocità? e un processore impiega per eseguire un programma un tempo T, un sistema formato da P processori dello stesso tipo esegue lo stesso programma in un tempo TP T / P? In

Dettagli

12. Evoluzione del Software

12. Evoluzione del Software 12. Evoluzione del Software Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 12. Evoluzione del Software 1 / 21 Evoluzione del Software - generalità Cosa,

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Il sistema operativo TinyOS

Il sistema operativo TinyOS tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Domenico Cotroneo candidato Giovanni Chierchia Matr. 534 / 804 ::. Obiettivi del lavoro di tesi Studio del sistema operativo TinyOS Studio

Dettagli

CPM - PERT CPM - PERT. Rappresentazione di un progetto. Gestione di un progetto. Critical Path Method Project Evaluation and Review Technique

CPM - PERT CPM - PERT. Rappresentazione di un progetto. Gestione di un progetto. Critical Path Method Project Evaluation and Review Technique CPM - PERT CPM - PERT CPM e PERT sono metodologie per la gestione di progetti composti da più attività in cui esistano relazioni di precedenza. Critical Path Method Project Evaluation and Review Technique

Dettagli

Monitor. Introduzione. Struttura di un TDA Monitor

Monitor. Introduzione. Struttura di un TDA Monitor Monitor Domenico Cotroneo Dipartimento di Informatica e Sistemistica Introduzione E stato introdotto per facilitare la programmazione strutturata di problemi in cui è necessario controllare l assegnazione

Dettagli

Nozione di algoritmo. Gabriella Trucco

Nozione di algoritmo. Gabriella Trucco Nozione di algoritmo Gabriella Trucco Programmazione Attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su particolari informazioni (dati), allo scopo di risolvere

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere. UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d

Dettagli

Sequence Diagram e Collaboration Diagram

Sequence Diagram e Collaboration Diagram Sequence Diagram e Collaboration Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Sommario Interaction

Dettagli

Il costrutto monitor [Hoare 74]

Il costrutto monitor [Hoare 74] Il monitor 1 Il costrutto monitor [Hoare 74] Definizione: Costrutto sintattico che associa un insieme di operazioni (entry, o public) ad una struttura dati comune a più processi, tale che: Le operazioni

Dettagli

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI)

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI) COMUNE DI RAVENNA Il sistema di valutazione delle posizioni del personale dirigente GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI) Ravenna, Settembre 2004 SCHEMA DI SINTESI PER LA

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

Dettagli

TECNICHE DI SIMULAZIONE

TECNICHE DI SIMULAZIONE TECNICHE DI SIMULAZIONE INTRODUZIONE Francesca Mazzia Dipartimento di Matematica Università di Bari a.a. 2004/2005 TECNICHE DI SIMULAZIONE p. 1 Introduzione alla simulazione Una simulazione è l imitazione

Dettagli

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi. 1 Mattia Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2008/09 1 c 2009 M.. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Dettagli

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo Il Sistema Operativo Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo ... ma Cos'è un S.O.? un PROGRAMMA!... ma Cos'è un programma? PROGRAMMA: 1. algoritmo sequenza

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Le Infrastrutture Software ed il Sistema Operativo

Le Infrastrutture Software ed il Sistema Operativo Le Infrastrutture Software ed il Sistema Operativo Corso di Informatica CdL: Chimica Claudia d'amato claudia.damato@di.uniba.it Il Sistema Operativo (S0) (Inf.) E' l'insieme dei programmi che consentono

Dettagli

2. Leggi finanziarie di capitalizzazione

2. Leggi finanziarie di capitalizzazione 2. Leggi finanziarie di capitalizzazione Si chiama legge finanziaria di capitalizzazione una funzione atta a definire il montante M(t accumulato al tempo generico t da un capitale C: M(t = F(C, t C t M

Dettagli

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente. Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito

Dettagli