1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato...
-
Upload
sylvana-belloni -
Category
Documents
-
view
215 -
download
0
Transcript of 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato...
1
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
2
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
3
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
4
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.
5
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
6
Architettura di un sistema real-time
Real-timecontrol system
ActuatorActuator ActuatorActuator
SensorSensorSensor SensorSensorSensor
7
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
8
Processi sensore/attuatore
Dataprocessor
Actuatorcontrol
Actuator
Sensorcontrol
Sensor
Stimulus Response
9
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
10
Progettazione del sistema4. 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
11
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
12
Macchina a stati finiti: microonde
Idle
Fullpower on
Settime
Operationenabled
Timedoperation
Cookingcomplete
Halfpower on
Operationdisabled
Idle
Fullpower
Halfpower
Halfpower
Fullpower
Timer
Timer
TimerDooropen
Doorclosed
Doorclosed
Dooropen
Start
Timeout
13
Stati del forno a microondeState Description
Half power on The oven power is set to 300 wattsFull power on The oven power is set to 600 wattsSet time The cooking time is set to the user’s input
valueOperation disabled Oven operation is disabled for safety. Interior
oven light is onOperation enabled Oven operation is enabled. Interior oven light
is offTimed operation Oven in operation. Interior oven light is on.
Timer is counting down.Cooking complete Timer has counted down to zero. Audible
alarm signal is on. Oven light is off.
14
Stimoli del forno a microonde
Stimulus DescriptionHalf power The user has pressed the half power buttonFull power The user has pressed the full power buttonTimer The user has pressed one of the timer buttonsDoor open The oven door switch is not closedDoor closed The oven door switch is closedStart The user has pressed the start buttonTimeout Timer signal indicating that set cooking time
is finished
15
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
16
Thread “piena potenza”
IdleFull power
onSet time Operation
enabled
Timedoperation
Cookingcomplete
Idle
Fullpower
Timer Doorclosed
Start
Timeout Timerdone
17
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
18
Real-time Executive
Process resourcerequirements
Scheduler
Schedulinginformation
Resourcemanager
Despatcher
Real-timeclock
Processesawaitingresources
Readylist
Interrupthandler
Availableresource
list
Processorlist
Executingprocess
Readyprocesses
Releasedresources
19
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.
20
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
21
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.
22
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
23
Gestione di processi con RTE
Resource manager
Allocate memoryand processor
Scheduler
Choose processfor execution
Despatcher
Start execution on anavailable processor
24
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
25
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
26
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
27
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
28
Requisiti sui tempi di rispostaStimulus/Response Timing requirements
Power fail interrupt The switch to backup power must be completedwithin a deadline of 50 ms.
Door alarm Each door alarm should be polled twice persecond.
Window alarm Each window alarm should be polled twice persecond.
Movement detector Each movement detector should be polled twiceper second.
Audible alarm The audible alarm should be switched on within1/2 second of an alarm being raised by a sensor.
Lights switch The lights should be switched on within 1/2second of an alarm being raised by a sensor.
Communications The call to the police should be started within 2seconds of an alarm being raised by a sensor.
Voice synthesiser A synthesised message should be available within4 seconds of an alarm being raised by a sensor
29
Lighting controlprocess
Audible alarmprocess
Voice synthesizerprocess
Alarm systemprocess
Power switchprocess
Building monitorprocess
Communicationprocess
Door sensorprocess
Movementdetector process
Window sensorprocess
560Hz
60Hz400Hz 100Hz
Power failureinterrupt
Alarmsystem
Building monitor
Alarmsystem
Alarm system
Alarm system
Detector status Sensor status Sensor status
Room number
Alert message
Room number
Room number
30
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
31
Sistema di controllo della temperatura
30
Thermostatprocess
Sensorprocess
Furnacecontrol process
Heater controlprocess
500Hz
500Hz
Thermostat process500Hz
Sensorvalues
Switch commandRoom number
32
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)
33
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
34
Monitoraggio del flusso di un reattore
DisplayProcess
dataSensor data
bufferSensorprocess
Sensoridentifier and
value
Processedflux level
Sensors (each data flow is a sensor value)
35
Un buffer ad anello
Consumerprocess
Producerprocess
36
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