1 Concetti Introduttivi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "1 Concetti Introduttivi"

Transcript

1 1 Concetti Introduttivi 1.1 Real time Esistono vari livelli di real time: Hard si garantisce che ogni job venga eseguito rigorosamente entro un certo lasso di tempo (esempio: comandi per il movimento di un braccio robotico). Se la risposta non arriva entro tale tempo la si considera non corretta Soft non si garantisce che ogni job sia eseguito entro un certo lasso di tempo ma che verrà eseguito il prima possibile (Esempio: decodifica MP3) Firm una via di mezzo tra Hard e Soft: alcuni job rispettano l hard real time, altri semplicemente il soft real-time. 1.2 Task e Job task processo nella fase attiva: è una sequenza di istruzioni che deve essere eseguita senza soluzioni di continuità job frammento di un task Figura 1: Task e job 1

2 1.3 Constraints (vincoli) Si possono avere tre diversi tipi di vincoli da rispettare nell ambito del real time: Timing naturalmente i più importanti Precedenze derivanti dalla priorità di un task rispetto ad un altro Resources derivanti dalla condivisione di risorse comuni DAG (Direct Activity Graph) Sono grafi che permettono di rappresentare le precedenze. Figura 2: Esempio di DAG Nell esempio J 3 deve essere eseguito prima di J 2 e J 5, J 1 prima di J 3 e J 4. Si possono avere due tipi di precedenze: precedenza immediata J 1 J 3 precedenza non immediata J 1 J Uso dei semafori I semafori servono a bloccare una risorsa condivisa. Nel caso in cui si ha un processo produttore ed uno consumatore che si scambiano le informazioni attraverso la risorsa condivisa si applica la regola dei semafori affinché il processo consumatore non acceda alla risorsa prima che il processo produttore ne abbia completato la modifica. L uso dei semafori si attua attraverso l uso delle istruzioni WAIT e SIGNAL. 2

3 1.4 Lo Schedule Poichè nello stato di ready ci potrebbe essere più di un job pronto per essere eseguito c è un elemento: lo schedule, che stabilisce quale job passerà nello stato di esecuzione attraverso l operazione di dispatch. Lo schedule opera secondo un algoritmo di scheduling. Dato un insieme di task da schedulare {J 1,..., J n } la definizione formale di schedule è la seguente: σ : R + {1,..., n} t R + t 1, t 2 : t [t 1, t 2 ) t [t 1, t2) σ(t ) = σ(t) se uno schedule è eseguibile si dice che esso è feasible (fattibile), in tal caso Figura 3: Significato della definizione formale di schedule (σ = 0:idle) il set di task {J 1,..., J n } si dice schedulabile. 3

4 1.5 Tassonomia degli algoritmi di scheduling preemptive se sopraggiunge un task avente priorità maggiore di quello in esecuzione quest ultimo verrà interrotto non preemptive non esiste la possibilità di interrompere un task in esecuzione static le decisioni sono basate su parametri fissi assegnati ai task prima della loro attivazione dynamic i parametri possono variare durante l evoluzione del sistema off line lo scheduling è effettuato prima dell attivazione dei task on line lo scheduling è effettuato ad ogni attivazione o termine di un task optimal lo scheduling minimizza una qualche funzione di costo euristic tende a minimizzare ma non garantisce clairvoyant (chiaroveggenza) prevede l arrivo di ogni nuovo task 4

5 Guarantee-based Algoritmi per hard real time. Devono garantire la feasibility ponendosi nell ottica del Worst Case Scenario statici algoritmi sofisticati ma lo schedule non supporta cambiamenti dinamici le ipotesi che portano ai WCEX i devono essere corrette altrimenti si rischia l effetto domino. Figura 4: Effetto domino: diagramma di Gant Lo svantaggio di questo tipo di algoritmo è che un task potrebbe essere inutilmente sacrificato dinamici test di accettazione on-line J {J t } è feasible Figura 5: Schema di un algoritmo guarantee-based dinamico Best-effort Algoritmi per il soft real time. Fanno del loro meglio ma non garantiscono la feasibility dello schedule un task può anche essere abortito in fase di esecuzione Mediamente tali algoritmi si comportano meglio dei guarantee-based algorithms perché non presuppongono lo scenario del caso peggiore, quindi un task è rigettato solo se all atto pratico non si riesce a portarlo a termine 5

6 Based on imprecise computation barattano l accuratezza computazionale per il soddisfacimento dei requisiti temporali. Ogni task τ i è suddiviso nelle sue due componenti: mandatory M i parte del task che deve essere eseguita in hard real time optional O i parte del task che deve essere eseguita in soft real time Figura 6: Algoritmo basato su imprecise computation: diagramma di Gant σ i : CPU time dedicata ad O i dallo schedule (Parte opzionale del task eseguita) Errore ɛ i = O i σ i peso di j i : w i errore medio ɛ = n w i ɛ i i=1 Schedule Feasible : ogni Mi viene completato prima di d i (non occorre che anche O i venga completato prima della deadline) Precise : ɛ = 0 6

7 1.6 Metriche Figura 7: Metriche fondamentali arrival time a i start time s i computation time C i tempo in cui il task è in escuzione senza interruzione di tempo. Tale parametro solitamente è stimato facendo riferimento al WCET (Worst Case Estimation Time) finishing time f i dead line assoluta d i deadline relativa D i = d i a i lateness (latenza) L i = f i d i se tale parametro assume valore positivo vuol dire che c è stato uno sforo nella deadline tardiness T i = max(l i, 0) Ci dice di quanto si è attardato un task se quest ultimo si è attardato laxity (lassità) x i = d i a i C i il gioco temporale che puù avere un task. residual WCET(t) tempo di computazione rimasto in funzione del tempo. Utile nel caso in cui il task sia attualmente in esecuzione Figura 8: residual WCET Possiamo quindi ridefinire anche la lassità come l i (t) = d i t W CET (t) criticalness (criticità) value una sorta di criticità relativa: criticità degli altri task il peso del task nel contesto delle 7

