Che cos’è il tempo reale?

In informatica, il tempo reale si riferisce a un intervallo di tempo molto breve, che sembra essere immediato. Quando un computer elabora i dati a questa velocità, legge e gestisce i dati non appena ricevuti, producendo risultati senza indugio. Ad esempio, un sito web che viene aggiornato in tempo reale consentirà ai suoi visitatori di vedere le modifiche non appena si verificano, piuttosto che aspettare che gli aggiornamenti siano visibili in una data successiva.

Un processo informatico non in tempo reale non ha una scadenza. Un sistema in tempo reale, d’altra parte, dovrebbe rispondere non solo rapidamente, ma anche entro un periodo di tempo prevedibile. Un buon esempio è il sistema antibloccaggio di un’auto. Si prevede che un sistema antibloccaggio dei freni rilasci i freni di un veicolo, prevenendo il pericoloso bloccaggio delle ruote, in un lasso di tempo prevedibilmente breve.

Sfortunatamente, ci sono momenti in cui i sistemi in tempo reale non riescono a rispondere come desiderato. Tale processo fallisce quando il suo compito non è completato prima della sua scadenza. Nell’informatica, non viene concesso un periodo di grazia a causa di altre richieste su un sistema. Le scadenze devono essere rispettate indipendentemente da altri fattori; sono considerati mission critical.

Quando un processo è considerato hard real-time, deve completare la sua operazione entro un tempo specifico. Se non rispetta la scadenza, il suo funzionamento è senza valore e il sistema di cui è un componente potrebbe andare incontro a guasti. Quando un sistema è considerato soft in tempo reale, tuttavia, c’è spazio per i ritardi. Ad esempio, in un tale sistema, un processo ritardato potrebbe non causare il fallimento dell’intero sistema. Invece, può portare a una diminuzione della normale qualità del processo o del sistema.

I sistemi hard real-time sono spesso utilizzati nei sistemi embedded. Si consideri, ad esempio, un sistema di controllo del motore di un’auto. Un tale sistema è considerato difficile perché un processo in ritardo potrebbe causare il guasto del motore. Questi sistemi vengono impiegati quando è fondamentale che un’attività o un evento venga gestito entro una scadenza rigorosa. Ciò è in genere necessario quando si possono verificare danni o la perdita della vita a causa di un guasto del sistema.

I sistemi soft in tempo reale vengono solitamente impiegati quando sono presenti più sistemi connessi che devono essere mantenuti nonostante eventi e circostanze mutevoli. Questi sistemi vengono utilizzati anche quando sono presenti requisiti di accesso simultaneo. Ad esempio, il software utilizzato per mantenere i programmi di viaggio per le principali compagnie di trasporto è spesso soft in tempo reale. È necessario che tale software aggiorni i programmi con poco ritardo. Tuttavia, è improbabile che un ritardo di pochi secondi causi confusione.