I Sistemi Real Time: definizione, fonti di non determinismo, schedulazione
I sistemi Real Time sono l'insieme dell'hardware e del software in cui la correttezza di funzionamento dipende sia dalla correttezza dei risultati prodotti che dal tempo in cui esso sono prodotti.
In generale un sistema Real Time esegue più processi contemporaneamente.
I processi di un sistema Real Time possono essere:
- Aperiodici o Sporadici
- Periodici
Per ogni processo è definita una DEADLINE, ovvero, il tempo massimo entro cui un processo Real Time deve terminare la propria esecuzione
A seconda delle conseguenze di una mancata DEADLINE i processi Real Time vengono classificati in
- PROCESSI HARD REAL TIME ove il superamento della propria DEADLINE comporta un effetto catastrofico sul sistema
- PROCESSI SOFT REAL TIME ove il superamento della propria DEADLINE comporta un degrado delle prestazioni, senza compromettere il funzionamento del sistema
Pertanto nei sistemi REAL TIME ogni processo ha requisiti individuali che devono essere rispettati, di conseguenza le prestazioni medie assumono scarsa importanza per questi sistemi
Per questo motivo in un sistema REALTIME la proprietà più
importante è la prevedibilità.
Per prevedibilità si intende la capacità del sistema di prevedere le
conseguenze delle decisioni di scheduling e valutare la fattibilità
della schedulazione in funzione della proprietà dei processi
Purtroppo nei sistemi informatici possono esserci FONTI DI NON
DETERMINISMO che possono rendere la valutazione effettuata sulla
schedulabilità non corretta o aleatoria
Le fonti di non determinismo dipendono sia dal hardware che dal software
• Fonti di non determinismo dovuti a meccanismi interni del processore.
Sebbene tali meccanismi migliorano le prestazioni medie del processore,
introducono un non determinismo che può causare un superamento di
DEADLINE per alcuni processi
(queste fonti sono chache dma, meccanismo interruzioni)
• Fonti di non determinismo dovute al sistema operativo: Scheduling
SystemCalls, concorrenza, semafori, gestione della memoria e gestione
delle periferiche
Schedulazione: definizione
Dato un insieme di task T=t1 t2........tn una schedulazione è un
assegnamento dei task al processore
Schedulazione Fattibile: Una schedulazione si dice fattibile se esiste un assegnamento dei task al processore tale che tutti i task siano completati rispettando un insieme di vincoli prefissati
I vincoli che si possono specificare sui processi, e che una
schedulazione deve rispettare per essere fattibile sono in genere di tre
tipi:
• Vincoli temporali
• Vincoli di precedenza
• Vincoli su risorse condivise
A seconda delle ipotesi che si assumono sui processi e sul tipo di
architettura hardware di supporto all'applicazione gli algoritmi di
scheduling REAL
TIME possono essere così classificati
Preemptive
Non Preemptive
Statici
Dinamici
Offline Online