12. 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 l’utilità 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
1
Sistemi Real-time
 Sistemi che effettuano il monitoraggio o il controllo del loro
ambiente
 Sono sempre associati a dispositivi hardware
 Sensori: Raccolgono dati dall’ambiente del sistema
 Attuatori: Modificano (in qualche modo) l’ambiente del
sistema
 Il fattore tempo è critico: I sistemi real-time devono
rispondere entro un tempo specificato
2
Hard/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
3
Sistemi 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 dell’ambiente
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 un’interruzione
che deve essere elaborata da un sistema di shut-down
automatico.
4
Architettura di un sistema Real-Time
 L’architettura 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
5
Architettura di un sistema real-time
Sensor
Sensor
Sensor
Sensor
Sensor
Sensor
Real-time
control system
Actuator
Actuator
Actuator
Actuator
6
Elementi del sistema
 Processi di controllo dei sensori
 Raccolgono informazioni dai sensori. Possono
bufferizzare l’informazione raccolta in risposta allo
stimolo del sensore
 Processi che elaborano dati
 Sono responsabili dell’elaborazione di dati raccolti e
producono la risposta del sistema
 Processi di controllo degli attuatori
 Generano segnali di controllo per gli attuatori
7
Processi sensore/attuatore
Sensor
Actuator
Stimulus
Sensor
control
Response
Data
processor
Actuator
control
8
Progettazione del sistema

Le decisioni di progettazione sono molto legate a
requisiti non funzionali del sistema
1. Partiziona le funzionalità dell’hardware e del software
2. Identifica gli stimoli che devono essere elaborati, le
risposte corrispondenti, e i vincoli di tempo associati ad
ogni stimolo
3. Aggrega i processi stimolo/risposta in processi
concorrenti. Ad ogni classe di stimolo e risposta può
essere associato un processo
9
Progettazione del sistema
4. Progetta gli algoritmi corrispondenti ad ogni classe
stimolo/risposta, garantendo che rispondano ai requisiti
di tempo
5. Progetta un sistema di scheduling che assicuri che i
processi vengano attivati al momento opportuno
6. Integra il sistema con un ”real-time executive” (RTE) o
con il sistema operativo
7. Esegui simulazioni e sperimentazioni per assicurare che
i vincoli di tempo siano soddisfatti dal sistema

I vincoli di tempo possono imporre l’uso di costrutti a
basso livello o l’abbandono di progettazione OO per
ragioni di efficienza
10
Modello “macchina a stati finiti”
 L’effetto 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
11
Macchina a stati finiti: microonde
Full
power on
Timer
Full
power
Timer
Full
power
Idle
Half
power
Set
time
Timed
operation
Half
power
Door
closed
Timer
Door
closed
Cooking
complete
Start
Door
open
Half
power on
Timeout
Operation
enabled
Door
open
Idle
Operation
disabled
12
Stati del forno a microonde
State
Half power on
Fu ll p ower o n
Set time
Operatio n disabled
Operatio n enab led
Timed op eration
Coo kin g complete
Des cription
The ov en power is set to 300 watts
The ov en power is set to 600 watts
The cooking time is set to the user’s inpu t
value
Oven op eration is dis abled for s afety. In terio r
ov en ligh t is on
Oven op eration is enab led . Interior oven light
is off
Oven in operation. Interior ov en ligh t is on .
Timer is co untin g do wn .
Timer has coun ted do wn to zero. Audible
alarm s ign al is on. Ov en ligh t is off.
13
Stimoli del forno a microonde
Stimulus
Half power
Fu ll p ower
Timer
Door open
Door clo sed
Start
Timeout
Des cription
The us er has press ed the half po wer bu tton
The us er has press ed the full power butto n
The us er has press ed one of the timer b uttons
The ov en door switch is no t closed
The ov en door switch is clos ed
The us er has press ed the start bu tton
Timer signal in dicatin g that s et cooking time
is fin ish ed
14
Diagramma di thread
 Usati per strutturare e presentare l’informazione del
modello a stati finiti
 Mostra l’elaborazione 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
