Sei sulla pagina 1di 29

Introduzione ai

Sistemi in Tempo Reale


Corso di
Progetto e Sviluppo di
Sistemi in Tempo Reale

Marcello Cinque

1
Libri per il corso
⚫ Libro di testo:
⚫ G. Buttazzo – Sistemi in Tempo Reale – Pitagora Editrice

⚫ Libri consigliati per approfondimento:


⚫ J. Liu – Real-Time Systems – Prentice Hall
⚫ Ancilotti, Boari – Sistemi Operativi – McGraw Hill

2
Introduzione ai Sistemi in Tempo Reale

⚫ Sommario della lezione:


⚫ Concetti generali
⚫ Applicazioni

⚫ Caratteristiche desiderabili

⚫ Problematiche di progetto

⚫ Riferimenti
⚫ G. Buttazzo – Sistemi in Tempo Reale –
Pitagora Editrice (Cap. 1 – Par. 1.1-1.2)

3
Sistemi in Tempo Reale
⚫ I sistemi in tempo reale (o real-time) sono quei
sistemi di calcolo in cui la correttezza di
funzionamento non dipende solo dalla validità
dei risultati ma anche dal tempo in cui i risultati
sono prodotti.

⚫ Sistemi con un “doppio” concetto di correttezza:


⚫ Logica (“ it does the right thing” )
⚫ Temporale (“it does it on time”)

4
Cosa significa tempo reale?
⚫ La caratteristica che distingue l’elaborazione in
tempo reale dagli altri tipi di elaborazione è il tempo
⚫ La parola tempo indica che la validità dei risultati prodotti
non dipende solo dalla correttezza delle elaborazioni ma
dal tempo in cui i risultati sono ottenuti;
⚫ La parola reale indica che la risposta del sistema agli
eventi esterni deve avvenire durante l’evolversi degli
eventi stessi, e quindi il tempo interno di sistema deve
essere misurato secondo un riferimento temporale uguale
a quello dell’ambiente in cui esso opera.

5
Applicazioni
⚫ L’interesse per i sistemi real-time è motivato dalla
loro crescente diffusione nella nostra società.
⚫ Settori applicativi sempre più numerosi:
⚫ Sistemi di controllo (di volo, di automobili,
di impianti chimici e nucleari, …)
⚫ Sistemi di controllo del traffico (aereo, ferroviario)
⚫ Sistemi di sorveglianza e monitoraggio ambientale
⚫ Automazione industriale e robotica
⚫ Missioni spaziali e sistemi militari
⚫ Sistemi di telecomunicazione e multimediali
⚫ …

6
Applicazioni

Gestione della QoS Alte prestazioni Safety critical

REQUISITI
7
Esempio: controllo digitale
r(t)
u(t) y(t)
C P

controller plant

y(t) u(t)
r(t)

t t
8
Esempio: controllo digitale
r(t) rk
A/D uk u(t) y(t)
control-law
computation D/A Actuator P
A/D
yk
digital controller
Sensor

y(t) u(t)
r(t)

t t
9
Esempi di microcontrollori

Intel 8051 Processori ARM

Atmel AVR Microchip PIC

10
Schema della legge di controllo
set timer to interrupt periodically with period T;
at each timer interrupt, do:
do A/D conversion to get y;
compute control output u;
output u and do D/A conversion;
end do;

⚫ Ad es., la legge di controllo può essere quella di un


controllore PID (Proportional, Integral, Derivative):

uk = uk-2 + αek + βek-1 + γek-2


dove ek = rk - yk
11
Come scegliere il periodo di
campionamento T ?
⚫ Idealmente, un T piccolo riesce ad approssimare
meglio il segnale analogico…
⚫ … al costo di una maggiore richiesta di CPU
⚫ D’altra parte un T grande potrebbe rendere il sistema
instabile!

y(t) u(t)
r(t)

