Sistemi e schedulazione in tempo reale E.Mumolo
Sistemi in tempo reale Sistemi di calcolo in cui la correttezza del funzionamento dipende criticamente dal tempo dal tempo in cui i risultati sono prodotti. Possibili campi applicativi: regolazione di impianti industriali (chimici, nucleari etc.) controllo di processi controllo di volo, di traffico etc. sistemi di telecomunicazioni sistemi militari sistemi spaziali realta virtuale Robotica Sistemi di monitoraggio medico Sistemi di controllo nellauto: sistema ABS e controllo elettronico del motore … Come assicurare che il sw sia corretto? 1° problema: test del SW ! 2° problema: progetto del sistema assunzioni pessimistiche 3° problema: empiricita 4° problema: codice molto spesso Assembly
Sistemi in tempo reale Perche Tempo Reale? Tempo: la validita dei risultati dipende dal tempo di servizio Reale: la risposta agli eventi esterni deve avvenire durante levolversi dellevento stesso Il tempo di sistema deve essere misurato secondo un riferimento temporale che dipende dallambiente Esempio: sistemi biologici. Introducendo eventi con costante di tempo piu bassa pericolo! Ogni sistema RT deve essere studiato nellambiente effettivo di lavoro La caratteristica piu importante di un sistema RT non e la velocita, ma la prevedibilita! La differenza principale tra un processo RT ed un processo NON RT e la Deadline (= tempo massimo di fine processo) In un sistema RT, un risultato prodotto oltre la deadline e dannoso
Sistemi in tempo reale Esempi:
Sistemi in tempo reale TIPI DI PROCESSI RT Hard RT: se il superamento della deadline e catastrofico. Es.: acquisizione dati asservimento pianificazione azioni controllo automatico Soft RT: se il superamento della deadline non e catastrofico ma sopportabile. Es.: Interpretazione comandi utente Visualizzazione messaggi ASPETTI FONDAMENTALI: SCHEDULING ACCESSO A RISORSE GESTIONE SOVRACCARICHI COMUNICAZIONE TRA PROCESSI
Sistemi in tempo reale Riassumendo: TR vs NTR: vincoli temporali, ambiente dinamico. Un sistema in tempo reale è quindi: stimolo esterno elabora entro un tempo finito e specificato ogni sistema nel quale è importante il tempo di term. movimento nel mondo fisico luscita è relativa allo stesso movimento. La differenza tra listante dellevento di ingresso e listante dellevento duscita è la prontezza del sistema.
Sistemi Soft Real time e Hard Real Time Deadline: listante nel quale deve essere terminata lesecuzione. distinzione a seconda del risultato della risposta Può essere accettata una risposta oltre la deadline. Il tempo di risposta è importante ma non cruciale. Hard deadline: se i dati arrivano tardi rispetto alla deadline sono sbagliati e come tali non possono essere accettati. Soft deadline: se i dati arrivano tardi rispetto alla deadline possono essere ancora utilizzati
Sistemi Soft Real time e Hard Real Time Sistemi Hard Real-Time: i processi hanno delle deadline assolutamente rigorose; Sistemi Soft real-time: i processi hanno delle deadline non rigorose; Alcuni sistemi hanno sia deadline soft che hard: una deadline può non essere soddisfatta se Le prestazioni medie sono sufficienti in ogni istante Ogni deadline viene comunque sodddisfatta entro un certo intervallo temporale. Un sistema si dice schedulabile se tutte le richieste di schedulazione sono soddisfacibili
Sistemi Soft Real time e Hard Real Time Rispettare le deadline: Soft Real-time Non Real-time Hard Real-time Simulazioni software Interfaccia utente Video su internet Telecom appl.Controllo elettronico di un motore Sistema di controllo di un missile Streaming
Sistemi Soft Real time e Hard Real Time Esempi: Sistema di controllo di un aereo da combattimento Le informazioni ambientali devono essere fornite al pilota immediatamente. I comandi dati dal pilota devono essere eseguiti immediatamente Sistema di monitoraggio di un paziente Per esempio una macchina che monitorizza il battito cardiaco: è sufficiente conoscere la frequenza del battito entro un secondo e non entro un millisecondo dalla misura Sistema di presentazione multimediale Questo sistema può essere considerato un sistema in tempo reale. Tuttavia non è necessario che tutte le deadline siano assolutamente soddisfatte, ma è sufficiente che la maggior parte sia soddisfatta
Sistemi Soft Real time e Hard Real Time Proprietà Non R TSoft R T Hard R T Deterministico No Possibilmente Sì Predicibile No Possibilmente Sì Effetto del non Non ha Degrado Fallimento Soddisfacimento effetto prestazioni delle deadline Affidabilità nei compiti critici No Sì Sì
Proprietà dei sistemi in tempo reale Controllano e monitorizzano processi fisici entro limiti temporali. Sono affidabili per lunghi periodi. Non richiedono intervento umano diretto. Operano sotto vincoli più severi dei sistemi normali, di uso generale. Devono operare con la minima memoria ed il minimo supporto hardware. Più difficili da sviluppare e correggere. Non usano memoria di massa. Non hanno il display o la tastiera tradizionali.
Caratteristiche dei sistemi in tempo reale Tipicamente possono essere Sistemi embedded: un componente di un sistema hardware/software più ampio Sistemi concorrenti: il sistema controlla simultaneamente e/o reagisce ad aspetti differenti dellambiente. Sistemi sicuri: non sono solo affidabili ma anche sicuri se il fallimento della esecuzione non provoca danni a persone o cose. Tipicamente lo sviluppo di sistemi sicuri richiede la ridondanza. Sistemi reattivi: cè una continua interazione con lambiente, che fornisce eventi ai quali il sistema reagisce. La risposta del sistema è tipicamente dipemdemte dallo stato.
Caratteristiche dei sistemi in tempo reale Prontezza del sistema: descrive come il sistema soddisfa i vincoli temporali Risposta agli eventi esterni: un sistema in tempo reale ha lo scopo principale di rispondere agli eventi esterni, che sono tipicamente non predicibili Correttezza e robustezza Concorrenza: capacità di eseguire simultaneamente diverse azioni. Problemi coinvolti: schedulazione modalità di arrivo sincronizzazione accesso alle risorse condivise
Modalità dellarrivo dei processi Gli arrivi possono essere periodici o aperiodici. Un arrivo periodico implica che il thread viene re-inizializzato a periodi fissi (più o meno piccole variazioni (jitter)) task periodici Un arrivo aperiodico non avviene a periodi fissi ma in istanti casuali. La temporizzazione può essere: Irregolare – gli interarrivi sono variabili e non predicibili. Impulsivo – gli interarrivi sono costituiti da gruppi dove un arrivo è vicino allaltro. Ad intervallo limitato – esiste un intervallo minimo tra gli eventi. Raggruppati intorno ad una media. casuale – gli interarrivi possono essere previsti su base statistica Le differenti modalità di arrivo devono essere trattate con diversi meccanismi.
Comunicazione tra thread e modalità di chiamata dei metodi Comunicazione mediante messaggi. Durante la loro esecuzione i thread possono chiamare metodi in diversi modi: Chiamate sincrone: gli oggetti chiamano direttamente i metodi di altri oggetti entro lo stesso thread. Chiamate asincrone: gli oggetti di un thread inviano un messaggio di chiamata ad un altro thread e continuano senza aspettare. Il thread chiamato gestisce il messaggio quando può farlo. Chiamate bloccanti: il thread chiamante aspetta che il thread chiamato risponda. Chiamate a tempo: il thread chiamante aspetta la risposta del thread chiamato per un tempo specificato. Chiamata a polling: se il thread chiamato non è immediatamente disponibile, il thread chiamante non aspetta la risposta e fa altre cose. È importante identificare la modalità di chiamata per soddisfare le deadline.
Prevedibilità La prevedibilità di un sistema rappresenta la bontà con la quale si possono conoscere le sue risposte in anticipo. È cruciale per i sistemi altamente affidabili e per i sistemi critici per quanto riguarda la sicurezza. Per determinare la prevedibilità si possono usare: Tecniche di analisi statica, Algoritmi semplici di controllo dei task, per esempio mediante la disabilitazione della concorrenza, Mediante luso di oggetti che rappresentano i task e identificano le prestazioni dei task. Ci sono due aspetti della prevedibilità: schedulabilità e memoria.
Prevedibilità Memoria statica Memoria Stack – le variabili locali e gli indirizzi di ritorno. Memoria Heap – La maggior parte dei getsori della memoria heap non hanno un tempo di allocazione costante o conosciuto, perchè devono analizzare la memoria disponibile. Lallocazione non è predicibile e qualche deadline può essere superata. La frammentazione della memoria peggiora le cose. Soluzione comune – strutturare la memoria heap per blocchi di memoria di dimensione fissa. Qualche possibilità: memoria stack stabile e scrivibile memoria heap volatile memoria stack stabile a sola lettura
Prevedibilità La prevedibilià della memoria rappresenta la memoria utilizzata e la sua persistenza Memoria utilizzata: Memoria usata per il codice eseguibile Memoria usata per i dati: stack, heap, variabili statiche. Persistenza della memoria: Memoria stabile a sola lettura Memoria stabile riscrivibile Memoria volatile
Sistemi distribuiti Sistemi in tempo reale di ampie dimensioni possono essere distribuiti su diversi processori. Qualche volta nello stesso calcolatore e qualche volta in calcolatori diversi. Questi sistemi hanno diversi problemi, quali ad esempio: coordinazione e sincronizzazione di processi su diversi processori processo di bootstrap comunicazione tra processi sincronizzazione della base dei tempi
Tolleranza ai guasti e sicurezza Spesso i sistemi in tempo reale devono essere affidabili. Deve essere assicurata non solo laffidabilità ma anche la sicurezza Lo sviluppo di sistemi sicuri coinvolge la ridondanza architetturale
Interfacciamento hardware a basso livello Sviluppo di sistemi real-time: necessità di gestione delle interfacce hardware a basso livello, cioè la generazione di driver Le componenti hardware e i dispositivi richiedono spesso di sviluppare dei driver opportuni. Questi driver devono interfacciarsi con il sistema operativo in tempo reale. Qualche volta lefficienza della modalità di gestione dei dispositivi è cruciale per le prestazioni del sistema.
Sviluppo dei sistemi embedded Di solito i sistemi embedded vengono svliluppati usando strumenti software che girano su calcolatori separati. Lapplicazione eseguibile verrà quindi eseguita su un differente calcolatore. Lo sviluppatore deve usare cross-compilatori, simulatori e srumenti simili. Qualche volta lambiente di esecuzione non ha strumenti sofisticati di debug. Lambiente di sviluppo daltra parte non è in grado daltra parte di gestire tutti gli strumenti nellambiente di esecuzione. Qualche volta lambiente di esecuzione è composto da hardware speciale che non è presente nel calcolatore di sviluppo e deve quindi essere simulato.
Sviluppo dei sistemi embedded Qualche volta il sistema finale non ha un display sul quale visualizzare gli errori del programma o i messaggi diagnostici. Qualche volta il sistema finale usa un Sistema Operativo diversi dal calcolatore di sviluppo. Di solito il sistema finale è prodotto in piccola quantità ed è usato sia per lo sviluppo hardware che per lo sviluppo del software. Questo sviluppo concorrente aggiunge alla difficoltà dello sviluppo software la difficoltà della integrazione hardware e software. Le differenze tra lo lambiente di sviluppo e lambiente di esecuzione aggiunge quindi tempo, difficoltà e rischi nello sviluppo. Spesso lo sviluppatore deve progettare e scrivere software per un hardware che ancora non esiste.
Principi di Schedulazione in tempo reale
Task in tempo reale Un task t i è una sequenza di processi in tempo reale ik ciascuno caratterizzato da un tempo darrivo r ik un tempo di inizio esecuzione s ik un tempo di fine esecuzione f ik una deadline assoluta d ik, una deadline relativa D ik, da un tempo di esecuzione C ik k k s ik f ik
Task periodici Task periodico i Triggerati a periodi fissi da un timer Consistono in una sequenza infinita di attività identiche, chiamate istanze. Ciascuna istanza è caratterizzata da un periodo T e da un tempo di calcolo C
Task aperiodici Task aperiodici: Task sporadici: Triggerati da interrupt esterni I task sporadici sono triggerati da interrupt esterni con un minimo tempo di interarrivo tra gli interrupt
Parametri descrittivi dei processi in tempo reale Lateness: L=f-d Exceeding time:E=max(0,L) tempo in cui un processo e rimasto attivo oltre la propria deadline Slack time (o LAXITY):LX=d-a-C ritardo di attivazione max consentita Metriche di valutazione: basate sulla funzione di costo che dipende dal tempo di terminazione del task. La funzione di costo rappresenta limportanza relativa del task.
Parametri descrittivi dei processi in tempo reale Qualche esempio di funzioni di costo:
Esempi di funzioni di costo Andamento della importanza dei task: f f f f v(f) Non real time hard real time soft real time critico
Sistemi operativi in tempo reale FATTI DEI SISTEMI OPERATIVI RT In un sistema di controllo RT ogni processo e ben noto! Nessun task del sistema e un processo casuale E importante assicurare che tutti i task critici completino la loro attivita entro la deadline in una applicazione RT, i vari processi sono cooperanti: non e necessario usare spazi di indirizzamento separati PRESUPPOSTI DESIDERATI DAL S.O. Scheduling ottimo per rispettare i vincoli temporali Condivisione risorse condivisione spazio indirizzamento Garanzia di esecuzione i task critici vengono attivati solo se possono essere completati in tempo Prevedibilita del meccanismo dello scheduling tutte le primitive devono avere un tempo di esecuzione massimo definito Flessibilita struttura modulare per adattarsi alla applicazione
CARATTERISTICHE REALI (Ereditate dalle implementazioni classiche) Multitasking Schedulazione prioritaria (non adatta ai sistemi RT) Risposta alle interruzioni (una rapida risposta puo rallentare lesecuzione dei processi) Sincronizzazione e cooperazione dei processi (indesiderato nei SORT) Piccolo nucleo e veloce T.S. (Ma: il veloce T.S. non garantisce la terminazione dei task) Clock RT per la generazione di un riferimento temporale. I sistemi commerciali non forniscono primitive per i vincoli temporali lutente deve trasformare i vincoli temporali in priorita PREVEDIBILITA DEL SISTEMA Devo sapere se i processi possono essere completati in tempo determinismo dei processi Sistemi operativi in tempo reale
Cause di aleatorieta: DMA CACHE (cache fault) Interrupts (un processo puo essere piu urgente di un interrupt). Approcci: Disabilitazione delle interruzioni (polling) Disabilit. Interruz. Tranne il Timer che interroga periodicamente lI/O Mantenere gli interrupts ma schedulare un task come un altro Primitive del nucleo (devono avere durata max) Mutua esclusione (soluzioni ad hoc) Gestione della memoria (page fault! partizioni statiche) Linguaggio di programmazione (deve trattare i vincoli temporali)
SCHEDULAZIONE Def.: schedulazione fattibile se esiste un assegnamento ai task tale che i task vengono completati rispettando i vincoli Def.: un insieme di task e schedulabile se esiste una schedulazione fattibile Def.: vincoli sui processi: temporali, di precedenza, su risorse condivise Sistemi operativi in tempo reale
Scheduling Real Time per Processi Aperiodici Ottimizzare una funzione di costo definita sui parametri temporali Notazione di Graham: ( | | ) dove: : macchina fisica (monoprocessore, multiprocessore etc) : tipo di vincoli ai processi (precedenza, preemption etc.) : funzione di costo minimizzata Esempio: (1|prec|L MAX ), (3|nopreempt.| f i ), (2| | f i )
Algoritmo di Jackson Algoritmo (1|a 0 |L max ) per un sistema di n tasks Consideriamo un insieme di task J={J i (a i, C i, d i ), i=1…n}, dove a i =a 0 per ogni i=1…n Algoritmo: la massima lateness L max e minimizzata se i processi sono schedulati in ordine di deadline crescenti La complessita di calcolo dipende principalmente dalla procedura di ordinamento dellinsieme di task O(nlogn) 46783didi 21111CiCi J5J5 J4J4 J3J3 J2J2 J1J J1 J5J4 J3 J L max = -1
Algoritmo di Jackson Test di schedulabilità: i i=1..n; C k d i k=1 Esempio di schedulazione Non Fattibile 57463didi 22112CiCi J5J5 J4J4 J3J3 J2J2 J1J J1 J3 J4 J5 J L max = 1
Algoritmo di Jackson Ottimalità dellalgoritmo di Jackson Per una schedulazione generica, esisteranno almeno due task J a e J b con d a d b tali che J b precede J a : Se si invertono i due task, la lateness massima diminuisce: dbdb dada JaJa JbJb L a =f a -d a L b =f b -d b L max =f a- d a fbfb fafa JbJb JaJa L a =f a -d a L b =f b -d b fbfb fafa dbdb dada Se (L a > L b ) L max = f a -d a < f a -d a L max < L max Se (L b > L a ) L max = f b -d b = f a -d b < f a -d a L max < L max Eseguendo un numero finito di scambi di questo tipo si ottiene la schedulazione ottima
Algoritmo di Horn Algoritmo (1|preemp|L max ) Rimuove lipotesi di attivazioni simultanee: attivazione dinamica e pre-emption Estensione dellalgoritmo di Jackson Algoritmo: La massima lateness L max di un insieme di n task con attivazione dinamica e minimizzata se, ogni volta che un nuovo task entra nel sistema la coda dei processi pronti viene riordinata per deadline crescente e la CPU viene assegnata al processo con deadline piu imminente. Chiamata anche Earliest Deadline First (EDF) Ottimalita nel senso che minimizza L max e nel senso della schedulazione J1 J2 J3 J4 J5
Algoritmo di Horn Complessita O(n 2 ), dove n è il numero di processi che possono essere attivati dinamicamente. Test di garanzia di schedulabilità: derivato dal test di Jackson: i i=1..n; c k (t) d i k=1 dove c k (t) sono i tempi residui istantanei di esecuzione e d i sono le deadline riscalate rispetto ai tempi di arrivo. Minimizzazione di Lmax: deriva da Jackson Teorema: Se un insieme di task aperiodici non è schedulabile con lalgoritmo di Horn, allora non è schedulabile con nessun altro algoritmo Dim. In altre parole, lenunciato del teorema afferma che: se un insieme di task è schedulabile con un qualche algoritmo A, allora sicuramente è schedulabile con lalgoritmo di Horn.
Algoritmo di Horn (cont.) Si divida la scala temporale in quanti pari allunità di tempo del sistema Sia t=0 il primo istante di attivazione dei processi Sia D=max(d i ) la deadline più lontana Sia A una qualsiasi schedulazione fattibile Sia (t) il task in esecuzione al tempo t nella schedulazione corrente Sia E(t) il task con deadline più imminente Sia t E listante di tempo in cui inizia E(t) nella schedulazione corrente Allora: la schedulazione può essere trasformata in una schedulazione di Horn con il seguente algoritmo: Trasforma(){ = A ; for (t=0; t<D; t++) if( (t) E(t)){ (t E ) = (t); (t) = E(t); }
Algoritmo di Horn (cont.) Ciascuna trasformazione preserva il tempo di calcolo dei task (i quanti possono essere solo traslati, non accorciati o allungati) Tutti i tempi possono al più essere ritardati di t E Se la schedulazione A è fattibile, allora prima della trasformazione (t E +1) d E, ma d E d i per ogni i, quindi dopo la trasformazione (t E +1) d i quindi tutti i task terminano entro le deadline Horn è fattibile Esempio di una trasformazione: 5 J1 J2 J3 J4 5 J1 J2 J3 J D D
Algoritmo di Horn (cont.) Analisi della schedulabilità: deve essere fatta ad ogni arrivo le deadline devono essere riscalate ad ogni arrivo del tempo dellarrivo Istante 0: sono presenti in coda J1 e J2 (nellordine). Tempo residuo per J1: 1; per J2: 2. 1 <= d1= <= d2=5 Istante 2: sono presenti in coda J3 e J2 (nellordine). Tempo residuo per J3: 2; per J2: 1 2 <= d3=22+1 <= d2= 3 Istante 3: sono presenti in coda J3, J2, J4 (nellordine). Tempo residuo per J3: 1; per J1: 1; per J4: 2 1 <= d3=11+1 <= d1= <= d4=7 Istante 6: sono presenti in coda J5, J4 (nellordine). Tempo residuo per J5: 2; per J4: 1 2 <= d5=32+1 <= d4= J1 J2 J3 J4 J5
Schedulazione senza pre-emption algoritmo di Horn Se si esclude lipotesi di preemption, con attivazione dinamica lalgoritmo EDF non e piu ottimo Esempio: 521J2J2 740J1J1 DiDi CiCi aiai J1J1 J2J2 J1J1 J2J2 Schedulazione ottima Schedulazione EDF
Schedulazione senza pre-emption: Algoritmo di Bratley Schedulazione senza pre-emption di un insieme di task attivati dinamicamente Ricerca su un albero con pruning Complessita O(nn!) Algoritmo off-line. Esempio: 420J4J4 621J3J3 511J2J2 724J1J1 didi CiCi aiai Numero nel nodo task che viene schedulato Numero accanto al nodo tempo in cui il task termina J + task che supera la deadline schedulazione fattibile
Schedulazione senza pre-emption: Algoritmo Spring Sistema Hard real-time Garantisce dinamicamente (on-line) lesecuzione dei processi attivati tenendo conto dei vincoli (temporali, di precedenza, sulle risorse, no pre-emption, esecuzione su multiprocessore, fault tolerance …) Usa una funzione di costo H euristica Ogni volta che si estende una schedulazione parziale, si valuta H per i task non ancora schedulati e si sceglie quello che minimizza H Albero delle schedulazioni con pruning. Alcune funzioni euristiche: H=1 FCFS H=C SJF H=d EDF H=Test ESTF (Earliest Start Time First) H=d+W*C EDF+SJF
Algoritmi di Scheduling con Vincoli di Precedenza Puo essere risolta con algoritmi polinomiali solo se si impongono ipotesi semplificative Algoritmo Latest Deadline First (LDF). Algoritmo (1|prec, a 0 | L max ) Algoritmo: Dato un insieme J di n task con grafo di precedenza, si costruisce la lista di scheduling a partire dal fondo. Fra tutti i task che non hanno successori nel grafo, si seleziona il processo con la deadline piu lunga. Schedulato lultimo task, la lista viene eseguita in ordine inverso. Esempio: 61JFJF 51JEJE 31JDJD 41JCJC 51JBJB 21JAJA diidii CiCi
Algoritmo EDF con vincoli di precedenza Algoritmo (1|prec,pre-empt|L max ) Modifica i tempi di arrivo e le deadline di tutti i processi in modo da trasformare i vincoli di precedenza in vincoli temporali. Dopo le trasformazioni, i processi sono schedulati con EDF Modifica dei tempi di arrivo: per ogni nodo iniziale del grafo di precedenza, a i *=a i si seleziona un task J k non ancora modificato, tale che tutti i suoi predecessori siano stati modificati. Se J k non esiste, termina. Modifica il tempo di arrivo di J k : a k *=max(a k, max(a i *+C i :J i J k )] Vai al punto 2) Modifica i tempi di deadline: per ogni nodo terminale, d i *=d i seleziona un task J k non ancora modificato tale che tutti i suoi successori siano stati modificati. Se J k non esiste, si termina modifica la deadline di J k : d k *=min[d k, min(d i *-C i :J k J i )] vai al 2) Complessita O(n 2 )
Schedulazione di task periodici Sono la maggioranza delle attivita di elaborazione. Es. regolazione, acquisizione, filtraggio, monitoraggio, comando di attuatori etc. Ipotesi: Tutte le richieste di esecuzione sono inoltrate ad intervalli regolari (periodo) Il tempo di eseuzione di un task e costante La deadline coincide con la fine del periodo corrente Tutti i task sono indipendenti Quindi, un processo periodico e caratterizzato da due parametri: Periodo T i Tempo di esecuzione C i
Schedulazione di task periodici Ulteriori definizioni: Istante di richiesta: istante in cui una istanza periodica diventa pronta per lesecuzione Frequenza di richiesta: inverso del periodo di un task Tempo di risposta: tempo che intercorre tra istante di richiesta e istante di completamento Istante critico: istante di richiesta che genera il piu lungo tempo di risposta Zona critica: intervallo tra istante critico e istante di completamento dellistanza. Equivale al tempo di risposta piu lungo.
Schedulazione di task periodici Fattore di utilizzazione del processore U E la frazione di tempo utilizzata dalla CPU per eseguire linsieme di task (e una misura della occupazione del tempo di CPU per eseguire un insieme di task periodici) In un insieme di n task: Il processore e completamente utilizzato dallinsieme di task se un piccolo aumento di un C i rende la schedulazione non fattibile Limite superiore minimo U lsm del fattore di utilizzazione: minimo tra i fattori di utilizzazione calcolati su tutti gli insiemi di task che utilizzano completamente il processore. Parametro caratteristico di scheduling. E il carico massimo gestibile da un algoritmo di schedulazione.
Schedulazione di task periodici Se un insieme di task periodici ha un fattore di utilizzazione del processore U minore di U lsm linsieme di task è sicuramente schedulabile Se un insieme di task periodici ha un fattore di utilizzazione del processore U maggiore o uguale a U lsm linsieme di task potrebbe essere schedulabile Zona di schedulabilità per qualsiasi insieme U lsm1 U lsm2 U lsm3 U lsm4 U lsm1 U lsm
Schedulazione di task periodici Teorema di schedulabilità generale Condizione sufficiente per la schedulabilità di un insieme di task periodici con un algoritmo A è U U lsm (A) Dim. Direttamente dalla definizione di U lsm Teorema della non schedulabilità Condizione sufficiente per la non schedulabilità è U > 1. Dim. Sia T=T 1 T 2 …T n = T i. Se U>1 UT>T. Quindi: (T/T i )C i > T La quantità (T/T i ) rappresenta il nr. di volte che il task t i viene eseguito in T, mentre (T/T i )C i rappresenta il tempo di calcolo richiesto dal task t i nel tempo T. Quindi la domanda totale in [0,T] è superiore al tempo disponibile T, quindi la schedulazione non è fattibile con nessun algoritmo.
Schedulazione di task periodici Analisi del tempo di risposta per valutare la schedulabilità: Valutazione del tempo di risposta nel caso peggiore, R, e controllo della deadline: Valutazione del tempo di risposta nel caso peggiore: è dato dal tempo di calcolo più interferenze dei task a più alta priorità: Durante R i, ogni task a più alta priorità esegue Linterferenza totale è data da Quindi il tempo di risposta nel caso peggiore R i può essere descritto con dove la sommatoria è estesa a tutti i task di priorità maggiore del task i R D volte
Schedulazione di task periodici Solve by forming a recurrence relationship: La soluzione della equazione dove hp(i) è linsieme dei task a priorità maggiore di i, è ottenuta per ricorrenza: Quando la ricorrenza converge, cioè i valori restano costanti, si ottiene il termine R i
Schedulazione di task periodici a priorità fissa Priorità stabilite a priori Come stabilire le priorità dei task? Sulla base dei tempi di esecuzione Priorità maggiore ai task con maggiore/minore tempo di esecuzione Sulla base dei periodi Priorità maggiore ai task con maggiore/minore periodo di esecuzione Sulla base della utilizzazione Priorità maggiore ai task con maggiore/minore coefficiente di utilizzazione Sulla base delle deadline Priorità maggiore ai task con maggiore/minore tempo di deadline …
Schedulazione di task periodici a priorità fissa: Rate Monotonic Supponiamo di ordinare i task secondo periodi crescenti Algoritmo Rate Monotonic: assegna ad ogni processo una priorita direttamente proporzionale alla propria frequenza di richiesta (task con periodo breve priorita elevata) Chiamato anche Shortest Period First (SPF) Pre-emptive, statico Proprieta: RM e ottimo, nel senso che se un insieme di task NON e schedulabile con RM, allora non e schedulabile con nessun altra regola di assegnazione a priorita fisse
Schedulazione di task periodici a priorità fissa: Rate Monotonic Altro esempio:
Schedulazione di task periodici: Rate Monotonic Teorema della ottimalita di RM Se un insieme di task periodici NON e schedulabile con RM, allora non esiste un algoritmo di schedulazione a priorita fissa per quellinsieme di task. Dim. Si afferma che: se un insieme di task non e schedulabile con RM non esiste altra schedulazione. Cioe: se esiste una schedulazione e schedulabile con RM. Supponiamo di avere due task periodici 1 e 2, con T1<T2. Secondo RM, dovrebbe essere schedulato prima 1 e poi 2. Prendiamo una schedulazione non RM, cioe facciamo prima 2 poi 1. Affinche sia fattibile: (1)C1+C2 <= T1
Schedulazione di task periodici: Rate Monotonic Supponiamo ora di usare RM. Ci sono due possibili casi: Caso a) Cioè tutte le richieste di t1 vengono completate entro T2. Cioe Affinchè RM sia fattibile, deve essere Mostriamo che, se vale (1), allora RM è fattibile. Moltiplicando (1) per F: CVD
Schedulazione di task periodici: Rate Monotonic Caso b) Lultima esecuzione di 1 si sovrappone con 2. Cioe: In questo caso, RM e fattibile se : CVD
Calcolo di U lsm per RM Consideriamo due processi periodici 1 e 2 con tempi di esecuzione C 1 e C 2 e periodi tali che T1 < T2. Lalgoritmo RM assegna a 2 la priorità maggiore. Def: Aumentiamo il tempo di esecuzione C 2 fino a che sia possibile schedulare. Consideriamo i casi di prima, a) e b): Caso a) In questo caso, Allora, il fattore di utilizzazione è: Dato che [.] è negativa, il minimo valore di U di ha per T2-T1F e il max valore ammissibile di C2 è F è il numero di periodi completi di t1 allinterno di T2.
Calcolo di U lsm per RM Caso b) In questo caso Quindi il max valore ammissibile per C2 è Il fattore di utilzzazione è in questo caso: In questo caso la quantità tra parentesi [.] è positiva e U descresce al diminuire di C1. Il minimo di U si ha per il minimo di C1, cioè T2-T1F
Calcolo di U lsm per RM Qualè il valore minimo di U? Prendiamo il caso a). Sostituendo Chiamando per semplicità a=T2/T1 si scrive: Questa funzione tende a per a 0, e per a. In mezzo raggiunge un minimo. Il minimo si può valutare con dU/da=0 cioè 1- F(1+F)/a 2 =0 cioè Il valore di U nel punto di minimo è: nella espressione di U:
Calcolo di U lsm per RM Ricordiamo che cioè F è un numero intero: 1, 2, 3… perché T2>T1 U è crescente con F. Il minimo di F corrisponde al minimo di U, U lsm, e vale U lsm = 2(2 1/2 – 1) Si dimostra che la stessa relazione vale per numero di task maggiore di 2. Cioè il limite superiore minimo del fattore di utilizzazione del processore per la schedulazione Rate Monotonic vale, in generale per n task: U lsm = n(2 1/n – 1) Il valore decresce con n: per n=2 U lsm = 0.83 per n=3 U lsm = 0.78 per n=4 U lsm = 0.76 Per n tendente a lespressione converge verso 0.69
Calcolo di U lsm per RM
Earliest Deadline First (EDF) TiTi CiCi U=1/5+2/7+4/9=0.93 Uno dei piu usati, Complessita O(n) (lista ordinata) Si seleziona dalla lista dei processi pronti quello la cui deadline e piu imminente Pre-emptive: se arriva un task con deadline minore sospensione Utilizzabile nei SO a base prioritaria (priorita alta=deadline vicina) La coda dei processi pronti ordinata (velocizzare) Teorema di schedulabilità: Condizione necessaria e sufficiente per la schedulabilità e C i /T i 1 U lsm =1 Esempio:
Semplice dimostrazione della schedulabilità: Condizione necessaria e sufficiente per la schedulabilità e C i /T i 1 Necessarietà: schedulabilità C i /T i 1 Per assurdo: supponiamo che sched U > 1. Per il teorema della non schedulabilità si ha che se U>1 allora è non schedulabile. Questo contraddice lipotesi. Sufficienza: C i /T i 1 schedulabilità Per assurdo: suffoniamo che C i /T i 1 NON schedulabile. Se è Non schedulabile si può dimostrare che U > 1 cosa che contraddice lipotesi. Earliest Deadline First (EDF)
Esempio Si considerino i seguenti 3 task periodici: CT t124 t225 t326 Calcolo di U:U=2/4+2/5+2/6=1,23 I task non sono schedulabili t2 t t1 EDF ? t2 t t1 RM ?
Esempio (cont.) Facendo riferimento allesempio della slide precedente: CT t124 t225 t326 Vogliamo qui calcolare i tempi massimi di risposta usando la ricorrenza Per RM le priorità decrescono da t1 a t3. Risulta quindi che t1 non può essere interrotto da nessun task, t2 può essere interrotto da t1 e t3 può essere interrotto da t1 e t2. Quindi (senza fare tutti i conti): w 1 =C 1 =2<d 1 =T1=4 w 0 2 =C 2 =2; w 1 2 = C 2 + ceil( w 0 2 /T 1 ) C 1 = 4; w 1 3 =4 < d2=T 2 =5 w 0 3 =C 3 =2; w 1 3 = C 3 + ceil( w 0 3 /T 1 ) C 1 +ceil( w 0 3 /T 2 ) C 2 =6; w 2 3 =10; w 3 3 =12; w 4 3 =14; w 5 3 =16; w 6 3 =18; w 7 3 =20; w 7 3 =20 che non è minore di d3!!
Esempio 1 Verificare la schedulabilità dei seguenti due task periodici con Rate Monotonic: 1 o : calcolo del coefficiente di utilizzazione: 2 o : calcolo del limite superiore: Risposta: i due task periodici sono schedulabili con Rate Monotonic:
Esempio 2 Verificare la schedulabilità con RM dei seguenti tre task periodici: Calcolo del coeff. di utilizzazione CPU e limite superiore: I task periodici potrebbero essere schedulabili. Analisi del tempo di risposta nel caso peggiore:
Esempio 2 - cont Analisi del tempo di risposta nel caso peggiore: Linsieme di task è schedulabile con RM!
Esempio 3 Verificare la schedulabilità con RM dei seguenti task periodici: Calcolo della utilizzazione del processore e del limite superiore Linsieme di task non è schedulabile con RM
Esempio 4 Verificare la schedulabilità con EDF dei seguenti task periodici: Test di schedulabilità: (Di=Ti) Linsieme dei task è schedulabile con EDF
Esempio 4 - cont Schedulazione:
Deadline Monotonic Estensione del RM: schedulazione di processi periodici con deadline indipendenti dal periodo Parametri: C i = tempo massimo di esecuzione T i = periodo D i = deadline relativa allistante della richiesta D i = d i – r i C i <= D i <= T i Algoritmo: Viene schedulato il processo con la deadline relativa piu corta Nei sistemi a base prioritaria, P i = 1/D i Test di schedulabilita ( condizione sufficiente): TiTi DiDi CiCi didi
RM vs EDF: Ottimalità Rate Monotonic è ottimo per gli algoritmi a priorità fissa: priorità inversamente proporzionale al periodo EDF è ottimo per gli algoritmi a priorità dinamica: priorità inversamente proporzionale alla deadline Tutti i task schedulabili con RM sono anche schedulabili con EDF Ma: per n-> inf. RM può schedulare sicuramente con una occupazione massima di 0.69 Mentre EDF può schedulare anche con una occupazione al 100%
RM vs EDF: Overhead Overhead di Calcolo EDF deve ricalcolare le priorità ad ogni arrivo RM calcola le priorità una sola volta Overhead di Context-switch Dovuto alla pre-emption EDF deve fare molte interruzioni per rispettare le priorità Esempio di due task periodici (c, p): 1 (2,5), 2 (4,7) U=0.97 t2 t t2 t RM EDF 15 Deadline mancata!
RM vs EDF: Overhead Numero di interruzioni: risultati di simulazione Valori medi, 1000 simulazioni, periodi random da 10 a 100, U=0.9 Per pochi task, il num di interruzioni cresce Per molti task, la durata scende (U=0.9!) e quindi scende il numero di interr. Numero di task Numero di interruzioni
Server aperiodici a priorità fissa Finora, schedulazione di processi omogenei: processi unicamente aperiodici processi unicamente periodici Problema generale: schedulazione di task misti, cioe insiemi di task periodici e aperiodici Ipotesi: tutti i processi periodici siano gestiti da algoritmi a priorita fissa tutti i processi periodici siano attivati simultaneamente tutti i processi aperiodici siano attivati dinamicamente Problema maggiore: come garantire la ciclicita dei processi periodici senza ritardare troppo lesecuzione dei processi aperiodici
Schedulazione in background 104 J2J2 62 J1J1 CiCi aiai aperiodici I task aperiodici sono schedulati solo quando il processore e libero. Cioe quando non ci sono task periodici in esecuzione. Starvation: tempo residuo insufficiente per i task aperiodici Inefficiente per i processi aperiodici, ma di facile realizzazione Possibile realizzazione: due code a priorita diversa. La coda a bassa priorita e servita solo quando la prima e vuota; un task periodico causa la pre-emption dei task aperiodici Esempio in cui i task periodici sono schedulati con RM 104 B 62 A TiTi CiCi periodici
Schedulazione in background Garanzia task periodici: garantita indipendentemente dai task aperiodici Garanzia task aperiodici di tipo hard real time: - Identificare gli intervalli di tempo in cui il processore è libero. - Sia H il MCM dei periodi (iperperiodo); la schedulazione periodica si ripete ogni H. - Sia U il fattore di utilizzazione dellinsieme periodico. - Il tempo disponibile per gli aperiodici è: = (1-U)H Teorema Condizione sufficiente per la schedulabilità in background di un task aperiodico con durata C e deadline D è data da: C --- H D
Polling Server (PS) Processo periodico da dedicare ai processi aperiodici. Tempo di calcolo Cs ( Capacita del server) PS serve le richieste aperiodiche in attesa (pendenti) Se non ci sono richieste in attesa, PS si sospende fino al periodo seguente; la sua capacita e usata per lesecuzione periodica Schedulazione dei processi periodici: RM o EDF Esempio con EDF Task C i T i server Periodici a 2 6 C s =2 b 3 8 T s =7 Esempio con RM Task C i T i server Periodici a 1 4 C s =2 b 2 6 T s =5
Deferrable Server (DS) - Lehoczky et al., 87 Simile al PS: un server periodico serve le richieste aperiodiche MA: il DS conserva la propria capacita per tutto il periodo anche se non ci sono richieste aperiodiche pendenti Migliora il tempo di risposta delle richieste aperiodiche (fornisce un servizio immediato) Esempio: con RM le priorità sono a – DS – b, quindi DS si trova a priorità media
Deferrable Server (DS) - Lehoczky et al., 87 Confronto con PS 0 PS (2) 0 5 Ci Ti PS ape Capacità PS Priorità alta 0 DS Ci Ti DS 2 6 ape Capacità DS Priorità alta (1) (2) (1)
Deferrable Server (DS) - Lehoczky et al., 87 DS può migliorare il tempo di risposta degli aperiodici. Ma: il guadagno in termini di tempo di risposta si paga in termini di schedulabilità. Esempio: RM 0 miss DS Capacità DS
Deferrable Server (DS) - Lehoczky et al., 87 Limite Superiore Minimo con RM Per n infinito Dove Us è in fattore di utilizzazione di DS e Up dei periodici
Priority Exchange - Lehoczky et al 87 Crea un server periodico per servire i task aperiodici MA: preserva la capacita del server scambiandola con il tempo di esecuzione di un task periodico a priorita piu bassa Esempio:
Sporadic Server (SS) - Sprunt et al., 89 Non e un task periodico, ma un gestore di capacita La capacita viene consumata e ripristinata dinamicamente in funzione delle richieste aperiodiche SS conserva la sua capacita fino allarrivo di una richiesta aperiodica La capacita viene ripristinata solo dopo che essa sia stata consumata da una richiesta aperiodica; riempimento agli istanti t+Ts Regole di ripristino: Se Cs > 0 il tempo di ripristino viene calcolato appena SS diventa attivo, e posto uguale a t attuale + T SS Se Cs = 0 il tempo di riempimento viene valutato quando SS e attivo e Cs diventa > 0 Il riempimento viene effettuato allistante calcolato quando SS diventa disattivo (idle) oppure se Cs e stata consumata Lammontare del riempimento e uguale al tempo consumato nellultimo intervallo di attivita Migliora il tempo di risposta delle richieste periodiche senza degradare il fattore di utilizzazione
Sporadic Server (SS) - Sprunt et al., 89 Esempio di Sporadic Server:
Slack Stealer (SSt) - 92 Migliora i tempi di risposta delle richieste aperiodiche soft in presenza di attivita periodiche hard RT SSt e un gestore della risorsa tempo Il tempo di esecuzione assegnato alle richieste aperiodiche viene rubato ai task periodici Esempio:
Confronto prestazioni Mediante simulazione discreta Insieme di 10 task periodici con periodi da 54 a 1200 e fattore di utilizzazione complessivo pari a 69%. Task aperiodici variabili dal 5 al 30%. Tempi di interarrivo esponenziali Un risultato rappresentativo:
Server Aperiodici a Priorità dinamica I processi periodici sono schedulati mediante algoritmi a priorita dinamica (es. EDF). Gli algoritmi dnamici permettono di raggiungere la piena utilizzazione del processore Alcuni algoritmi: Earliest Deadline as Late as Possible (EDL) - 94 Algoritmo ottimo. I task attivi ordinati per deadline sono schedulati il piu tardi possibile Earliest Deadline as Soon as Possible (EDS) - 95 I task attivi sono schedulati appena possibile secondo EDF Dynamic Priority Exchange (DPE) - 95 In assenza di richieste aperiodiche la capacita del server non viene persa ma viene scambiata con il tempo di esecuzione delle richieste periodiche a priorita piu bassa (cioe deadline piu alta)
Server Aperiodici a Priorità dinamica Esempio di EDL e DPE:
Server Aperiodici a Priorità dinamica Total Bandwidth Server (TBS) Spuri-Buttazzo 1996 Assegna una deadline più vicina ad ogni richiesta aperiodica – senza superare il limite di schedulabilità Banda del server = fattore di utilizzazione del server U s TBS assegna tutta la banda al momento disponibile disponibile alle richieste aperiodiche Quando la k-esima richiesta aperiodica arriva al tempo t=r k, riceve una deadline d k = max(r k, d k-1 )+ C k /U s d 0 =0 La richiesta aperiodica viene quindi schedulata con gli altri task periodici con EDF Teorema di schedulabilità Condizione necessaria e sufficiente per la schedulabilità di un insieme di task periodici con fattore di utilizzazione Up con un TBS con fattore di utilizzazione U s è che U p + U s 1
Server Aperiodici a Priorità dinamica Total Bandwidth Server (TBS) Esempio: Up=3/6 + 2/8 = ¾ Us=1/4(Up+Us=1) d1=r1+C1/Us=3+1/0.25=7 d2=r2+C2/Us=17d3=17+C3/Us=21
Altre problematiche dei sistemi operativi RT Protocolli di accesso a risorse condivise bloccaggio che i processi possono subire durante laccesso a risorse comuni meccanismi classici non possibili: inversione di priorita Gestione dei sovraccarichi la richiesta di calcolo eccede la disponibilita, e quindi non tutti i processi possono terminare entro i vincoli temporali specificati uso di algoritmi di schedulazione robusti che usano un altro parametro per decidere la schedulazione (limportanza del task) Meccanismi di comunicazione tra processi dove possibile, semafori e memoria condivisa nei sistemi distribuiti, scambio di messaggi