I sistemi real-time sono caratterizzati che il tempo gioca un ruolo essenziale e l’obiettivo primario è soddisfare le scadenze (deadlines).
Sono utilizzati per esempio nel monitoraggio in terapia intensiva, piloti automatici, missili etc.
Questi sistemi hanno 2 categorie :
- hard real-time: le scadenze devono essere rispettate
- soft real-time: mancare occasionalmente una scadenza è indesiderabile ma tollerabile
Inoltre gli eventi a cui un sistema real-time deve rispondere possono essere :
- periodici (a intervalli regolari)
- non periodici (imprevedibili)
Sistemi schedulabili
Un sistema che deve rispondere a eventi periodici è considerato schedulabile se riesce a trattare un evento prima che ne arrivi un altro.
Infatti per determinare se un sistema è in grado di reggere il carico di lavoro, si utilizza un criterio matematico:
Se ci sono eventi periodici, e l’evento si verifica con un periodo e richiede secondi di tempo CPU per la gestione, il sistema è schedulabile se e solo se la somma dei carichi relativi è minore o uguale a 1:
dove rappresenta la quota di potenza della CPU richiesta dall’evento . Se quindi il risultato di questa sommatoria è , allora la quantità totale di tempo CPU richiesta dai processi è maggiore di quella che la CPU può offrire veramente.
Scheduling dinamico e statico
Gli algoritmi di scheduling per i sistemi real-time possono essere:
- statici: prendono le decisioni di scheduling prima che il sistema inizi a funzionare (tutto disponibile in anticipo)
- dinamici: prendono le decisioni di scheduling durante la fase di esecuzione (run-time) (no conoscenza in anticipo)