8 average response time t r = 1 n n (f i a i ) i=1 total completion time t c =max(f i ) min(a i ) weighted sum of completion times t w = maximum lateness L max =max(f i d i ) n w i f i maximum number of late tasks N late = miss(f i ) con miss(f i ) = i=1 { 0 sefi < d i 1 altrimenti 8

9 Utility Function Non Real Time Utility Function Soft Real Time Utility Function On Time Utility Function Firm Real Time 1.7 Utility functions Le performances di un algoritmo di scheduling possono essere misurate da parametri cumulativi n V = v(f i ) i=1 9

10 1.8 Anomalie Teorema 1 (Graham 76) Se un insieme di task è schedulato ottimamente con un assegnamento di priorità, un numero fisso di processori, tempi di esecuzione fissi ed assegnamento di precedenze, allora aumentare il numero di processori, ridurre i tempi di esecuzione o rilassare i vincoli di precedenza può aumentare la durata dello schedule Figura 9: Caso in cui minimizzare L max non minimizza N late Figura 10: Caso in cui, in presenza di condivisione di risorse, un processore veloce peggiora la schedulabilità Figura 11: Caso in cui, in presenza di condivisione di risorse, il minor tempo di arrivo di un task condiziona la schedulabilità 10

11 2 Scheduling Non real time 2.1 FCFS First Come First Served Assegna la CPU ai task in base al loro ordine di arrivo. non preemptive dinamico on line best effort È impredicibile: dato un task set, i tempi di risposta dipendono dalla cronologia degli arrivi. Esempio 1: T R 1 = 20 T R 2 = 26 T R = 24 T R 3 = 26 Figura 12: Scheduling di tipo FCFS: esempio 1 Esempio 2: T R 1 = 26 T R 2 = 8 T R = 12 T R 3 = 2 Figura 13: Scheduling di tipo FCFS: esempio 2 11

12 2.2 SJF Shorted Job First Seleziona il task con il più breve tempo di computazione statico (i C i sono costanti) minimizza il tempo di risposta medio Figura 14: Scheduling di tipo SJF visto che f 2 = f 2 e f 1 < f 1 si ha che f 1 + f 2 < f 1 + f 2 quindi T R (SJF) = 1 n (f i a i ) 1 n (f i a i ) = T R (σ) SJF e Real Time: benché minimizzi il tempo di risposta medio, non è ottimale nel senso della feasibility Figura 15: SJF: Scheduling non feasible 12

13 2.3 PS Priority Scheduling Ad ogni task è associato un valore di priorità. Viene selezionato il task con la maggiore priorità. A parità di priorità di adotta il FCFS o il RR. Preemptive On Line Starvation: i task a bassa priorità rishiano di non andare mai in esecuzione AGING: le priorità crescono con i tempi di attesa PS è una generalizzazione di SJF e FCFS. Lo schema seguente mostra quando si ricade in tali casi PS = Pi 1 C i SJF P i 1 a i FCFS 13

14 2.4 RR Round Robin La coda è gestita con una politica FCFS ma ogni task deve essere sospeso e rimesso in coda allo scadere di un quanto di tempo (Q) Figura 16: Round Robin T R i n Q Ci Q = n C i dove n è il numero di task da schedulare Time Sharing ogni task ha a disposizione una CPU n volte più lenta se Q > max(c i ) FCFS δ: tempo necessario al cambiamento di contesto Figura 17: Cambiamento di contesto nel Round Robin T R i n (Q + δ) Ci Q = n C i ( Q + δ Q ) se Q δ T R i = 2 n C i il tempo di computazione di un task si raddoppia 14

15 2.5 Code a priorità diversa Ci sono più code di processi con priorità decrescente gestite con una politica Round Robin Figura 18: Code a priorità diversa 1. lo scheduler prende il primo task nella coda RQ k non vuota ed a maggiore priorità e gli assegna la CPU per un quanto Q 2. se il task termina o si blocca prima di Q si torna ad (1) 3. al termine di Q il task va in RQ k+1 4. all attivazione o allo sblocco il task va in RQ 0 5. periodicamente processi a lungo in coda possono essere scalati verso l alto i task partono tutti dalla maggiore priorità i task brevi terminano probabilmente più presto I/O-bound task è sempre eseguito subito CPU-bound task può andare nell ultima coda in caso di sovraccarico i task CPU-bound vanno a turno in priorità massima 15

16 3 Scheduling Real time 3.1 Scheduling di task Aperiodici Sincrono Asincrono Preemptive Non preemptive Task EDD EDF Treee search indipendenti O(n log(n)) O(n 2 ) O(n n!) Vincoli sulla LDF EDF* SPRING precedenza o O(n 2 ) O(n 2 ) O(n 2 ) sulle risorse Euristico Tabella 1: Algoritmi di scheduling per task aperiodici 16

17 3.1.1 EDD Earliest Due Date L obiettivo è minimizzare L max 1 processore i tasks sono sincroni Teorema 2 (Jackson 74) Dato un insieme di tasks indipendenti, ogni algoritmo che li manda in esecuzione con ordinamento crescente rispetto alle deadline relative minimizza il tempo di latenza massimo Figura 19: EDD: esempio σ : L max AB = f B d B ; σ : L max AB = max(l A, L B ) Dimostriamo che L max (σ) è ottima: per ciò che riguarda σ avere che: possiamo se L B L A L max AB = f B d B < f B d B = L max AB se L A L B L max AB = f A d A < f B d B = L max AB quindi si dimostra quanto si voleva La complessità dell algoritmo è uguale a quella di un ordinamento di n elementi: O(n log(n)) 17

18 Esempio 1: Test di garanzia J 1 J 2 J 3 J 4 J 5 C i d i Figura 20: EDD Esempio 1 L max = L 4 = 1 Esempio 2 J 1 J 2 J 3 J 4 J 5 C i d i Figura 21: EDD Esempio 2 L max = L 4 = 2 Il task set è dunque schedulabile se sono verificate le condizioni: i {1,..., n} i C k d i dove i è l indice prodotto da EDD (tasks ordinati secondo le loro deadline assolute) k=1 18

19 3.1.2 EDF Earliest Deadline First L algoritmo opera in modo identico a EDD (l obiettivo è sempre la minimizzazione di L max ) se non per il fatto che in questo caso si ha la preemption Teorema 3 (Horn 74) Dato un insieme di tasks indipendenti e con tempi di arrivo arbitrari, ogni algoritmo che ad ogni istante esegue quello con la deadline assoluta più imminente minimizza il tempo di latenza massimo Esempio 1: Test di garanzia J 1 J 2 J 3 J 4 J 5 a i C i d i Figura 22: EDF: esempio 1 se c i (t) è il tempo di esecuzione residuo di J i all istante t e se i task sono indicizzati secondo EDF allora f i = i c k (t) k=1 il task set è allora schedulabile se sono verificate le: i {1,..., n} i c k (t) < d i k=1 19

20 Non preemptive scheduling Si ricade in questo caso se EDF non dovesse avere a disposizione la preemption della CPU Esempio J 1 J 2 a i 0 1 Trovare uno scheduling feasible e minimizzare la latenza mas- C i 4 2 d i 7 5 Figura 23: EDF senza preemption sima diviene NP-HARD. Se EDF è non preemptive allora non è ottimale 20

21 3.1.3 Pruning Search Trees È la tecnica più generale possibile 1 processore no preemption feasible Esempio J 1 J 2 J 3 J 4 a i C i d i Il grafo da costruire ha n! foglie Figura 24: Tree Search Esempio 1 Regole di potatura Algoritmo di Bratley ( 71): smettere di cercare se si è già trovato (depth first) potare il ramo sul quale si è mancata una deadline 21

22 Scheduling feasible 1: J 4, J 2, J 3, J 1 Figura 25: Tree Search: scheduling feasible 1 Scheduling feasible 2: J 4, J 3, J 2, J 1 Figura 26: Tree Search: scheduling feasible 2 22

23 3.1.4 LDF Latest Deadline First L obiettivo, ancora una volta, è minimizzare L max ma in presenza di vincoli di precedenza 1 processore tasks sincroni precedenze complessità O(n 2 ) Teorema 4 (Lawler 73) Produrre lo schedule risalendo dall ultimo task verso il primo. Ad ogni passo selezionare il task con la deadline più lontana fra quelli che nel DAG delle precedenze non hanno più successori Esempio J 1 J 2 J 3 J 4 J 5 J 6 C i d i Figura 27: LDF: DAG delle precedenze Figura 28: LDF schedula un task set che EDF non riesce a schedulare 23

24 3.1.5 EDF* (EDF con vincoli di precedenza) EDF* nasce perché applicare EDF (scegliere il task con la deadline più vicina fra gli elegibili) non è ottimo per L max sotto vincoli di precedenza 1 processore preemption precedenze minimizza L max Teorema 5 (Chetto, Silly, Bouchentouf 90) Lo scheduling di n tasks con vincoli di precedenza e tempi di attivazione dinamici può essere risolto in tempo polinomiale solo se i tasks sono interrompibili Si tratta in pratica di operare la trasformazione J J dove J non è altro che J schedulabile nel rispetto dei vincoli di precedenza. Visto che, secondo l albero delle precedenze, ogni task non può iniziare prima di un suo predecessore e non può interrompere un suo successore prima dobbiamo 1. modificare i tempi di rilascio (a i ) Dato il vincolo di precedenza J a J b si ha che { sb a b s b a a + C a ossia a b a b = max(a b, a a + C a ) Figura 29: EDF*: tempi di rilascio dei tasks 24

25 Algoritmo (O(n 2 )) (a) Per ogni nodo iniziale del DAG delle precedenze a i = a i (b) Se esiste un task il cui tempo di rilascio non è stato modificato, ma lo sono stati i tempi di rilascio di tutti i suoi propedeutici allora selezionarlo come J i altrimenti stop (c) a i = max[a i, max(a h + C h : J h J i )] (d) salta ad (1a) 2. modificare le deadlines (d i ) Sempre secondo il vincolo di precedenza J a J b si ha che { fa d a f a d b C b ossia d a d a = min(d a, d b C b ) Algoritmo (O(n 2 )) Figura 30: EDF*: deadlines dei tasks (a) Per ogni nodo terminale nel DAG delle precedenze d i = d i (b) Se esiste un task la cui deadline non è stata modificata, ma lo sono state tutte le deadline dei suoi immediati successori allora selezionarlo come J i altrimenti stop (c) d i = min[d i, min(d h C h : J i J h )] (d) salta ad (2a) Spring Algoritmo euristico di complessità n 2 25

26 3.2 Scheduling di task Periodici Concetti fondamentali Con la parola task, nel campo dei periodici, identifichiamo l intero ciclo di esecuzione mentre con la parola job identifichiamo il frammento di esecuzione i-esimo. Facciamo le seguenti assunzioni: Figura 31: Scheduling task periodici: tassonomia fondamentale 1. T i costante 2. C i costante 3. D i costante = T i 4. non ci sono né precedenze né risorse esclusive Che equivale a dire che, dato un task τ i (φ i, C i, T i ) r i,k = φ i + (k 1) T i d i,k = r i,k + T i = φ i + k T i 26

27 Altri parametri response time di un job R i,k = f i,k r i,k critical instant di un task: istante in cui il rilascio di un task produrrebbe il maggior tempo di risposta critical time zone di un task: intervallo fra il critical instant e il response time della corrispondente richiesta del task relative release jitter di un task: massima deviazione di start time di due job consecutivi RRJ i = max k (s i,k r i,k ) (s i,k 1 r i,k 1 ) absolute release jitter di un task: massima deviazione di start time fra tutti i job ARJ i = max k (s i,k r i,k ) min k (s i,k r i,k ) relative finishing jitter di un task: massima deviazione di finishing time di due job consecutivi RF J i = max k (f i,k r i,k ) (f i,k 1 r i,k 1 ) absolute finishing jitter di un task: massima deviazione di finishing time fra tutti i job AF J i = max k (f i,k r i,k ) min k (f i,k r i,k ) 27

28 3.2.2 RM Rate monotonic Ad ogni task è associata una priorità fissa proporzionale al suo rate (frequenza) Figura 32: Rate Monotonic: Diagramma di Gant preemptive: il task correntemente in esecuzione è interrotto dall arrivo di uno a più elevato rate Teorema 6 (Liv, Layland 73) dato un task set Γ, se RM non può schedulare Γ, allora nessun altro algoritmo a priorità fissa può farlo 28

29 3.2.3 Processor utilization factor (U) Ogni task utilizza la CPU per una frazione di tempo data da: per cui la misura di carico totale è U i = C i T i U = n i=1 C i T i Ovviamente se U > 1 CPU overloaded: Γ non schedulabile ma U 1 non è condizione sufficiente per garantire la schedulabilità di Γ tramite RM Figura 33: RM: U 1 ma Γ non schedulabile U 1 = 3 6 U 2 = 4 9 U = = < 1 Quindi, come volevasi dimostrare U 1, non è una condizione sufficiente per garantire la schedulabilità di Γ Utilization Upper Bound (U UB ) Figura 34: Utilization Upper Bound: Esempio U 1 = 3 6 U 2 =

30 U = U 1 + U 2 = = Se aumenta C 1 o C 2 allora τ 2 manca la deadline. Quindi possiamo dire che U U UB cioè che U trovato è il massimo fattore di utilizzo della CPU relativamente a quel task set e all algoritmo di scheduling utilizzato: U UB (Γ, A) quindi, dato un algoritmo A, se U > U UB (Γ, A) allora Γ non è schedulabile da A. Fissiamo A (l algoritmo di scheduling): UUB A (Γ). Sarebbe interessante sapere se esiste un UUB A più piccolo di tutti e per quale Γ esso si ottiene: U LUB A. Infatti { U A (Γ) ULUB A Γ certamente schedulabile da A U A (Γ) > U A LUB Nulla può dirsi Vediamo quanto vale U LUB per il Rate Monotonic: Teorema 7 (Liv,Layland 73) Il valore del Least Upper Bound per l algoritmo Rate Monotonic può essere espresso dalla seguente formula U RM LUB = n (2 1 n 1) dove n rappresenta il numero di task schedulati da Rate Monotonic lim U RM n + LUB(n) = ln (2) = 0, 69 30

31 Conclusioni Dato un task set Γ di n tasks da schedulare con priorità fissa, allora: 1. se è schedulabile da un qualche algoritmo, allora lo è sicuramente anche per RM 2. se U(Γ) U RM LUB allora Γ è sicuramente schedulabile da RM In pratica U(Γ) 0, 69 è una condizione sufficiente affinché il task-set sia schedulabile con RM (non esiste una condizione necessaria). Statisticamente anche task-set con U(Γ) = 0, 88 è schedulabile con RM. Figura 35: Significato grafico del fattore U LUB per RM 31

32 3.2.5 EDF Earliest Deadline First Si tratta di assegnare la CPU al job con la deadline assoluta più vicina dinamico la CPU può essere utilizzata al 100 % priorità dinamica Ricordando che enunciamo il seguente teorema: Teorema 8 (Liv, Layland 73) Figura 36: EDF: confronto con RM Γ schedulabile U(Γ) 1 U EDF LUB = 1 quindi, visto che EDF (priorità variabile) è migliore di RM (priorità fissa) nel senso di U LUB sarà migliore di tutti gli algoritmi a priorità fissa. 32

33 Esempio φ C T τ τ U = , 97 > ln(2) Figura 37: RM vs. EDF: scheduling secondo RM Caratteristiche di RM: Figura 38: RM vs. EDF: scheduling secondo EDF semplice da implementare più predicibile in caso di sovraccarico Il motivo per cui si studia ancora RM è dovuto al fatto che, nel caso reale, in cui si hanno task set con U > 1 ci saranno dei task che saranno comunque eseguiti: quelli con priorità fissa maggiore. Caratteristiche di EDF: più efficiente meno preemption EDF comporta meno preemption di RM visto che i task a priorità minore vengono interrotti meno volte da quelli a priorità maggiore. 33

34 3.2.6 Task periodici con D < T Figura 39: Task periodici con D < T DM Deadline Monotonic 1982 Ad ogni istante si seleziona il task con minore D (è molto simile a RM se si sostituisce D con T) P i 1 D i statico Esempio: τ 1 τ 2 C 2 3 D 3 6 T 10 8 Ridefiniamo U per DM: Figura 40: Deadline Monotonic: esempio U DM = n i=1 C i = 2 D i = 1, 16 > 1 6 cioè U DM sovrastima il carico di lavoro k Response time (R i,k = f i,k r i,k ) τ τ Per k = 1 (corrispondente all istante 5 della timeline di τ 2 ) si ha il critical instant: l istante in cui il rilascio del task produce il maggior tempo di risposta. 34

35 Calcolo delle interferenze L interferenza I i sul task τ i dovuta alla preemption dei tasks a maggiore priorità, può essere espressa attraverso la formula I i = D k <D i C k Per verificare dunque che R i D i si deve calcolare R i = C i + I i e dunque I i Figura 41: esempio di interferenza Definiamo interferenza di τ k su τ i nell intervallo [0, R i ] Ri I ik = C k dove l operazione x sta ad indicare il primo intero maggiore di x. Interferenze dei task a maggiore priorità su τ i i 1 I i = k=1 T k Ri T k C k quindi i 1 R i = C i + k=1 Ri T k C k 35

36 Esempio Deadline Monotonic Dato il set di task nella seguente tabella C T D Priorità τ Alta τ τ τ Bassa verificare che R 4 D 4 (è come verificare la schedulabilità visto che il task τ 4 è quello a minore priorità) Figura 42: esempio di calcolo delle interferenze: diagramma di Gant Cominciamo col cercare il tempo di risposta nel caso peggiore(naturalmente relativo al task a minore priorità): R 4 = C 4 + I 4 (1) con I 4 = 3 j=1 R4 T j C j = R4 T 1 C 1 + R4 T 2 C 2 + R4 T 3 C 3 (2) Facciamo partire l iterazione da I 4 = 0, calcoliamo R 4 con la (1) poi calcoliamo di volta in volta I 4 applicando la (2) e R 4 applicando la (1) iterazione I 4 R Stop Arrestiamo l iterazione perché gli ultimi due passi hanno prodotto gli I 4 36

37 uguali tra loro (e di conseguenza anche gli R 4 ) quindi la condizione è soddisfatta. (R 4 = 10) (D 4 = 10) Figura 43: esempio di calcolo delle interferenze: grafico interferenze/tempi di risposta Test di garanzia R i D i per tutti i tasks Algoritmo bool garantisci DM (Γ) { for (ogni τ i Γ) { I = 0; do { R = I + C i if(r > D i ) return false; i 1 I = R C j ; T j j=1 } while(i + C i > R); } return true; } 37

38 3.2.8 EDF* (EDF con deadlines <dei periodi) In questo tipo di algoritmo P i 1 d i sua deadline relativa ossia la priorità di un job dipende dalla Processor Demand : nell intervallo [t 1, t 2 ] è il tempo di computazione richiesto dai tasks iniziati a partire da t 1 che devono terminare per t 2 P D(t 1, t 2 ) = d k t 2 r k t 1 C k Figura 44: Processor Demand: esempio. I task che vengono considerati sono quelli che hanno sia la deadline che il tempo di arrivo all interno dell intervallo Ponendo φ i = 0 ossia sincronizzando l inizio dell intervallo con l arrivo del task Figura 45: Processor Demand: esempio con φ = 0 P D(0, L) = n L Di + T i C i i=1 dove x sta per parte intera di x. Il parametro L assume, nel corso dell analisi, il valore della deadline di ogni task T i 38

39 Processor Demand test: esempio 1 Verificare che L P D(0, L) L T C D τ τ τ Figura 46: Processor Demand test: esempio 1 P D(6) = P D(8) = P D(10) = P D(12) = = = = = 13 > 12 time overflow

40 Processor Demand test: esempio 2 (D < T ) T C D τ τ Figura 47: Processor Demand test: esempio 2 (D < T ) P D(3) = = P D(4) = = P D(7) = = P D(10) =... = 6 10 P D(11) =... = 7 11 P D(15) =... = 8 15 P D(16) =... = Visto che i task sono sincroni si può terminare l analisi all iperperiodo. Si può limitare ulteriormente il numero di intervalli su cui applicare l analisi di schedulabilità. Sia H = mcm(t 1,..., T n ) l iperperiodo e L = allora bisogna controllare che n i=1 (T i D i ) U i 1 U P D(0, L) L L {d k d k min(h, L )} 40

41 Figura 48: Esempio 2 di PDt: diagramma di raggiungibilità Conclusioni sullo scheduling dei periodici 41

42 D=T D <T RM DM Priorità Processor Statiche Utilization Response Time i 1 U n (2 1 Ri n 1) R i = C i + C j D i j=1 T j EDF EDF* Priorità Processor Processor Demand Dinamiche Utilization L > 0 n L Di + T i U 1 L C i i=1 T i Tabella 2: Algoritmi di scheduling per task periodici 3.3 Scheduling di task Ibridi (periodici e aperiodici) L obiettivo è quello di ridurre i tempi di risposta dei task aperiodici senza mettere a repentaglio la schedulabilità dei task periodici. Lo scheduling degli aperiodici può essere di due tipi: Hard lo scheduling degli aperiodici è garantito anche nel caso peggiore garanzia off-line solo per tasks sporadici (task con un tempo minimo di interarrivo) Soft lo scheduling degli aperiodici è eseguito ASAP (As Soon As Possible) garanzia on-line minimizza il tempo di risposta medio Fixed Priority Servers Si assumerà che: i tasks periodici siano schedulati con algoritmo a priorità fissa (tipicamente RM) i tasks periodici siano sincroni e con D = T non siano noti i tempi di arrivo dei task aperiodici 42

43 il tempo minimo di interarrivo di un task aperiodico coincida con la sua deadline relativa (gli aperiodici non si possono sovrapporre) 43

44 3.3.2 Background service L obiettivo è servire i tasks aperiodici quando non ci sono jobs da eseguire Esempio 1: Figura 49: Background Service. Principio di funzionamento T C τ τ a C J 2 3 Figura 50: Esempio 1: periodici schedulati secondo EDF; aperiodico non schedulato Figura 51: Esempio1: scheduling secondo Immediate Service 44

45 Figura 52: Esempio1: scheduling secondo Background Service. Si evita la deadline overflow presente nell immediate service (figura (51)) Considerazioni su Background Service Vantaggi: non influenza l esecuzione dei task periodici semplicità Svantaggi: se il fattore di utilizzo della CPU (U) dei periodici è elevato allora il tempo di risposta degli aperiodici può divenire inaccettabile BS è vantaggioso quando U è bassa C è bassa e T è alta 45

46 3.3.3 Servers per gli aperiodici Un server per aperiodici è un task periodico esso stesso. La periodica attività del kernel è dunque volta a controllare l esecuzione dei task aperiodici. Un server per aperiodici è caratterizzato da: Capacità del server (C) È il tempo di computazione che può mettere a disposizione dei task aperiodici che deve schedulare Periodo del server (T ) Visto che il server è un task periodico tale parametro caratterizza il task stesso La morale sembra essere: al fine di preservare i tasks periodici, per ogni T non devono essere eseguiti aperiodici per più di C Praticamente: Figura 53: Server per aperiodici. Principio di funzionamento il server è schedulato come un task periodico il server gestisce i suoi task aperiodici con una qualunque politica di scheduling I servers per gli aperiodici si distinguono in base all algoritmo di scheduling usato per i task periodici (ricordiamo che il server è trattato alla stessa stregua di un task periodico) Algoritmo di scheduling Algoritmi di scheduling dei task periodici dei task ibridi Priorità fissa (RM o DM) PS DS Priorità dinamica (EDF) TBS CBS Tabella 3: Algoritmi di scheduling per task ibridi Periodici a Priorità Fissa (RM o DM) Polling Server (PS) Defferable Server (DS) Periodici a Priorità dinamica (EDF) 46

47 Total Bandwidth Server (TBS) Constant Bandwidth Server (CBS) 47

48 3.3.4 PS Polling Server Esempio: C T τ τ server 2 5 Visto che il server ha un periodo minore di τ 2 e che nel polling server lo scheduling dei periodici avviene attraverso Rate Monotonic il server diventa prioritario sul task τ 2. Riscriviamo la tabella nel rispetto delle precedenze C T Priorità τ alta server τ bassa La tabella relativa ai task aperiodici è invece la seguente a C J J J J Figura 54: Polling Server. Diagramma di Gant relativo all esempio PS diviene attivo ogni T s con capacità di servizio C s se non ci sono aperiodici in coda allora C s è annullata in favore dei tasks periodici se un aperiodico arriva dopo che il server si è sospeso deve attendere la prossima attivazione Possiamo dire qualcosa di rilevante in alcuni istanti di tempo riguardo il server dell esempio 48

49 istante 1 Il server perde immediatamente (dopo averla acquisita) la possibilità di schedulare task aperiodici perché non ha jobs da schedulare istante 6 La capacità di servizio si è ridotta perché è stato servito un task aperiodico istante 11 La capacità di servizio non è stata sfruttata appieno e quindi persa istante 13 Ci sarebbe da servire un aperiodico ma il server non può perché ha perso la sua capacità di servizio all istante 11 non sfruttandola istanti La capacità di servizio viene mantenuta perché il task relativo al server è stato prelazionato dal task τ 1 (a rate maggiore) 49

50 Analisi di schedulabilità nel caso peggiore, PS si comporta come un task periodico con U s = Cs T s i server per task aperiodici possono essere più di uno (in generale m server di tipo PS con diversa priorità) cosicché il fattore di utilizzo da parte degli aperiodici diventa U s = m j=1 il fattore di utilizzo della CPU nei task set ibridi è dato dalla formula C j T j U ibridi = U s + U p dove U s è relativo agli m server dei task aperiodici mentre U p è relativo ai task periodici (il cui numero, in generale, è n) affinché il task set sia schedulabile si dovrà avere U p +U s U UB (n, m) come al solito ci interessiamo del fattore U LUB. Tenendo conto del fatto che i server non utilizzano al massimo la CPU possiamo scrivere [ ( ) 1 ] U RM+PS 2 n LUB (n) = U s + n 1 U s + 1 per n U RM+PS LUB ( ) 2 = U s + ln U s + 1 Figura 55: Funzione U RM+PS LUB 50

51 Test di schedulabilità: se U p + U s U RM+PS LUB allora il task set è sicuramente schedulabile. Possiamo dunque scrivere che ( ) 1 2 n U p n n U s + 1 Figura 56: Scelta di U s U s = C s T s 51

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

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

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

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

Scheduling Introduzione Tipi di scheduler Scheduler di lungo termine (SLT) Scheduler di medio termine (SMT) Scheduler di breve termine (SBT)

Scheduling Introduzione Tipi di scheduler Scheduler di lungo termine (SLT) Scheduler di medio termine (SMT) Scheduler di breve termine (SBT) Scheduling Introduzione Con scheduling si intende un insieme di tecniche e di meccanismi interni del sistema operativo che amministrano l ordine in cui il lavoro viene svolto. Lo Scheduler è il modulo

Dettagli

Sistemi Operativi. Schedulazione della CPU

Sistemi Operativi. Schedulazione della CPU Sistemi Operativi (modulo di Informatica II) Schedulazione della CPU Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Concetti di base Come si realizza il multi-tasking Come si

Dettagli

Scheduling. Livelli Algoritmi

Scheduling. Livelli Algoritmi Scheduling Livelli Algoritmi Introduzione Lo scheduling Ha lo scopo di decidere quale processo eseguire in un dato istante Si realizza mediante un componente specifico del sistema operativo Lo scheduler

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

Lez. 4 Lo scheduling dei processi. Corso: Sistemi Operativi Danilo Bruschi

Lez. 4 Lo scheduling dei processi. Corso: Sistemi Operativi Danilo Bruschi Sistemi Operativi Lez. 4 Lo scheduling dei processi 1 Cicli d'elaborazione In ogni processo i burst di CPU si alternano con i tempi di I/O 2 Uso tipico di un calcolatore 3 CPU-bound e I/O-bound Processi

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

SISTEMI IN TEMPO REALE

SISTEMI IN TEMPO REALE SISTEMI IN TEMPO REALE Definizione [Stankovic 88] I sistemi real-time (RT) sono quei sistemi di calcolo in cui la correttezza di funzionamento non dipende soltanto dalla validità dei risultati ottenuti

Dettagli

Lezione 6. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Lezione 6. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata. Lezione 6 Sistemi operativi 31 marzo 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 6.1 Di cosa parliamo in questa lezione? La schedulazione 1 e caratteristiche

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

Capitolo 6: CPU scheduling

Capitolo 6: CPU scheduling Capitolo 6: CPU scheduling Concetti di base. Criteri di schedulazione. Gli algoritmi di schedulazione. Schedulazione per sistemi multiprocessore. Schedulazione per sistemi in tempo reale. Schedulazione

Dettagli

Concetti di base. Scheduling della CPU. Diagramma della durata dei CPU-burst. Sequenza Alternata di CPU Burst e I/O Burst

Concetti di base. Scheduling della CPU. Diagramma della durata dei CPU-burst. Sequenza Alternata di CPU Burst e I/O Burst Impossibile visualizzare l'immagine. Scheduling della CPU Concetti di base La multiprogrammazione cerca di ottenere la massima utilizzazione della CPU. L esecuzione di un processo consiste in cicli d esecuzione

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

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

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

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

Sistemi Operativi: Sistemi realtime

Sistemi Operativi: Sistemi realtime 1 Sistemi Operativi: Sistemi realtime Amos Brocco, Ricercatore, DTI / ISIN 30 luglio 2012 Basato su: [STA09] Operating Systems: Internals and Design Principles, 6/E, William Stallings, Prentice Hall, 2009

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

SISTEMI OPERATIVI. Schedulazione della CPU. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

SISTEMI OPERATIVI. Schedulazione della CPU. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) Schedulazione della CPU Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario Concetti base

Dettagli

SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007

SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007 2007 SISTEMI OPERATIVI Gestione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 13/05/2007 Gestione dei processi 1. Qual è la differenza tra un programma e un processo? Un programma

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

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

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

Schedulazione non omogenea

Schedulazione non omogenea SERVER APERIODICI Mario Collotta Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania mcollotta@diit.unict.it Schedulazione non omogenea Task periodici hard RT con RM

Dettagli

Diagramma delle durate dei CPU burst. Lo scheduler della CPU. Criteri di scheduling. Dispatcher

Diagramma delle durate dei CPU burst. Lo scheduler della CPU. Criteri di scheduling. Dispatcher Schedulazione della CPU Scheduling della CPU Introduzione allo scheduling della CPU Descrizione di vari algorimi di scheduling della CPU Analisi dei criteri di valutazione nella scelta di un algoritmo

Dettagli

Gli stati di un processo

Gli stati di un processo Roberta Gerboni 1 Gli stati di un processo Gli stati possibili nei quali si può trovare un processo sono: Hold (parcheggio): il programma (chiamato job) è stato proposto al sistema e attende di essere

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

Sistemi Operativi. ugoerr+so@dia.unisa.it 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Sistemi Operativi. ugoerr+so@dia.unisa.it 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08 Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione Introduzione

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

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

Scheduling della CPU. Contenuti delle lezioni del 23 e del 26 Marzo 2009. Sequenza alternata di CPU burst e di I/O burst.

Scheduling della CPU. Contenuti delle lezioni del 23 e del 26 Marzo 2009. Sequenza alternata di CPU burst e di I/O burst. Contenuti delle lezioni del 23 e del 26 Marzo 2009 Scheduling della CPU Introduzione allo scheduling della CPU Descrizione di vari algoritmi di scheduling della CPU Analisi dei criteri di valutazione nella

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

Scheduling. Dipartimento di Informatica Università di Verona, Italy. Sommario

Scheduling. Dipartimento di Informatica Università di Verona, Italy. Sommario Scheduling Dipartimento di Informatica Università di Verona, Italy Sommario Concetto di scheduling Tipi di scheduling Lungo termine Breve termine (scheduling della CPU) Medio termine Scheduling della CPU

Dettagli

Sistemi Operativi. Scheduling dei processi

Sistemi Operativi. Scheduling dei processi Sistemi Operativi Scheduling dei processi Scheduling dei processi Se più processi sono eseguibili in un certo istante il sistema deve decidere quale eseguire per primo La parte del sistema operativo che

Dettagli

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni Sistemi operativi real time basati su Linux: gestione delle risorse e dei processi. Tesina per l esame di Sistemi Operativi a cura di. Prof. Aldo Franco Dragoni Corso di laurea in Ingegneria Informatica

Dettagli

JAVA REAL-TIME: ANALISI DELL ARCHITETTURA E VALUTAZIONE SPERIMENTALE DELLA PIATTAFORMA SOLARIS 10.9

JAVA REAL-TIME: ANALISI DELL ARCHITETTURA E VALUTAZIONE SPERIMENTALE DELLA PIATTAFORMA SOLARIS 10.9 JAVA REAL-TIME: ANALISI DELL ARCHITETTURA E VALUTAZIONE SPERIMENTALE DELLA PIATTAFORMA SOLARIS 10.9 Candidato: Marco Nanni RELATORE: Chiar.mo Prof. Eugenio Faldella CORRELATORI Chiar.mo Prof. Marco Prandini

Dettagli

APPLICAZIONI DELLA RICERCA OPERATIVA

APPLICAZIONI DELLA RICERCA OPERATIVA Università degli Studi della Calabria Laurea in Informatica A.A. 2004/2005 Appunti di supporto didattico al corso di APPLICAZIONI DELLA RICERCA OPERATIVA Indice 1 Introduzione alla teoria dello Scheduling

Dettagli

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi Scheduling della CPU Scheduling della CPU Obiettivo della multiprogrammazione: massimizzazione dell utilizzo CPU Scheduling della CPU: commuta l uso della CPU tra i vari processi Scheduler della CPU (a

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

1. Classificazione delle risorse

1. Classificazione delle risorse 1. Classificazione delle risorse Classificazione delle risorse in base alla disponibilità. - Risorse rinnovabili Sono risorse utilizzate per l esecuzione di una attività per tutta la sua durata, ma sono

Dettagli

6 CPU Scheduling. 6.1 Concetti Fondamentali dello Scheduling della CPU. 6.1 Concetti Fondamentali

6 CPU Scheduling. 6.1 Concetti Fondamentali dello Scheduling della CPU. 6.1 Concetti Fondamentali 1 6 CPU Scheduling La gestione della CPU (soltanto) può rendere la multi-programmazione più efficiente della mono-programmazione Infatti, la multiprogrammazione permette di ottenere l utilizzazione massima

Dettagli

Scheduling della CPU. Concetti base. Criteri di Scheduling. Algoritmi di Scheduling

Scheduling della CPU. Concetti base. Criteri di Scheduling. Algoritmi di Scheduling Scheduling della CPU Concetti base Criteri di Scheduling Algoritmi di Scheduling 1 Scheduling di processi Obbiettivo della multiprogrammazione: esecuzione contemporanea di alcuni processi in modo da massimizzare

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

Bibliografia. Gestione operativa della produzione. Terminologia. Schedulazione. Schedulazione operativa della produzione

Bibliografia. Gestione operativa della produzione. Terminologia. Schedulazione. Schedulazione operativa della produzione Bibliografia Gestione operativa della produzione Schedulazione operativa della produzione 14/12/2001 11.54 E.L. Lawler, J.K. Lenstra, A.G.H. Rinnoy Kan, D.B. Shmoys, Sequencing and Scheduling: Algorithms

Dettagli

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Rappresentazione e gestione delle attività e della computazione:

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

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

1. Considerazioni generali

1. Considerazioni generali 1. Considerazioni generali Modelli di shop scheduling In molti ambienti produttivi l esecuzione di un job richiede l esecuzione non simultanea di un certo numero di operazioni su macchine dedicate. Ogni

Dettagli

5. Scheduling della CPU. 5.1 Concetti Fondamentali. 5.1.2. Lo scheduler della CPU

5. Scheduling della CPU. 5.1 Concetti Fondamentali. 5.1.2. Lo scheduler della CPU 5. Scheduling della CPU 1 Il multitasking e il time sharing (quando è usato) cercano di massimizzare l utilizzo della CPU. Per questo, il progettista del SO deve stabilire delle regole per decidere, quando

Dettagli

5. Scheduling della CPU

5. Scheduling della CPU 1 5. Scheduling della CPU Il multitasking e il time sharing (quando è usato) cercano di massimizzare l utilizzo della CPU. Per questo, il progettista del SO deve stabilire delle regole per decidere, quando

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

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

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

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

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

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. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007

SISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007 2007 SISTEMI OPERATIVI Sincronizzazione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 30/05/2007 Sincronizzazione dei processi 1. Si descrivano i tipi di interazione tra processi?

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

Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica SISTEMI OPERATIVI

Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica SISTEMI OPERATIVI Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica SISTEMI OPERATIVI SISTEMI A ORIENTAMENTO SPECIFICO I SISTEMI MULTIMEDIALI Obiettivi! Identificare le caratteristiche

Dettagli

Sistemi e schedulazione in tempo reale

Sistemi e schedulazione in tempo reale Sistemi e schedulazione in tempo reale 1 Sistemi in tempo reale Sistemi di calcolo in cui la correttezza del funzionamento dipende criticamente dal tempo in cui i risultati sono prodotti. Possibili campi

Dettagli

G. Piscitelli Politecnico di Bari 1 of 23

G. Piscitelli Politecnico di Bari 1 of 23 SISTEMI IN TEMPO REALE Strongly recommended readings: Scheduling Algorithms and O.S. support for Real-Time Systems (January 1994) Real-Time Computing: A New Discipline of Computer Science and Engineering

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

Scheduling della CPU (2) CPU bursts (2)

Scheduling della CPU (2) CPU bursts (2) Scheduling della CPU (1) - La gestione delle risorse impone al SO di prendere decisioni sulla loro assegnazione in base a criteri di efficienza e funzionalità. - Le risorse più importanti, a questo riguardo,

Dettagli

Lezione 10. Scheduling nei sistemi multiprocessori. Esempio: P=2 processori. Scheduling dei processi

Lezione 10. Scheduling nei sistemi multiprocessori. Esempio: P=2 processori. Scheduling dei processi Lezione 10 Cenni ai sistemi operativi distribuiti 2. Gestione della CPU e della memoria nei multiprocessori Gestione dei processi Scheduling Bilanciamento del carico Migrazione dei processi Gestione della

Dettagli

ESERCIZI SULLO SCHEDULING DEI PROCESSI

ESERCIZI SULLO SCHEDULING DEI PROCESSI ESERCIZI SULLO SCHEDULING DEI PROCESSI Esercizio 1 Esercizio 2 una priorità maggiore) e 4) RR (quanto=1). Esercizio 3 1 una priorità maggiore) e 4) RR (quanto=1). Esercizio 4 Esercizio 5 2 Esercizio 6

