Real-time
Da Wikipedia, l'enciclopedia libera.
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 ha comunque senso (e viene usato) anche al di fuori dell'informatica.
Indice |
[modifica] Concetti introduttivi
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 millisecondo 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, 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.
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.
[modifica] Perché real-time?
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 una 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.
[modifica] Esempio
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".
[modifica] Problematiche correlate
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).