Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di...

28
Sistemi Real-Time Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dell’informazione Università di Siena

Transcript of Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di...

Page 1: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

Sistemi Real-TimeSistemi Real-Time

Ing. Rigutini Leonardo

Dipartimento di Ingegneria dell’informazioneUniversità di Siena

Page 2: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università 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

Page 3: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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

Page 4: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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

Page 5: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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)

Page 6: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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

Page 7: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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

Page 8: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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

Page 9: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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

Page 10: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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

Page 11: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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:

Page 12: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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

Page 13: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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:

Page 14: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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:

Page 15: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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

Page 16: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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

Page 17: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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)

Page 18: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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

Page 19: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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)

Page 20: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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:

Page 21: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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

Page 22: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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

Page 23: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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

Page 24: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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

Page 25: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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

Page 26: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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

Page 27: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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)

Page 28: Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dellinformazione Università di Siena.

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