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