Title: Sistemi Real-Time
1Sistemi Real-Time
- Ing. Rigutini Leonardo
- Dipartimento di Ingegneria dellinformazioneUnive
rsità di Siena
2Sistema Real-Time
- Sistema in cui la correttezza non dipende
solamente dai valori di output ma anche dal tempo
con cui tali risultati sono prodotti - REAL TIME significa che il tempo di sistema deve
essere sincronizzato con il tempo dellambiente
Ambiente
Input x(t)
RTSystem
t
Output y(t?t)
t
3Tipiche applicazioni Real-Time
- Sistemi militari per la difesa
- Controllo di impianti nucleari o chimici
- Robotica
- Sistemi di gestione scambi ferroviari
- Sistemi di monitoraggio (aereo, ferroviario )
- Sistemi di telecomunicazioni
4Approccio tradizionale
- Molte applicazioni RT sono sviluppate con metodi
empirici - Programmazione assembler
- Temporizzazione tramite timer dedicati
- Controllo attraverso programmazione dei driver
- Manipolazione delle priorità
- Svantaggi
- Programmazione noiosa e dipendente dalle capacità
umane - Codice poco leggibile
- Difficile manutenzione
- Difficile verifica dei vincoli temporali
5Progetto di un sistema RT
- La fase di test, anche se necessaria, non
permette una verifica completa del sistema - La predicibilità deve essere migliorata a livello
di kernel - Gestione dei sovraccarichi (Overload handling)
- Tolleranza ai guasti (Fault-Tolerance)
- I sistemi critici devono essere progettati con
assunzioni pessimistiche (legge di Murphy)
6Real-Time ? Veloce
- Real-Time non è un sistema veloce
- La velocità è relativa all ambiente
- Es. tartaruga e topolino
- Essere più veloce è un vantaggio ma non
garantisce la correttezza - Un sistema RT deve garantire il comportamento
temporale di ogni task - Un sistema veloce deve minimizzare il tempo di
risposta medio di un insieme di task
7Fondamenti di S.O
- Stati di un task
- Scheduler
BLOCKED
signal
wait
preemption
activation
termination
READY
RUNNING
dispatching
Task from blocked
Ready queque
Scheduler
CPU
New task
8Schedule
- Uno schedule è una particolare assegnazione di
task al processore - sia Gt1, t2, , tn linsieme dei task,
- uno schedule è un mapping s R ? N tale che
- ?t ?R, ?t1 ,t2 t ? t1 ,t2) e ?t? t1 ,t2)
s(t) s(t) - s(t)
Kgt0 se tn è in esecuzione
0 altrimenti
idle
idle
t1
t2
t3
t2
3
2
preemption
1
0
t1
t2
t3
t4
t5
9Real-Time Task
Di
Ci
ti
ri
si
fi
di
di absolute deadline Di relative deadline
fi finishing time
ri request time (arrival time ai) si start
time Ci tempo di esecuzione nel caso peggiore
(wcet)
slack
ci(t)
ti
ri
si
fi
di
t
Li fi di Margine Max(0,Li) Ritardo
ci(t) Residual wcet ci(ri)Ci di t
ci(t) laxity o slack
10HARD e SOFT task
- HARD task
- Mancare la deadline può causare effetti
catastrofici - Acquisizione di dati da sensori
- Controllo a basso livello
- SOFT task
- Mancare la deadline causa solamente un degrado di
prestazioni - Visualizzazione di messaggi
- Interpretazione di comandi utente
- Un sistema capace di gestire HARD task è detto
hard real-time
11Modi di attivazione
- Time Driven (task periodici)
- Il task è attivato automaticamente dal kernel ad
intervalli regolari - Event Driven (task aperiodici)
- Il task è attivato al verificarsi di un evento o
attraverso una esplicita invocazione della
primitiva di attivazione
Aperiodico
Sporadico
12Vincoli
- Temporali
- Es. Attivazione, completamento,
- Possono essere
- Espliciti inclusi nelle specifiche
- Impliciti derivano da specifiche che sembrano
non temporali (es. spazio di frenata dipende
dalla velocità) - Precedenza
- Impongono un ordine nellesecuzione dei task
- Risorse
- Forzano una sincronizzazione negli accessi a
risorse mutuamente esclusive
13Anomalie di scheduling -1
3 processori
Aumento del numero di processori
4 processori
Task più brevi
14Anomalie di scheduling -2
15Scheduling
- Uno schedule è detto ammissibile se ogni task
termina rispettando un insieme di vincoli - Uno scheduling può essere
- Preemptive / Non Preemptive
- Possibilità di sospensione di un task
- Statico / Dinamico
- Decisioni prese in base a parametri fissi /
variabili con il tempo - On line / Off Line
- Decisioni prese prima dellattivazione del task /
a run time - Best Effort / Ottimo
- Fa del suo meglio per trovare uno scheduling
ammissibile / trova sempre uno scheduling se ne
esiste uno
16Scheduling classici
- FCFS (First Come First Served)
- CPU assegnata in base ai tempi di arrivo
- Non Preemptive, Dinamico, OnLine, BestEffort
- Altamente impredicibile
- SJF (Shortest Job First)
- CPU assegnata al task con C minore
- Non preemptive o preemptive, statico (Ci
fissati), on-line od off-line - Minimizza il tempo di risposta medio
- PS (Priority scheduling)
- Viene eseguito il task con P maggiore
- Preemptive,Statico o Dinamico, on-line
- Problema starvation ? soluzione aging
- RR (Round Robin)
- FCFS con time sharing
- Ogni task ha a disposizione un lasso di tempo Q,
altrimenti viene sospeso e riattivato nQ dopo - Ogni task viene eseguito come se fosse su un
processore n volte più lento
17Scheduling Real-Time Task Aperiodici
- Per semplicità non consideriamo i vincoli di
precedenza - I task possono essere schedulati in base
- Deadline relativa (Di) ? Earliest Due Date (EDD)
- Statico (Di fissati)
- Preemptive o meno
- Tutti i task arrivano simultaneamente
- Minimizza il massimo margine (Lmax)
- Deadline assoluta (di) ? Earliest Deadline First
(EDF) - Dinamico (di dipende dal tempo di arrivo)
- Preemptive
- Task possono arrivare in qualsiasi istante
- Minimizza il massimo margine (Lmax)
18Earliest Due Date (EDD)
- Seleziona il task con la deadline relativa (Di)
minore - Minimizza il massimo margine (Lmax)
- Test di garanzia off-line (istante di arrivo
noto)
19Earliest Deadline First (EDF)
- Seleziona il task con la deadline assoluta (di)
minore Horn 74 - Minimizza il massimo margine (Lmax)
- Test di garanzia on-line (i task possono arrivare
in qualsiasi istante)
20Scheduling Real-Time Task Periodici
Task Periodico
- Per ogni task periodico garantire
- ogni job ?ik sia attivato allistante rik(K-1)Ti
- ogni job ?ik termini entro dik rik Di
- Due tassonomie di algoritmi
- Timeline scheduling
- Utilizzato per 30 anni in tutti i sistemi RT
(militare, navigazione, ) - Asse dei tempi suddivisa in intervalli allocati
staticamente ai vari task - Priority Scheduling
- Priorità assegnate in base ai vincoli temporali
di ogni task - Vari tipi di algoritmi a seconda del modo di
fissare le priorità
21Timeline Scheduling
- Deadline relativa uguale al periodo Di Ti
- Vantaggi
- Implementazione semplice
- Basso overhead
- Svantaggi
- Poco robusto durante sovraccarichi cosa fare se
un task sfora la deadline? - Lasciare finire il task ? effetto domino
- Abortire il task ? pericolo di stati
inconsistenti - Bassa espandibilità
- Modifica di uno o più task ? riprogettare tutto,
compreso T e ? - Difficile da gestire la presenza di task
aperiodici
22Priority Scheduling Rate Monotonic (RM)
- Priorità inversamente proporzionale alla
frequenza del task Liu e Layland 73 - Deadline relativa uguale al periodo Di Ti
- Fattibilità
- Ogni task utilizza la CPU per una frazione di
tempo pari a - Quindi lutizzazione del processore è
- Se Up gt 1 il processore è sovraccaricato ? T non
schedulabile - Ci sono casi di non schedulabilità anche con Up lt
1
Up misura il carico del processore
23Utilization Upper Bound
- LUtilization Upper Bound Uub dipende
dallinsieme dei task -
- Nel 1973 Liu e Layland provarono che per un
insieme di n task periodici
Ulub Least Upper Bound
Up 3/6 3/9 0.833
Up 2/4 4/8 1
se Up Ulub certamente schedulabile se Ulub Up
1 non possiamo dire niente
24Priority Scheduling Earliest Deadline First (EDF)
- Deadline relativa uguale al periodo Di Ti
- Ogni task riceve una assoluta deadline di,k
ri,k Di con ri,k ri,1 (k-1)Ti - Il processore è assegnato al task con di,k minore
- Utilizzo del processore fino al 100
- Schedulabilità
- Nel 1973 Liu e Layland provarono che per un set
di n task periodici - Un insieme di task è schedulabile EDF se e solo
se Up 1
25RM vs EDF
- RM
- Semplice da implementare su S.O. commerciali
- Più predicibile durante i sovraccarichi
- EDF
- Più efficiente
- Riduzione dei content switch
26Task Periodici con D lt T
- Deadline Monotonic (DM)
- Priorità inversamente proporsionale a D ? pi ?
1/Di - Earliest Deadline First (EDF)
- Priorità inversamente proporsionale a d ? pi ?
1/di
27Task Aperiodici Task Periodici
- Scheduling globale periodico
- Si utilizza un task periodico (server) che
gestisce i task aperiodici - Servers
- Priorità dinamica
- Dynamic Polling server (DPS)
- Dynamic Deferrable server (DDS)
- Priorità fissa
- Polling server (PS)
- Deferrable server (DS)
28Sommario
- Argomenti trattati in questo seminario
- Introduzione ai S.O.
- Scheduling RT di Task Aperiodici
- Scheduling RT di Task Periodici
- Task Aperiodici Task Periodici