Dettagli

Processo - generalità

Processo - generalità I processi Processo - generalità Astrazione di un attività; Entità attiva che ha un suo percorso evolutivo; Attività = azione dedicata al raggiungimento di uno scopo Il processo esegue istruzioni per svolgere

Dettagli

SISTEMI OPERATIVI. Deadlock (blocco critico) Domande di verifica. Luca Orrù Centro Multimediale Montiferru 04/06/2007

SISTEMI OPERATIVI. Deadlock (blocco critico) Domande di verifica. Luca Orrù Centro Multimediale Montiferru 04/06/2007 2007 SISTEMI OPERATIVI Deadlock (blocco critico) Domande di verifica Luca Orrù Centro Multimediale Montiferru 04/06/2007 Deadlock (blocco critico) 1. Si descriva il deadlock e le condizioni sotto cui si

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

Capitolo 5: Scheduling della CPU! Scheduling della CPU! Concetti di Base! Alternanza di Sequenze di CPU- e I/O-Burst!

Capitolo 5: Scheduling della CPU! Scheduling della CPU! Concetti di Base! Alternanza di Sequenze di CPU- e I/O-Burst! Capitolo 5: Scheduling della CPU Criteri di Scheduling Algoritmi di Scheduling Cenni Scheduling per sistemi multprocessore Modelli Asimmetrico e Simmetrico Scheduling della CPU 5.2 Concetti di Base Alternanza

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

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

