Title: 12. Progettare Sistemi Real-Time
112. Progettare Sistemi Real-Time
- Progettare sistemi software il cui comportamento
è condizionato da vincoli di tempo - Mostreremo perché i sistemi real-time sono
progettati come insieme di processi concorrenti
che cooperano - Mostreremo lutilità dei modelli di stato nella
progettazione di sistemi real-time - Descriveremo la piattaforma di supporto richiesta
da questi sistemi - Introdurremo architetture generiche per alcuni
tipi di sistemi real-time
2Sistemi Real-time
- Sistemi che effettuano il monitoraggio o il
controllo del loro ambiente - Sono sempre associati a dispositivi hardware
- Sensori Raccolgono dati dallambiente del
sistema - Attuatori Modificano (in qualche modo)
lambiente del sistema - Il fattore tempo è critico I sistemi real-time
devono rispondere entro un tempo specificato
3Hard/Soft Real-Time Systems
- Un sistema real-time è un sistema il cui corretto
funzionamento dipende dai risultati prodotti dal
sistema e dal tempo necessario per produrre tali
risultati. - Un sistema real-time soft è un sistema le cui
operazioni subiscono un degrado se i risultati
non sono prodotti nei tempi specificato - Un sistema real-time hard è un sistema in cui
le operazioni sono errate se i risultati non sono
prodotti nei tempi specificati
4Sistemi a Stimolo/Risposta
- Dato uno stimolo, il sistema deve produrre una
risposta entro un tempo specificato - Stimoli periodici stimoli che si verificano a
intervalli di tempo predicibili - Ad esempio un sensore che rileva la temperatura
dellambiente può essere consultato 10 volte al
secondo - Stimoli aperiodici stimoli che si verificano a
tempi non predicibili - Per esempio, un black-out elettrico può causare
uninterruzione che deve essere elaborata da un
sistema di shut-down automatico.
5Architettura di un sistema Real-Time
- Larchitettura del sistema deve permettere switch
veloci tra i gestori degli stimoli - I vincoli di tempo legati ai diversi stimoli
possono essere diversi un semplice loop
sequenziale può non essere adeguato - I sistemi real-time sono di solito progettati
come processi cooperativi con una centralina che
controlla questi processi
6Architettura di un sistema real-time
7Elementi del sistema
- Processi di controllo dei sensori
- Raccolgono informazioni dai sensori. Possono
bufferizzare linformazione raccolta in risposta
allo stimolo del sensore - Processi che elaborano dati
- Sono responsabili dellelaborazione di dati
raccolti e producono la risposta del sistema - Processi di controllo degli attuatori
- Generano segnali di controllo per gli attuatori
8Processi sensore/attuatore
9Progettazione del sistema
- Le decisioni di progettazione sono molto legate a
requisiti non funzionali del sistema - Partiziona le funzionalità dellhardware e del
software - Identifica gli stimoli che devono essere
elaborati, le risposte corrispondenti, e i
vincoli di tempo associati ad ogni stimolo - Aggrega i processi stimolo/risposta in processi
concorrenti. Ad ogni classe di stimolo e risposta
può essere associato un processo
10Progettazione del sistema
- Progetta gli algoritmi corrispondenti ad ogni
classe stimolo/risposta, garantendo che
rispondano ai requisiti di tempo - Progetta un sistema di scheduling che assicuri
che i processi vengano attivati al momento
opportuno - Integra il sistema con un real-time executive
(RTE) o con il sistema operativo - Esegui simulazioni e sperimentazioni per
assicurare che i vincoli di tempo siano
soddisfatti dal sistema - I vincoli di tempo possono imporre luso di
costrutti a basso livello o labbandono di
progettazione OO per ragioni di efficienza
11Modello macchina a stati finiti
- Leffetto di uno stimolo può essere modellato
come passaggio da uno stato ad un altro, usando
una modellizzazione con macchina a stati finiti - I modelli FMS sono difficilmente strutturabili.
Sistemi anche semplici possono avere un modello
complesso - Per gestire la complessità in un modello di
macchina a stati finiti si possono usare
diagrammi di thread che mostrano le sequenze
legate ad ogni singolo evento
12Macchina a stati finiti microonde
13Stati del forno a microonde
14Stimoli del forno a microonde
15Diagramma di thread
- Usati per strutturare e presentare linformazione
del modello a stati finiti - Mostra lelaborazione end-to-end di un
particolare insieme di stimoli - Per ogni combinazione di messaggi, bisogna
produrre un diagramma dei threads. Questo rende
impraticabile questo approccio in presenza di
stimoli multipli
16Thread piena potenza
17Real-time executives
- Un Real-time executive è un sistema operativo
specializzato che gestisce processi in sistemi
real-time allocazione di processori e di memoria
- Non include facilities come la gestione di files
- Componenti
- Real Time Clock offre informazioni per lo
scheduling - Gestore Interruzioni gestisce richieste
aperiodiche di servizi - Scheduler seleziona il prossimo processo da
eseguire - Resource manager alloca risorse (processori e
memoria) - Dispatcher determina linizio dellesecuzione
dei processi
18Real-time Executive
19Componenti di un sistema non-stop
- Configuration manager
- Responsabile della riconfigurazione dinamica del
sistema software e hardware. I moduli hardware
devono essere sostituiti e deve essere fatto
lupgrade di quelli software senza che il sistema
si blocchi. - Fault manager
- Responsabile dellindividuaizone di guasti
hardware o software, e delle azioni conseguenti
(ad es. attivare il gruppo di continuità) per
assicurare che il sistema continui ad operare.
20Assegnare priorità ai processi
- La gestione di alcuni stimoli può avere priorità
su altre - Livelli di priorità legati alle interruzioni. La
priorità più alta viene data ai processi che
richiedono risposta veloce - Livelli di priorità legati al clock. Legati a
processi periodici - Altre combinazioni
21Gestione delle interruzioni
- Il controllo viene trasferito automaticamente a
una locazione di memoria predeterminata - Questa locazione contiene unistruzione per
saltare alla routine corrispondente allinterrupt - Ulteriori interruzioni sono disabilitate
linterrupt viene gestito e il controllo
restituito al processo interrotto - Le routines di servizio delle interruzioni devono
essere semplici e veloci.
22Gestione dei processi periodici
- Nella maggior parte dei sistemi real-time, ci
sono diverse classi di processi periodici, ognuno
con una diversa - periodicità (il tempo tra unesecuzione e
laltra), - tempo di esecuzione
- scadenza (il tempo entro cui il processo deve
essere completato) - Il clock scatta periodicamente ed ogni scatto
causa un interrupt che schedula il process
manager per processi periodici - Il process manager seleziona un processo che è
pronto per essere eseguito
23Gestione di processi con RTE
24Switch di processi
- Lo scheduler sceglie il prossimo processo che
deve essere eseguito. Questo dipende da una
strategia di scheduling che deve tener conto del
livello priorità dei singoli processi - Il resource manager alloca memoria e un
processore al processo che deve essere eseguito - il dispatcher prende un processo dalla lista di
quelli pronti per essere eseguiti, lo carica in
un processore e ne inizia lesecuzione
25Sistemi di monitoraggio e di controllo
- Sistemi che comprendono sensori che attuano
periodicamente delle verifiche sul proprio
ambiente e che attivano azioni in risposta ai
valori dei sensori - I sistemi di monitoraggio esaminano i sensori e
ne riportano i risultati - I sistemi di controllo prendono i valori dei
sensori e controllano gli attuatori hardware
26Sistema di allarme anti-intrusione
- Sensori
- Sensori dambiente, alle finestre, alle porte
- Azioni
- Quando un intruso viene segnalato, la polizia
viene allertata immediatamente - Si accendono le luci nelle stanze con sensori
attivi - Viene attivata una sirena
- Il sistema passa automaticamente al gruppo di
continuità appena viene segnalato una caduta di
tensione elettrica
27Stimoli da elaborare
- Black-out elettrico
- Segnale aperiodico generato monitorando il
circuito. Quando viene ricevuto il sistema deve
attivare entro 50 ms. il gruppo di continuità - Allarme dintrusione
- Stimolo generato dai sensori del sistema. La
risposta è una chiamata alla polizia,
laccensione delle luci e della sirena
28Requisiti sui tempi di risposta
29(No Transcript)
30Sistemi di controllo
- Il sistema di allarme è soprattutto un sistema di
monitoraggio. Colleziona dati dai sensori, ma non
ha un controllo real-time degli attuatori - I sistemi di controllo sono simili, ma in
risposta ai valori dei sensori, i sistemi mandano
segnali agli attuatori - Esempio di sistemi di monitoraggio e controllo è
un sistema che controlla la temperatura e accende
o spegne la caldaia ed i termosifoni in un
sistema di riscaldamento
31Sistema di controllo della temperatura
30
32Sistemi di acquisizione dati
- Raccolgono dati da sensori per essere
successivamente elaborati e analizzati - Il processo di raccolta dati e di elaborazione
possono avere periodicità e deadlines diverse - La raccolta dati può essere più veloce
dellelaborazione (es. raccolta di informazioni
su unesplosione) - Le differenze di velocità possono essere trattate
usando buffers circolari (o ad anello)
33Raccolta dati di un reattore
- Il sistema raccoglie dati da sensori che
monitorano il flusso di neutroni da un reattore
nucleare - Il flusso dei dati viene posto su un buffer per
essere elaborato successivamente - Il buffer ad anello è a sua volta implementato
come un processo concorrente, così che la
raccolta dati e lelaborazione possano essere
sincronizzati
34Monitoraggio del flusso di un reattore
35Un buffer ad anello
36Mutua esclusione
- Il produttore raccoglie dati e li aggiunge al
buffer. Il consumatore elabora i dati dal buffer
e rende disponibili i risultati - I processi produttore e consumatore devono essere
mutuamente esclusivi. - Il buffer deve inibire il processo del produttore
quando è pieno, e deve interrompere il processo
del consumatore quando tenta di prendere
informazione dal buffer vuoto