t t
12
Come scegliere il periodo di
campionamento T ?
⚫ Una buona regola empirica è quella di scegliere T
come un decimo del tempo di salita R:
T = R/10
⚫ Tempo di Salita (R): tempo necessario alla risposta y
dell’impianto per per portarsi dal 10% al 90% del valore di
regime r.

⚫ Ma siamo sicuri che l’hardware/software di controllo


sia capace di garantire sempre il periodo T ?

13
Come scegliere il periodo di
campionamento T ?
⚫ La situazione si complica nei sistemi multi-rate
⚫ sistemi composti da più sensori ed attuatori, per controllare
differenti grandezze contemporaneamente
⚫ es., velocità di rotazione e temperatura di un motore
⚫ In questo caso il controllore deve eseguire più
processi di controllo, ognuno con il suo periodo di
campionamento
⚫ … e ogni processo deve eseguire la propria legge di
controllo entro il proprio periodo …
Processo (o task): sequenza di istruzioni che, in assenza
di altre attività, viene eseguita dal processore in modo
continuativo fino al suo completamento.
Un processo è un programma in esecuzione.
14
Deadline

⚫ La deadline è il tempo massimo entro cui un


processo real-time deve terminare la propria
esecuzione (spesso coincidente con T ).
⚫ In un sistema real-tme, un risultato prodotto
oltre la deadline non solo è in ritardo, ma può
essere dannoso.
⚫ A seconda delle conseguenze di una mancata
deadline, i processi real-time vengono di solito
classificati in due tipi: hard e soft

15
Hard e soft real-time
⚫ Processo hard real-time: la violazione della propria
deadline comporta un effetto catastrofico sul sistema
⚫ Acquisizione dati sensoriali; rilevamento di condizioni critiche;
pianificazione di azioni senso-motorie di sistemi che
interagiscono strettamente con l’ambiente, …
⚫ Processo soft real-time: la violazione della propria
deadline comporta un degrado delle prestazioni,
senza compromettere il corretto funzionamento del
sistema
⚫ Interprete dei comandi; visualizzazione di messaggi sul
monitor, attività grafiche, salvataggio dati, …

16
Applicazioni

SOFT FIRM HARD

VINCOLI TEMPORALI
17
Tempo reale e velocità
⚫ Spesso il concetto di tempo reale è erroneamente
associato alla velocità di reazione del sistema
⚫ In realtà, sebbene le prestazioni dei computer miglio-
rino continuamente, non è scontato considerare che i
vincoli temporali di un’applicazione siano verificati
⚫ Mentre l’obiettivo generale di un’elaborazione veloce è
quello di minimizzare il tempo medio di risposta di un
insieme di processi, l’obiettivo di un’elaborazione
real-time è quello di soddisfare i requisiti temporali
individuali di ciascun processo.

18
Tempo reale e velocità
⚫ Quando i processi hanno dei requisiti individuali che
devono essere rispettati, le prestazioni medie
assumono scarsa rilevanza rispetto al corretto
funzionamento del sistema

“Ci fu un uomo che annegò attraversando un torrente


con una profondità media di 15 centimetri!”
John Stankovic

⚫ In un sistema real-time la proprietà più importante non


è la velocità, ma la prevedibilità

19
efficienza prevedibilità

SOFT FIRM HARD

VINCOLI TEMPORALI
20
Caratteristiche desiderabili dei
sistemi real time
⚫ Timeliness: i risultati devono essere corretti non solo
nei valori, ma anche nel dominio del tempo.

⚫ Prevedibilità: il sistema deve poter consentire di


determinare in anticipo se tutti i task potranno essere
completati entro la propria deadline.

⚫ Tolleranza ai sovraccarichi: Il sistema non deve


collassare in situazioni di stallo dovute ad un carico
eccessivo

21
Caratteristiche desiderabili dei
sistemi real time
⚫ Monitorabilità: il sistema deve poter monitorare lo
stato di esecuzione dei processi al fine di segnalare
eventuali superamenti di deadline.

⚫ Flessibilità: il sistema deve essere realizzato secondo


una struttura modulare e facilmente modificabile, al
fine di essere facilmente adattabile alle esigenze
applicative.

22
Problematiche di progetto e sviluppo
⚫ Spesso, i sistemi real time vengono progettati e
realizzati adottando tecniche empiriche
⚫ Gestione di eventi temporali attraverso grosse porzioni di
codice assembler
⚫ Realizzazione delle azioni di controllo in driver di basso livello
per la gestione delle periferiche di ingresso/uscita
⚫ Gestione diretta della priorità delle interruzioni
⚫ Sebbene il codice prodotto possa risultare efficiente,
esso comporta diversi svantaggi:
⚫ Programmazione laboriosa
⚫ Difficile comprensibilità e manutenibilità del codice
⚫ Difficile verifica dei vincoli temporali

23
Problematiche di progetto e sviluppo

⚫ La conseguenza è la realizzazione di sistemi real-time


estremamente inaffidabili
⚫ Ciò è ancora più grave nel caso di sistemi critici, che
comportano rischi gravi per cose e persone
⚫ Una grossa percentuale degli incidenti negli impianti nucleari,
nei voli spaziali, o nei sistemi militari di difesa, risulta causata
da malfunzionamenti sul software del sistema di controllo

Il primo volo dello space shuttle fu ritardato a causa di un


errore di sincronizzazione mai verificatosi durante i test!

Nel ’91, un errore di accumulazione di ritardi (57 us al


minuto) sul controllore di un missile Patriot causò il manca-
mento di un bersaglio di ben 687 metri!
24
Altri incidenti dovuti al software

⚫ LEM lunar landing (task overrun)


⚫ Ariane 5 (overflow)
⚫ Airbus 320 (errore nel task di gestione
carrello)
⚫ Airbus 320 (task bloccato)
⚫ Mars Pathfinder (reset per timeout)

25
Problematiche di progetto e sviluppo

⚫ Il testing del software non costituisce un metodo


affidabile per garantire il corretto funzionamento di un
sistema critico
⚫ La fase di test è in grado di fare una verifica solo
parziale, relativa al particolare sottoinsieme dei dati di
ingresso
⚫ Nel caso del missile Patriot, l’errore dovuto all’accumulazione
del ritardo, causato dalla sporadica esecuzione di driver non
interrompibili, divenne rilevante (pari a 343 ms) perché il
sistema rimase in esercizio per oltre 100 ore, condizione mai
considerata durante i test.

26
Il ruolo dei sistemi operativi real time
⚫ I recenti sistemi real time si avvalgono sempre più
spesso di sistemi operativi real-time (RTOS), i quali
introducono meccanismi di nucleo predisposti a
gestire esplicitamente la variabile tempo, quali:
⚫ La schedulazione dei processi
⚫ La mutua esclusione e la sincronizzazione
⚫ La comunicazione a scambio di messaggi
⚫ La gestione delle interruzioni e della memoria
⚫ …
⚫ Ciò consente di realizzare software di controllo
⚫ con linguaggi di programmazione di alto livello
⚫ con maggiore robustezza rispetto al soddisfacimento dei
vincoli temporali
27
Real Time Operating Systems

VRTX

28
⚫ … chiaramente l’uso corretto di un RTOS è un buon
inizio, ma non è la soluzione a tutti i problemi
⚫ I sistemi critici vanno comunque progettati facendo
assunzioni pessimistiche, al fine di portare in conto
tutte le situazioni più gravose
Costante di Murphy
Le cose vengono danneggiate in proporzione al loro
valore.
Legge di Green
Se un sistema è stato concepito per tollerare un
insieme di guasti, ci sarà sempre un idiota abba-
stanza ingegnoso da causare un guasto non tollerato.

29

Potrebbero piacerti anche