15
Thread “piena potenza”
Full
power
Idle
Timer
Full power
on
Door
closed
Set time
Operation
enabled
Start
Timeout
Timed
operation
Cooking
complete
Timer
done
Idle
16
Real-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 l’inizio dell’esecuzione dei processi
17
Real-time Executive
Scheduling
information
Real-time
clock
Interrupt
handler
Scheduler
Process resource
requirements
Processes
awaiting
resources
Ready
processes
Ready
list
Available
resource
list
Resour ce
manager
Released
resources
Processor
list
Despatcher
Executing
process
18
Componenti 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 l’upgrade
di quelli software senza che il sistema si blocchi.
 Fault manager
 Responsabile dell’individuaizone di guasti hardware o
software, e delle azioni conseguenti (ad es. attivare il
gruppo di continuità) per assicurare che il sistema
continui ad operare.
19
Assegnare priorità ai processi

La gestione di alcuni stimoli può avere priorità su altre
1. Livelli di priorità legati alle interruzioni. La priorità più alta
viene data ai processi che richiedono risposta veloce
2. Livelli di priorità legati al clock. Legati a processi periodici
3. Altre combinazioni
20
Gestione delle interruzioni
 Il controllo viene trasferito automaticamente a una
locazione di memoria predeterminata
 Questa locazione contiene un’istruzione per saltare alla
routine corrispondente all’interrupt
 Ulteriori interruzioni sono disabilitate; l’interrupt viene
gestito e il controllo restituito al processo interrotto
 Le routines di servizio delle interruzioni devono essere
semplici e veloci.
21
Gestione 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 un’esecuzione e l’altra),
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
22
Gestione di processi con RTE
Scheduler
Choose process
for execution
Resource manager
Allocate memory
and processor
Despatcher
Start execution on an
available processor
23
Switch 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 l’esecuzione
24
Sistemi 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
1. I sistemi di monitoraggio esaminano i sensori e ne
riportano i risultati
2. I sistemi di controllo prendono i valori dei sensori e
controllano gli attuatori hardware
25
Sistema di allarme anti-intrusione
 Sensori
 Sensori d’ambiente, 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
26
Stimoli 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 d’intrusione
 Stimolo generato dai sensori del sistema. La risposta è
una chiamata alla polizia, l’accensione delle luci e della
sirena
27
Requisiti sui tempi di risposta
Stimulus /Response
Power fail interrupt
Door alarm
Window alarm
Movement detector
Audible alarm
Lights switch
Communications
Voice synthesis er
Timing requirements
The s witch to backup power must be completed
within a deadline of 50 ms .
Each door alarm s hould be polled twice
per
s econd.
Each window alarm should be polled twice
per
s econd.
Each movement detector s hould be polled twice
per s econd.
The audible alarm should be switched on within
1/2 s econd of an alarm being rais ed by a s ens or.
The lights should be switched on
within 1/2
s econd of an alarm being raised by a sens or.
The call to the police should be started within 2
s econds of an alarm being rais ed by a s ensor.
A synthesis ed mes sage should be availablewithin
4 seconds of an alarm being rais ed by a s ens or
28
400Hz
60Hz
Movement
detector process
100Hz
Door sensor
process
Detector status
Window sensor
process
Sensor status
Sensor status
560Hz
Alar m system
Communication
process
Building monitor
process
Power failure
interrupt
Power switch
process
Building monitor
Room number
Alarm system
process
Room number
Alarm
system
Alarm
system
Audible alarm
process
Alert message
Alarm system
Room number
Lighting control
process
Voice synthesizer
process
29
Sistemi 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
30
Sistema di controllo della
temperatura
500Hz
Sensor
process
Sensor
values
500Hz
Thermostat
process
500Hz
Switch command
Room number
Heater control
process
Thermostat process
Furnace
control process
30
31
Sistemi 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 dell’elaborazione
(es. raccolta di informazioni su un’esplosione)
 Le differenze di velocità possono essere trattate usando
buffers circolari (o ad anello)
32
Raccolta 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
l’elaborazione possano essere sincronizzati
33
Monitoraggio del flusso di un
reattore
Sensors (each data flow is a sensor value)
Sensor
process
Sensor
identifier and
value
Processed
flux level
Sensor data
buffer
Process
data
Display
34
Un buffer ad anello
Producer
process
Consumer
process
35
Mutua 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
36
Scarica

Software Engineering