Che cos’è un sistema operativo real time?

Che cos’è un sistema operativo real time?

In generale, un sistema di elaborazione dovrebbe avere le seguenti caratteristiche:

  1. Semplice ed economico;
  2. Capace di sfruttare al massimo le risorse a disposizione;
  3. Capace di massimizzare la velocità di elaborazione (throughput);
  4. Essere adeguato alle esigenze di una multiutenza;
  5. Essere in grado di rispettare dei vincoli temporali nelle interazioni con il mondo esterno;
  6. Essere affidabile (reliability).

Naturalmente il sistema operativo, implementando sulla macchina fisica una macchina virtuale, ha molta responsabilità nel raggiungimento di questi obiettivi.
Vi sono molte situazioni in cui il comportamento temporale di un sistema è fondamentale, ad esempio nell’interazione con il mondo esterno, sede di fenomeni asincroni.

Detto ciò, un sistema operativo real-time o in tempo reale (abbreviato in RTOS) può essere definito come un sistema operativo specializzato per il supporto di applicazioni software real time. Questi sistemi vengono utilizzati tipicamente in ambito industriale (controllo di processo, pilotaggio di robot, trasferimento di dati nelle telecomunicazioni) o comunque dove sia necessario ottenere una risposta dal sistema in un tempo massimo prefissato.

Che cos'è un sistema operativo real time?

Da un punto di vista puramente teorico l’intervallo di tempo in cui il sistema operativo/applicativo deve reagire non ha importanza, infatti un sistema operativo real time (RT) non deve essere necessariamente veloce, la cosa importante è che risponda entro un tempo massimo ben conosciuto.
Un sistema in RT deve garantire una elaborazione rapida dal punto di vista temporale, anche se è possibile che la risposta non sia precisissima.
Ad esempio una funzione di calcolo può calcolare il peso di un oggetto senza giungere alla determinazione del milligrammo perché deve comunque fornire una risposta in un preciso tempo da quando si è posto il peso nella bilancia. Tale ragionamento non significa che si possono anche dare risposte errate ma che bisogna spostare l’attenzione sul tempo della risposta. Questi tipi di sistemi devono dare l’opportunità allo sviluppatore di conoscere a priori le tempistiche in cui si ottiene la risposta.

Viceversa un sistema operativo “tradizionale” deve garantire un’elaborazione corretta dal punto di vista logico, anche se è possibile tollerare che qualche risposta arrivi in anticipo o in ritardo di tempo.

In un sistema real time il carico di lavoro è scomponibile in 3 componenti:

  1. Attività costituite da azioni periodiche
  2. Azioni aperiodiche
  3. Attività di sottofondo

Lo scopo temporale di un’azione è l’intervallo di tempo tra l’istante in cui si verifica l’evento che attiva l’azione (triggering event) e l’istante in cui tale attività deve essere completata (deadline).

Si definisce deadline l’istante di tempo dopo il quale la computazione non è semplicemente in ritardo bensì è errata. Le deadline sono vincoli di tempo stringenti imposti ai tasks dall’ambiente esterno. Ad esempio, se un sistema di controllo di un processo industriale richiede che vengano controllati dei sensori ogni p unità di tempo, il task relativo dovrà essere in grado di portare a termine il controllo entro p unità di tempo, indipendentemente da quali sono gli altri task del sistema.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *