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:

review

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)

Processi_e_scheduling