Scheduling della CPU

Scheduling della CPU Scheduling della CPU Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling Scheduling dei thread Scheduling multiprocessore Scheduling real time Scheduling in Linux Valutazione

Dettagli

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P 1 2 0 0 P 1 1 2 2 3 3 2 P 2 3 0 2 P 2 6 0 0 P 3 2 1 1 P 3 0 1 1 < P 1, >

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P 1 2 0 0 P 1 1 2 2 3 3 2 P 2 3 0 2 P 2 6 0 0 P 3 2 1 1 P 3 0 1 1 < P 1, > Algoritmo del banchiere Permette di gestire istanze multiple di una risorsa (a differenza dell algoritmo con grafo di allocazione risorse). Ciascun processo deve dichiarare a priori il massimo impiego

Dettagli

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio) GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio) #include void main (int argc, char *argv[]) { pid = fork(); /* genera nuovo processo */ if (pid < 0) { /* errore */ fprintf(stderr,

Dettagli

Lo schedulatore del kernel

Lo schedulatore del kernel Lo schedulatore del kernel Lo schedulatore Lo schedulatore è un programma del kernel che si occupa di scegliere un processo/lavoro che ha richiesto una risorsa. Lo schedulatore a lungo termine LTS è quello

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

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore. I processi Cos è un processo? Un processo è una attività, controllata da un programma, che si svolge su un processore. Il programma è una entità statica che descrive la sequenza di istruzioni che devono

