1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato...

36
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

Transcript of 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato...

Page 1: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 2: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i 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

Page 3: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 4: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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.

Page 5: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 6: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

6

Architettura di un sistema real-time

Real-timecontrol system

ActuatorActuator ActuatorActuator

SensorSensorSensor SensorSensorSensor

Page 7: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 8: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

8

Processi sensore/attuatore

Dataprocessor

Actuatorcontrol

Actuator

Sensorcontrol

Sensor

Stimulus Response

Page 9: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 10: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 11: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 12: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 13: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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.

Page 14: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 15: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 16: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

16

Thread “piena potenza”

IdleFull power

onSet time Operation

enabled

Timedoperation

Cookingcomplete

Idle

Fullpower

Timer Doorclosed

Start

Timeout Timerdone

Page 17: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 18: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

18

Real-time Executive

Process resourcerequirements

Scheduler

Schedulinginformation

Resourcemanager

Despatcher

Real-timeclock

Processesawaitingresources

Readylist

Interrupthandler

Availableresource

list

Processorlist

Executingprocess

Readyprocesses

Releasedresources

Page 19: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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.

Page 20: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 21: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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.

Page 22: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 23: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

23

Gestione di processi con RTE

Resource manager

Allocate memoryand processor

Scheduler

Choose processfor execution

Despatcher

Start execution on anavailable processor

Page 24: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 25: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 26: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 27: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 28: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 29: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 30: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 31: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

31

Sistema di controllo della temperatura

30

Thermostatprocess

Sensorprocess

Furnacecontrol process

Heater controlprocess

500Hz

500Hz

Thermostat process500Hz

Sensorvalues

Switch commandRoom number

Page 32: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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)

Page 33: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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

Page 34: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

34

Monitoraggio del flusso di un reattore

DisplayProcess

dataSensor data

bufferSensorprocess

Sensoridentifier and

value

Processedflux level

Sensors (each data flow is a sensor value)

Page 35: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

35

Un buffer ad anello

Consumerprocess

Producerprocess

Page 36: 1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.

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