• Non ci sono risultati.

6.2 Progetto software

6.2.1 RTOS Sistema operativo real-time

Un sistema operativo real-time o in tempo reale (abbreviato in RTOS) `e un sistema operativo specializzato per il supporto di applicazioni software real- time. Questi sistemi vengono utilizzati tipicamente in ambito industriale (controllo di processo, pilotaggio di robot, trasferimento dati nelle telecomu- nicazioni) o comunque dove sia necessario ottenere una risposta dal sistema entro un tempo prefissato.

Un sistema operativo real-time non deve essere necessariamente veloce: non `

e importante l’intervallo di tempo in cui il sistema operativo/applicativo deve reagire; l’importante `e che risponda entro un tempo massimo predetermina- to. In altre parole il sistema deve essere prevedibile.

In pratica un sistema real-time deve garantire che una elaborazione (o task) termini entro un dato vincolo temporale o scadenza (detta deadline). Per garantire questo `e richiesto che la schedulazione delle operazioni sia fattibile. Il concetto di schedulazione `e alla base della teoria dei sistemi real-time ed `

e quello che permette di dire se un insieme di task sia eseguibile o meno in funzione dei vincoli temporali dati.

I task di un sistema real-time possono essere:

• periodici: quando un task consiste in una sequenza di attivit`a attivate

con cadenza regolare

• aperiodici: quando un task consiste in una sequenza di attivit`a atti-

vate ad intervalli irregolari.

• sporadici: quando un task consiste in una sequenza di attivit`a attivate

in maniera impredicibile (tipicamente task che corrispondono a richieste di utenti)

I task di tipo periodico sono propri di un sistema di controllo tempo di- screto.

Quando si ha a che fare con task di tipo periodico si parla anche di periodo di esecuzione con il quale si intende il lasso di tempo che intercorre tra due esecuzioni di un task periodico. `E uso comune far coincidere la deadline con l’inverso del periodo poich´e questo `e il limite massimo di esecuzione di un task.

6. Nuova generazione ( tisifone) 6.2. Progetto software • soft real-time: un task che non rispetta la sua scadenza (in gergo si

dice sfondare la deadline) provoca un danno non irreparabile al siste- ma. Il superamento della deadline produce un degrado delle prestazioni proporzionale al tempo di superamento della deadline.

• hard real-time: un task che nel caso superi temporalmente la sua

deadline provoca un danno irreparabile al sistema.

• ’anytime’ : sono tasks che elaborano iterativamente gli stessi dati per

’raffinarli’ sempre di pi`u.

I dati elaborati dai tasks anytime rispondono a requisiti di qualit`a mini- ma e qualit`a massima. Sono quindi considerati hard fino a che i dati non raggiungono la qualit`a minima, diventano soft prima di raggiungere la qua- lit`a massima, dopodich´e non verranno pi`u eseguiti.

Sostanzialmente questa distinzione si traduce nella diversa quantificazione dei costi di una possibile inesattezza temporale del sistema.

Un esempio di task soft real-time pu`o essere un riproduttore DVD, in cui il mancato rispetto dei vincoli si traduce in un degrado della qualit`a del filmato, ma non pregiudica il proseguimento della riproduzione; mentre un task hard real-time pu`o essere il controllore della temperatura del nocciolo di una cen- trale nucleare, dove il mancato rispetto dei vincoli temporali pu`o provocare un evidente disastro. Sistemi Hard real-time e soft real-time [modifica]

Un sistema real-time dovrebbe possedere le seguenti caratteristiche:

• Schedulazione ottima: tutti i task sono noti a priori cos`ı come i vincoli

temporali, dovrebbe essere possibile dunque avere uno schedulatore che implementi una schedulazione che minimizzi al massimo la funzione di costo KS presentata prima.

• Condivisione delle risorse: i task sono entit`a separate ma che concor-

rono ad uno stesso scopo, pertanto non `e necessario avere spazi di indirizzamento separati.

• Garanzia di esecuzione: tutti i task di tipo hard real-time devono ter-

minare entro le proprie deadline quindi, nel caso in cui arrivi un nuovo task o un task non possa completare entro la deadline, una notifica an- ticipata del sistema pu`o essere utilizzata per impedire l’esecuzione del nuovo task o di recuperare l’esecuzione del task che sta per sfondare.

• Prevedibilit`a delle chiamate di sistema: il sistema deve essere in grado

di valutare i tempi di calcolo di ogni task per determinare la schedu- lazione fattibile, quindi ogni chiamata di sistema deve avere un tempo

6.2. Progetto software 6. Nuova generazione ( tisifone)

di esecuzione massimo ben definito in modo da non introdurre ritardi indefiniti.

Ci sono diversi fattori che causano la non prevedibilit`a nella risposta del sistema operativo. Tra di essi, i principali sono i seguenti:

• Il DMA: pu`o rubare il bus alla CPU ritardando l’esecuzione di un task

critico. In un sistema real-time si preferisce quindi disattivarlo o usarlo in modalit`a timeslice dove si assegna in maniera costante e fissa il bus al DMA anche se non ci sono operazioni da fare.

• La cache: pu`o causare non prevedibilit`a poich´e esistono casi in cui

essa fallisce e pu`o causare ritardi nell’accesso alla memoria da parte della CPU. Dovendo considerare quindi il caso peggiore si preferisce non usarla affatto.

• Meccanismi di gestione della memoria: queste tecniche non devono

introdurre ritardi non prevedibili durante l’esecuzione di task critici, ad esempio la paginazione pu`o causare dei page fault intollerabili per un sistema hard real-time. Tipicamente si usa la segmentazione o la partizione statica della memoria.

• Le interruzioni: sono generate da dispositivi periferici quando hanno

qualche informazione da scambiare con la CPU. Queste interruzioni durante l’esecuzione di un task critico generano ritardi non prevedibili e quindi si preferisce disattivarle.

• I sistemi di power management: sono meccanismi hardware che possono

rallentare la CPU o far eseguire ad essa del codice utile a dissipare minor energia. `E chiaro che in un sistema real-time `e importante non sfondare una deadline piuttosto che consumare poca energia, quindi questi meccanismi vengono disattivati.

Documenti correlati