Dettagli

Ordinamento degli eventi. Lezione 11. Osservazioni. Relazione verificato prima. Cenni ai sistemi operativi distribuiti 3. Coordinazione distribuita

Ordinamento degli eventi. Lezione 11. Osservazioni. Relazione verificato prima. Cenni ai sistemi operativi distribuiti 3. Coordinazione distribuita Lezione 11 Cenni ai sistemi operativi distribuiti 3. Coordinazione distribuita Ordinamento degli eventi Un sistema monoprocessore Unico clock Unica memoria Ordinamento degli eventi Mutua esclusione Deadlock

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

Università degli Studi di Milano Bicocca Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea Specialistica in Informatica

Università degli Studi di Milano Bicocca Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea Specialistica in Informatica Università degli Studi di Milano Bicocca Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea Specialistica in Informatica Real-time EDF scheduling per il kernel FreeBSD: analisi, implementazione

Dettagli

Sistemi in tempo reale Anno accademico 2008-2009

Sistemi in tempo reale Anno accademico 2008-2009 Sistemi in tempo reale Anno accademico 2008-2009 Introduzione ai sistemi di controllo in tempo reale Giuseppe Lipari http://feanor.sssup.it/~lipari Scuola Superiore Sant Anna Contenuti del corso Introduzione

