sabato 13 ottobre 2018

Sistemi Real-Time ed Embedded: Cosa Sono e Come Funzionano

I sistemi real-time sono sistemi informatici che rispondi in real time appunto (o comunque entro precisi vincoli temporali).
In parole povere, oltre ad eseguire una data funzione, devono farlo anche entro certi limiti di tempo (variabili, a seconda della situazione considerata).
Il termine real-time (tempo reale) non vuol dire che la risposta sia sempre immediata (a volte l'intervallo di tempo può essere anche di minuti).


ESEMPI DI SISTEMI REAL-TIME ED EMBEDDED
Esempi di sistemi real-time sono quelli militari per la difesa (sistemi di difesa missilistici), sistemi di controllo (il pilota automatico di un aereo, il controllo di impianti nucleari, sistemi di guida di missili e satelliti), sistemi di monitoraggio/rilevamento (controllo del traffico, radar, etc), macchine di distribuzione automatiche, sistemi di automazione (robot), sistemi di telecomunicazioni, sistemi multimediali.
È da notare che molti di essi sono anche sistemi embedded, ossia hanno incorporato il computer che li controlla.
Negli ultimi anni la complessità funzionale dei sistemi embedded è cresciuta enormemente e i requisiti real-time sono diventati sempre più stringenti, di conseguenza l'integrazione di un sistema operativo real-time è diventata un obbligo e non più l'eccezione.
Un sistema che interagisce con il mondo fisico deve essere in grado di gestire gli eventi fisici nei tempi in cui si manifestano (tempo reale o quasi) e non in tempi differiti (non real-time).


SCHEDULER
Il sistema embedded deve essere progettato in modo da rispettare questa condizione di real-time tramite meccanismi hardware e software adeguati a gestire il tempo di esecuzione dei processi entro intervalli di tempo limitato.
A tale scopo è necessario che la natura dei processi sia nota e i relativi tempi di esecuzione determinati, in modo che possa essere programmato un meccanismo di gestione della messa in esecuzione e della relativa terminazione dei processi entro il tempo limite (deadline).
Questo meccanismo si chiama “scheduler”.
I meccanismi di scheduling più utilizzati sono i seguenti:

1) Earliest Due Date (Tutti i processi arrivano allo stesso tempo e la priorità è statica)
2) Erliest Deadline First (I processi arrivano in qualsiasi momento e la priorità viene modificata in base alla scadenza temporale del processo)
3) Rate Monitoring (E' il meccanismo di gestione temporale dei processi periodici)


ANELLI APERTI E CHIUSI
I sistemi real-time si possono inoltre suddividere in altre 2 categorie: quelli che modificano
l’ambiente e quelli che non lo modificano.
I sistemi appartenenti alla prima categoria si dividono in:

1) Sistemi ad anello aperto (le cui azioni sono pre-programmate e quindi standard)
2) Sistemi con feedback (le cui azioni sono in funzione delle informazioni ricevute)

Un processo o serie d'istruzioni (task) di un sistema real-time può essere:

1) Periodico (quando viene eseguito periodicamente)
2) Aperiodico (quando viene attivato ad intervalli di tempo irregolari, a seconda della situazione presentatasi)


HARD E SOFT REAL TIME: VELOCITA'
Un sistema si definisce hard real-time o soft real-time a seconda che il limite temporale entro cui
deve espletare la sua funzione sia specificato come valore assoluto o come valore medio.
Per i sistemi soft real-time, a differenza dei sistemi hard real-time, è ammissibile un certo
margine di ritardo nel fornire la risposta.
Un esempio di sistema hard real-time è il sistema di
controllo della temperatura di una centrale nucleare, dove il mancato rispetto dei vincoli
temporali può provocare un grande disastro.
Un esempio, invece, di sistema soft real-time può essere un riproduttore DVD, in cui il mancato rispetto dei vincoli temporali può determinare un degrado della qualità del filmato ma non pregiudica il proseguimento della riproduzione.
Un altro esempio di sistema soft real-time è rappresentato dagli sportelli automatici per la distribuzione di banconote: tali sistemi, mediamente, devono avere un tempo di risposta accettabile per l'utente, altrimenti potrebbero causare l'insoddisfazione dei clienti.
I sistemi con tempi di risposta inferiori al secondo si possono considerare veloci, mentre quelli con tempi di risposta misurabili in minuti si possono considerare lenti.


PREVEDIBILITA' E TEMPI FINITI
I processi fisici hanno in generale tempi di manifestazione che possono essere stimati preventivamente.
Per esempio il campionamento della frequenza di un segnale è un processo sincrono (avviene a intervalli regolari) richiede un intervallo temporale massimo (intervallo di campionamento) entro cui deve essere eseguito (acquisizione della misura e memorizzazione).
La corretta stima di questo intervallo (teorema del campionamento) non è sufficiente a garantire che il processo di campionamento venga eseguito correttamente in termini temporali.
Ci sono caratteristiche di sistema (hardware e software) che possono introdurre elementi di non prevedibilità dei tempi nella risposta del software di sistema, per esempio il DMA (Direct Memory Access).
I sistemi operativi generici (per esempio Windows e Unix) non hanno meccanismi per garantire l'esecuzione certa dei processi entro tempi massimi prestabiliti e quindi non sono utili per l'implementazione di sistemi real-time.
Questi sistemi operativi, data la loro popolarità, sono stati modificati a livello di kernel e adattati alle applicazioni real-time nella versione embedded.

Nessun commento:

Posta un commento