You are on page 1of 9

SISTEMI REALTIME

A cura di Silvia Lorusso

Generalit e Caratteristiche
Un sistema operativo real-time, abbreviato in RTOS, oltre a richiedere la
correttezza dellelaborazione,pretende il rispetto di precisi limiti di
tempo. I risultati prodotti fuori determinati limiti temporali, anche se
corretti, possono non avere valore reale. I sistemi real-time sono utilizzati
in svariati campi:
Sistemi militari per la difesa;
Robotica;
Sistemi di monitoraggio;
Sistemi di telecomunicazioni;
Controllo impianti nucleari;
Vi sono due tipi di elaborazione real-time:
Hard: soggetto al massimo numero di vincoli, garantisce che
compiti real-time rispettino determinate scadenze;
Soft: meno restrittivo rispetto la precedente, esso si limita a dare
massima priorit ai compiti real-time rispetto ad altri task;
I sistemi real-time godono di diverse caratteristiche che ora andremo ad
analizzare:
Specializzazione: a differenza dei PC che svolgono innumerevoli
operazioni, i sistemi real-time sono creati affinch siano specializzati
in un'unica operazione (lettura mp3, sistema frenante auto, ecc);
Dimensioni ridotte: sono spesso utilizzati in apparecchi dalle svariate
misure e quindi devono essere piccoli e pratici cos da poter essere
inseriti anche in un orologio da polso, pertanto avranno memoria
limitata e potenza di cpu ridotta;
Costi contenuti: essendo utilizzati su prodotti a larga scala
(elettrodomestici, videocamere, orologi), dove il prezzo molto

competitivo, bisogna mantenere un prezzo contenuto. Per mantenere


un prezzo cos basso utilizzata la strategia SOC, in altre parole
porre memoria, cpu, unit di gestione della memoria e le porte tutti
su un unico chip, anzich costruirle separatamente e collegarle
tramite bus;
Limiti temporali: rappresentano il pi importante tratto distintivo che
questi sistemi, i limiti temporali sono rispettati grazie alluso di
algoritmi di sincronizzazione dei processi, i quali danno massima
priorit ai processi real-time rispetto agli altri e minimizzano il
tempo di risposta delle interruzioni;

Realizzazione
E importante che un sistema real-time risponda con tempestivit
immediata ad un processo che richiede laccesso alla cpu,pertanto viene
utilizzato un algoritmo basato sulle priorit con diritto di prelazione. La
tecnica con priorit e prelazione consiste nellassociare ad ogni processo
un numero intero tale che ne indichi la priorit cos da svolgere prima i
processi con priorit pi alta rispetto agli altri in coda,la prelazione invece
indica la possibilit di cambiare un processo assegnato alla cpu nel caso in
cui sia pronto un processo avente una priorit maggiore di quello
precedente. Lo scheduling per priorit con diritto di prelazione
garantisce solamente funzionalit real-time soft.
Per questo tipo di sistemi inevitabile adottare kernel con diritto di
prelazione, in assenza di prelazione un processo real-time potrebbe restare
in attesa per un lasso di tempo eccessivamente lungo a causa
dellesecuzione di un processo in modalit kernel.Abbiamo diversi modi
per implementare la prelazione a livello kernel:Inserimento punti di
prelazione e Sincronizzazione. Nel primo caso i punti verificano se un
processo ad alta priorit sia pronto a partire,in caso affermativo ha luogo
un cambio di contesto,terminato il processo a priorit maggiore viene

ripresa lesecuzione della chiamata di sistema;Nel secondo caso il kernel


pu essere interrotto in qualsiasi momento,poich i dati del kernel sono
protetti da tentativi di modifica da parte del processo ad alta priorit.
Un altro elemento fondamentale la minimalizzazione della latenza,un
sistema real-time per natura sono guidati dagli eventi che possono essere a
livello hardware o software. Chiameremo latenza relativa allevento
lintervallo di tempo che intercorre tra linizio dellevento e la prima
risposta a tale evento da parte del sistema.
Le categorie di latenza che influiscono il sistema real-time sono due:
Latenza relativa allinterruzione:quando sopraggiunge un
interruzione il sistema operativo deve in primis portare a
compimento listruzione che sta eseguendo e determinare di quale
tipo dinterruzione si tratta,successivamente deve salvare lo stato del
processo in atto ed occuparsi infine dellinterruzione. E
fondamentale che un sistema real-time riduca al minimo la latenza
relativa alle interruzioni pertanto le interruzioni devono essere inibite
per intervalli di tempo molto piccoli,ci per non basta per i sistemi
real-time hard i quali oltre a minimizzare la latenza devono
circoscriverla entro limiti di tempo prefissati;
Latenza relativa al dispatch:essa consiste in due componenti:
prelazione di tutti i processi in esecuzione nel kernel;
cessione,da parte dei processi a bassa priorit,delle risorse
richieste dal processo ad alta priorit;
Un problema con questo metodo si ha quando un processo con
priorit alta deve modificare o leggere dati del kernel a cui accede un
altro processo con priorit inferiore .I dati del kernel sono protetti da
un lock pertanto il processo a priorit maggiore deve attende che
termini quello a priorit minore per accedere ai dati. La situazione si
complica nel caso in cui un processo dalla priorit pi bassa deve

