Sistemi Real-Time Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dell’informazione Università di Siena
Sistemi Real-TimeSistemi Real-Time
Ing. Rigutini Leonardo
Dipartimento di Ingegneria dell’informazioneUniversità di Siena
Rigutini Leonardo – Sistemi Real-Time Slide n° 2
Ambiente
Sistema Real-TimeSistema 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 dell’ambiente
RTSystem
Input x(t)
Output y(t+Δt)t t
Rigutini Leonardo – Sistemi Real-Time Slide n° 3
Tipiche applicazioni Real-TimeTipiche 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
Rigutini Leonardo – Sistemi Real-Time Slide n° 4
Approccio tradizionaleApproccio 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
Rigutini Leonardo – Sistemi Real-Time Slide n° 5
Progetto di un sistema RTProgetto 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)
Rigutini Leonardo – Sistemi Real-Time Slide n° 6
Real-Time ≠ VeloceReal-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
Rigutini Leonardo – Sistemi Real-Time Slide n° 7
Fondamenti di S.OFondamenti di S.O
Stati di un task:
Scheduler:
READY
BLOCKED
RUNNING
signal
preemption
dispatching
activation termination
wait
Scheduler
Ready queque
New task
Task from blocked
CPU
Rigutini Leonardo – Sistemi Real-Time Slide n° 8
ScheduleSchedule
Uno schedule è una particolare assegnazione di task al processore:
• sia Γ={τ1, τ2, … , τn } l’insieme dei task, uno schedule è un mapping σ : R+ N tale che
t R+, t1 ,t2 : t [t1 ,t2) e t’ [t1 ,t2): σ(t)= σ(t’)
σ(t)= K>0 se τn è in esecuzione
0 altrimenti
0123
t1 t2 t3 t4
idle idleτ1 τ2 τ3 τ2
t5
preemption
Rigutini Leonardo – Sistemi Real-Time Slide n° 9
Real-Time TaskReal-Time Task
Ci
Di
ri si fi di
ri request time (arrival time ai)
si start time
Ci tempo di esecuzione nel caso peggiore (wcet)
τi
ci(t)
ri si fi di
τi
di absolute deadline
Di relative deadline
fi finishing time
slack
t
Li = fi – di Margine
Max(0,Li) Ritardo
ci(t) Residual wcet ci(ri)=Ci
di – t – ci(t) laxity o slack
Rigutini Leonardo – Sistemi Real-Time Slide n° 10
HARD e SOFT taskHARD 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
Rigutini Leonardo – Sistemi Real-Time Slide n° 11
Modi di attivazioneModi 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 attivazioneAperiodico:
Sporadico:
Rigutini Leonardo – Sistemi Real-Time Slide n° 12
VincoliVincoli• Temporali
– Es. Attivazione, completamento, …– Possono essere:
Espliciti – inclusi nelle specificheImpliciti – derivano da specifiche che sembrano non
temporali (es. spazio di frenata dipende dalla velocità)
• Precedenza– Impongono un ordine nell’esecuzione dei task
• Risorse– Forzano una sincronizzazione negli accessi a risorse
mutuamente esclusive
Rigutini Leonardo – Sistemi Real-Time Slide n° 13
Anomalie di scheduling -1 Anomalie di scheduling -1 3 processori
4 processori
Task più brevi:
Aumento del numero di processori:
Rigutini Leonardo – Sistemi Real-Time Slide n° 14
Anomalie di scheduling -2Anomalie di scheduling -2
Processore 2 volte più veloce:
Rimuovendo i vincoli di precedenza:
Rigutini Leonardo – Sistemi Real-Time Slide n° 15
SchedulingSchedulingUno 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 dell’attivazione 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
Rigutini Leonardo – Sistemi Real-Time Slide n° 16
Scheduling classiciScheduling 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
Rigutini Leonardo – Sistemi Real-Time Slide n° 17
Scheduling Real-Time: Task Scheduling Real-Time: Task AperiodiciAperiodici
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)
Rigutini Leonardo – Sistemi Real-Time Slide n° 18
Earliest Due Date (EDD)Earliest 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):
If Lmax <0 then nessun task manca la sua deadline
ik=0..i
CkDi
Rigutini Leonardo – Sistemi Real-Time Slide n° 19
Earliest Deadline First (EDF)Earliest 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):
Es.
ifi =k=0..i ck(t)di
- t
t
Notare che fi = fi-1 + ci(t)
Rigutini Leonardo – Sistemi Real-Time Slide n° 20
Scheduling Real-Time: Task Scheduling Real-Time: Task PeriodiciPeriodici
Per ogni task periodico garantire:• ogni job ik sia attivato all’istante 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à
Task Periodico:
Rigutini Leonardo – Sistemi Real-Time Slide n° 21
Timeline SchedulingTimeline Scheduling• Deadline relativa uguale al periodo: Di = Ti
Vantaggi:1. Implementazione semplice2. Basso overhead
Svantaggi:1. 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
2. Bassa espandibilità – Modifica di uno o più task riprogettare tutto, compreso T e ∆
3. Difficile da gestire la presenza di task aperiodici
Vincoli:Ca + Cb ≤ Δ
Ca + Cc ≤ Δ
Rigutini Leonardo – Sistemi Real-Time Slide n° 22
Priority Scheduling: Rate Monotonic Priority Scheduling: Rate Monotonic (RM)(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 l’utizzazione del processore è:
• Se Up > 1 il processore è sovraccaricato T non schedulabile
• Ci sono casi di non schedulabilità anche con Up < 1
Es.
Up misura il carico del processore
Rigutini Leonardo – Sistemi Real-Time Slide n° 23
Utilization Upper BoundUtilization Upper Bound
• L’Utilization Upper Bound Uub dipende dall’insieme dei task:
• Nel 1973 Liu e Layland provarono che per un insieme di n task periodici:
Up = 3/6 + 3/9 = 0.833
Up = 2/4 + 4/8 = 1
se Up ≤ Ulub certamente schedulabilese Ulub ≤ Up ≤ 1 non possiamo dire
niente
Ulub = Least Upper Bound
2ln,)12( lub1
lub RMnRM UnpernU
Rigutini Leonardo – Sistemi Real-Time Slide n° 24
Priority Scheduling: Earliest Deadline First Priority Scheduling: Earliest Deadline First (EDF)(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
1lub EDFU
Rigutini Leonardo – Sistemi Real-Time Slide n° 25
RM vs EDFRM vs EDF
RM:• Semplice da implementare su S.O. commerciali• Più predicibile durante i sovraccarichi
EDF• Più efficiente• Riduzione dei content switch
Rigutini Leonardo – Sistemi Real-Time Slide n° 26
Task Periodici con Task Periodici con D < TD < T
1. Deadline Monotonic (DM)• Priorità inversamente proporsionale a D pi 1/Di
2. Earliest Deadline First (EDF)• Priorità inversamente proporsionale a d pi 1/di
Rigutini Leonardo – Sistemi Real-Time Slide n° 27
Task Aperiodici + Task PeriodiciTask 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)
Rigutini Leonardo – Sistemi Real-Time Slide n° 28
SommarioSommario
• Argomenti trattati in questo seminario:
1.Introduzione ai S.O.
2.Scheduling RT di Task Aperiodici
3.Scheduling RT di Task Periodici
4.Task Aperiodici + Task Periodici