Real-time

Da Wikipedia, l'enciclopedia libera.
bussola Disambiguazione – Se stai cercando altri significati, vedi Real Time.

Real-time (in italiano "tempo reale") è un termine utilizzato in ambito informatico per indicare quei programmi per i quali la correttezza del risultato dipende dal tempo di risposta. Ciò comporta che tali programmi devono rispondere ad eventi esterni entro tempi prestabiliti. Il concetto di tempo reale al di fuori dell'informatica non ha senso anche se viene usato ormai comunemente al posto di "diretta" (televisione) o di "in contemporanea".

Concetti introduttivi[modifica | modifica wikitesto]

Per quanto il termine real-time venga spesso riferito ai sistemi operativi (vedi sistema operativo real-time ), la necessità di una risposta real-time è intrinseca al problema da risolvere prima che essere caratteristica della soluzione trovata. Una tipica applicazione in tempo reale è il controllo di centrali nucleari.

Se a rigore tutte le applicazioni sono real-time, perché comunque ci si aspetta una risposta entro un tempo finito, in pratica il termine viene usato per quelle applicazioni dove le problematiche relative ai tempi di risposta sono preponderanti rispetto alla complessità dell'algoritmo da utilizzare.

All'interno delle problematiche da trattare in tempo reale si tende a distinguere le applicazioni in tempo reale stretto in cui i tempi di risposta si esprimono tipicamente in millisecondi, o comunque in frazioni di secondo, da un tempo reale più lasco, in cui i tempi di risposta sono normalmente esprimibili in secondi.

Per la risoluzione di problematiche real-time si usano di solito architetture hardware dedicate, sistemi operativi appositamente concepiti, programmi applicativi pensati appositamente. Le tre componenti (hardware, software di base e software applicativo) sono spesso strettamente legate, in modo da conseguire le necessarie ottimizzazioni sui tempi.

Così come in altri settori, con l'evoluzione della tecnologia informatica molte problematiche hardware sono state gradualmente riportate sul software (e quindi facilmente rimediabili tramite aggiornamenti opportuni).

Negli ultimi tempi questa terminologia è stata associata all'utilizzo di alcuni servizi della rete, quando in effetti i presupposti per poter realmente fruire di un servizio in modalità real-time sono davvero lontani dagli ambienti operativi d'uso comune.

Perché real-time?[modifica | modifica wikitesto]

Rispondere ad un evento in tempo reale significa farlo ad una velocità che sia possibile predeterminare, quali che siano i contesti operativi dell'apparato. Questo richiede un'architettura hardware in grado di gestire e registrare gli eventi esterni e di un software in grado di reagire su più processi per attuare una reazione adeguata.

Esempio[modifica | modifica wikitesto]

Un esempio pratico è quello del sistema di controllo di volo di un aereo o di una centrale nucleare: è impensabile che un sistema del genere non reagisca ad un evento in real-time perché il sistema è impegnato in chissà quali operazioni: sarebbe come dire che l'aereo è caduto perché il sistema di controllo d'assetto stava facendo un defrag!

Per questo genere di sistemi viene utilizzata anche la terminologia di "hard real-time".

Problematiche correlate[modifica | modifica wikitesto]

Solitamente le caratteristiche real-time sono richieste insieme ad altre particolarità. Un requisito che compare frequentemente associato è quello della continuità operativa: alcuni sistemi real-time devono lavorare in modo continuativo per lunghi periodi senza alcuna interruzione: è il caso del controllo di centrali nucleari o del controllo del traffico aereo.

In altri casi la caratteristica del tempo reale è associata a calcolatori incorporati (embedded) con il dispositivo che devono controllare. È questo il caso di alcune applicazioni militari (per esempio in artiglieria).

Voci correlate[modifica | modifica wikitesto]