EMBEDDED
52 • MAGGIO • 2014
70
SOFTWARE
REAL TIME
pendentemente da quali siano
gli altri task del sistema.
Eventi in tempo reale rientra-
no in una delle tre categorie:
asincroni, sincroni o isocroni.
Eventi asincroni sono del tutto
imprevedibili.
Ad esempio, il caso in cui un
utente effettua una chiamata
telefonica. Eventi sincroni sono
prevedibili e accadono con
regolarità.
Ad esempio, l’audio e video in
un film avvengono in modo sin-
crono. Eventi isocroni si veri-
ficano con regolarità entro un
determinato lasso di tempo. Ad
esempio, i byte audio in un’ap-
plicazione multimediale distri-
buita devono figurare all’inter-
no di una finestra di tempo
in cui il corrispondente flusso
video arriva.
L’isocrona è una sotto-classe di asincrona. Nei sistemi ope-
rativi convenzionali, gli algoritmi di scheduling dei processi
mirano a ottimizzare la performance globale del sistema; nei
sistemi real time, invece, gli algoritmi di scheduling mirano
a ottimizzare i tempi di risposta nel caso di soft real-time e a
garantire il rispetto delle deadline nei sistemi hard real-time.
I possibili requisiti di un sistema real time (RTOS) sono i
seguenti:
• Comportamento temporale del sistema operativo predi-
cibile
✓
tutti i servizi del sistema operativo devono avere un
limite superiore al tempo di esecuzione.
• Il sistema operativo deve gestire il tempo e lo scheduling
✓
fornire servizi temporali precisi e garantire le deadli-
ne.
• Configurabile
Esempi di sistemi real time
Embedded (RTOS)
Alcuni sistemi operativi in grado di lavorare in real-time su
adeguate architetture hardware sono BeRTOS e LynxOS,
basati su architettura Linux, Windows CE, Android.
Caratteristiche comuni dei principali RTOS:
• Corrispondenza agli standard.
• Modularità e Scalabilità: il kernel ha una dimensione
ridotta e le sue funzionalità sono configurabili.
• Dimensione del codice.
• Velocità ed efficienza.
• Gestione delle interruzioni “separata”.
• Gestione della memoria: possibilità di utilizzare memoria
virtuale e protezione dello spazio di indirizzi kernel.
BeRTOS è un sistema operativo open source, con una parti-
colarità al codice applicativo proprietario che rimane chiuso.
Grazie al suo design modulare permette di lavorare su diver-
se architetture: microcontrollori a 8 bit come gli Atmel e
microcontrollori ARM.
Windows Embedded Compact (Fig. 4), conosciuto anche
come Windows CE, è un sistema operativo sviluppato da
Microsoft per dispositivi portatili. È un derivato di Windows
con un kernel differente. Le API e l’aspetto grafico sono
simili.
LynxOS RTOS è un sistema Unix real time sviluppato da
LynuxWorks. Offre piena conformità Posix e Linux. Usato
nei sistemi embedded soprattutto per applicazioni in avioni-
ca, aerospaziale, militari e controllo di processi industriali.
L’hardware del sistema LynxOS è progettato per rispondere
a prestazione hard real time.
Tempi di risposta prevedibili sono assicurati anche in presen-
za di dispositivi input-output a causa del modello di threading
unico del kernel, che permette a routine di interrupt di essere
estremamente brevi e veloci.
Android è un sistema operativo ormai diffuso in ambito di
smartphone e tablet, basato su architettura Linux. La sua
caratteristica di open source e kernel Linux lo rende adatto
per i sistemi embedded.
Fig. 4 – Architettura di Windows CE