Dettagli

Lezione R14. Sistemi embedded e real-time

Lezione R14. Sistemi embedded e real-time Lezione R14 Sistemi embedded e 22 gennaio 2013 Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata SERT 13 R14.1 Di cosa parliamo in questa lezione? In

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 3 Martedì 15-10-2013 1 Struttura ed organizzazione software dei sistemi

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

Sistemi Organizzativi

Sistemi Organizzativi Sistemi Organizzativi Lezione 12/12/2004 Introduzione al corso e definizioni di base Informazioni generali Pre-requisiti: lassi di complessità Metodi enumerativi: - programmazione dinamica - branch-and-bound

Dettagli

Parte 3: Gestione dei progetti, Shop scheduling

Parte 3: Gestione dei progetti, Shop scheduling Parte : Gestione dei progetti, Shop scheduling Rappresentazione reticolare di un progetto Insieme di attività {,...,n} p i durata (nota e deterministica dell attività i) relazione di precedenza fra attività:

Dettagli

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica www.dis.uniroma1.it/~midlab Sistemi Operativi II Corso di Laurea in Ingegneria Informatica Prof. Roberto Baldoni Complementi: Buffer I/O Gestione dei buffer e I/O scheduling: 1. Richiami sulle tecniche

Dettagli

Lezione T6 Scheduling e dispatching