sottostare alla prelazione, a vantaggio di un altro processo con


priorit maggiore: inversione priorit. Questo problema
risolvibile applicando il protocollo di ereditariet delle priorit
ovvero tutti i processi che accedono a risorse gi richieste da un
processo a priorit pi alta ereditano la priorit finch non terminano
dutilizzare la risorsa e ritornano ad avere la priorit originale.

Scheduling real-time hard


Prima di descrivere i modelli di scheduling vediamo alcune caratteristiche
dei processi che attendono lesecuzione:
I processi sono considerati periodici, richiedono la cpu ad intervalli
costanti nel tempo,ogni processo ha un tempo delaborazione fisso (t),una
scadenza(s)entro la quale la cpu deve completare lelaborazione e un
periodo(p),le quali sono legate nel seguente modo: 0<t <s <p. Ed un
frequenza pari ad 1/d.
Lo scheduler pu trarre vantaggio da queste informazioni,assegnando le
priorit in base alle scadenze,il processo pu dichiarare la propria scadenza
allo scheduler cos da decidere se accettare ed eseguire le richieste in
tempo o rifiutare qualora il tempo di scadenza troppo basso.

Scheduling RMS
Lalgoritmo di scheduling a frequenza monotonica (RMS), utilizzabile
se:
1. Ciascun processo va completato entro il suo periodo;
2. I processi sono indipendenti;
3. Ogni processo richiede un ugual tempo di CPU per ogni periodo di
esecuzione;

4. I processi non periodici non hanno scadenze temporali;


5. Al prelascio non associato nessun costo.
RMS assegna a ciascun processo staticamente priorit pari alla frequenza
con cui deve essere seguito, ovvero priorit pi alta ai processi che
necessitano della cpu pi spesso rispetto ad altri.Durante lesecuzione lo
schedulatore esegue il processo pronto a priorit pi alta, prelasciando un
eventuale processo in esecuzione.

Scheduling EDF
Lalgoritmo di scheduling con priorit alla scadenza pi vicina (EDF
Earliest Deadline First), non richiede :
che i processi siano periodici;
nel caso lo siano, che abbiano lo stesso periodo di esecuzione;
Lo schedulatore mantiene una lista dei processi eseguibili, ordinata rispetto
alla scadenza temporale, ed esegue quello con scadenza pi vicina. Nel
caso arrivi un nuovo processo con scadenza pi vicina, il nuovo processo
prerilascia quello in esecuzione. RMS con pi di 3 processi funziona solo
se lutilizzo della CPU inferiore al 78%. EDF funziona sempre, per
qualsiasi insieme di processi schedulabile.

Scheduling a quote proporzionali


Questo schedulino usa una tecnica di segmentazione del tempo in quote,assegnate in
diverse quantit ai singoli processi,cos da assicurare ad ognuno di loro luso della
cpu per una certa percentuale di tempo.

Esistono diversi sustemi operativi real-time ora ne vediamo uno in


particolare: VxWorks.

VxWorks un sistema operativo real-time (RTOS) sviluppato da


Wind River di California, Stati Uniti. Prima pubblicato nel 1987,
VxWorks ampiamente utilizzato nelle
automobili,industrie,dispositivi di rete come router. , VxWorks
stato urilizzato anche per controllare le sonde spaziali Spirit e
Opportunity,che nel 2004 hanno dato inizio allesplorazione di
Marte.
Ha il suo fulcro nel microkernel Wind.Un microkernel costruito in
modo da offrire solo le funzionalit strettamente necessarie:
funzionalit accessorie,pe resempio per la rete, la grafica ed il file
system sono messe a disposizione delle librerie esterne al kernel.
Altre caratteristiche del sistema operativo sono:

Multitasking kernel con preventiva e round-robin scheduling e


veloce interrupt risposta

Il sistema operativo nativo a 64-bit (solo una architettura a 64bit supportata: x86-64

Applicazioni in modalit utente ("Processi Real-Time", o RTP)


isolato da altre applicazioni in modalit utente e il kernel
tramite protezione della memoria meccanismi.

SMP , AMP e il supporto multiprocessing modalit mista

Binari, conteggio, e di mutua


esclusione semafori con ereditariet priorit

Locali e distribuiti code di messaggi

Rete dual-mode IPv6 stack con certificazione IPv6 Ready Logo

Protezione della memoria compresi i processi in tempo reale


(RTP), rilevamento degli errori e reporting, e IPC
Messaging multi-OS utilizzando TIPC e Wind River multi-OS IPC

VxWorks utilizzato da prodotti in una vasta gamma di aree di mercato:. Aerospaziale e difesa,
automotive, come ad industriale come i robot, elettronica di consumo, area medica e networking
Diversi prodotti notevoli anche utilizzare VxWorks come il sistema operativo di bordo, Ne sono
tantissimi gli utilizzi fatti, ora ne ricordiamo solo tre di importanza rilevante.

Il Mars Reconnaissance Orbiter utilizza VxWorks

Il ASIMO Robot utilizza VxWorks

Il Mars Science Laboratory rover Curiosity utilizza


VxWorks

You might also like