Lezione T6 Scheduling e dispatching Lezione T6 Scheduling e dispatching Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2013/2014 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio Emilia http://weblab.ing.unimo.it/people/andreolini/didattica/sistemi-operativi

Dettagli

Architettura degli elaboratori 2 I appello (versione A)

Architettura degli elaboratori 2 I appello (versione A) Quesito 1 (punti 7). Cinque processi batch, identificati dalle lettere A E rispettivamente, arrivano all elaboratore agli istanti 0, 2, 4, 6, 9 rispettivamente. Tali processi hanno un tempo di esecuzione

Dettagli

Sommario. G. Piscitelli

Sommario. G. Piscitelli Sommario Fondamenti dei Sistemi Operativi Device Manager Dispositivi di I/O Interfaccia (o controller) e software di pilotaggio (driver) di un dispositivo Schedulazione dei dischi: i parametri Schedulazione

Dettagli

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti Dai sistemi concorrenti ai sistemi distribuiti Problemi nei sistemi concorrenti e distribuiti I sistemi concorrenti e distribuiti hanno in comune l ovvio problema di coordinare le varie attività dei differenti

Dettagli

Sistemi Operativi A.A. 2011/2012

Sistemi Operativi A.A. 2011/2012 Sistemi Operativi A.A. 2011/2012 Esercitazione 13 Dicembre 2011 Esercizio 1 - Scheduling dei processi Data la seguente sequenza di processi Processo Istante Arrivo Durata Priorità P 1 0 6 3 P 2 2 5 2 P

Dettagli

Esercizi di Gestione della Produzione Industriale. Tabella 1: tempi di lavorazione di un set di job.

Esercizi di Gestione della Produzione Industriale. Tabella 1: tempi di lavorazione di un set di job. Esercizio 1: schedulazione con il modello di Johnson...2 Soluzione dell esercizio 1 (schedulazione con il modello di Johnson)...2 Esercizio 2: schedulazione con il modello di Hodgson...3 Soluzione dell

Dettagli

Real-time EDF scheduling per il kernel FreeBSD: analisi, implementazione e risultati sperimentali

Real-time EDF scheduling per il kernel FreeBSD: analisi, implementazione e risultati sperimentali Real-time EDF scheduling per il kernel FreeBSD: analisi, implementazione e risultati sperimentali Marco Trentini m.trentini@campus.unimib.it Relatore: Dott. Sergio Ruocco Correlatore: Prof. Francesco Tisato

Dettagli