Tempo reale significa che si verifica immediatamente. È il tempo effettivo durante il quale qualcosa accade. Questo termine è tipicamente usato come aggettivo per descrivere un livello di reattività del computer che è immediato nel senso umano del tempo. Poiché l'esecuzione segue il comando, il tempo reale reale non è raggiungibile, poiché il ritardo è ancora presente anche se è di microsecondi. Quasi in tempo reale è un termine comunemente usato per esprimere questo. I programmi in tempo reale devono garantire la risposta entro specifici vincoli di tempo noti come scadenze. Esempi di sistemi in tempo reale includono:
- Sistemi operativi: Un sistema in tempo reale che risponde immediatamente agli input. Serve applicazioni in tempo reale che elaborano i dati non appena arrivano senza ritardi nel buffer.
- Multigiocatore video games: Tutti i giocatori possono giocare contemporaneamente a un videogioco. Quando un giocatore esegue un'azione, gli altri giocatori vengono informati delle conseguenze dell'azione entro una scadenza operativa.
- Software: Il software in tempo reale esegue i compiti e le funzioni assegnate non appena vengono assegnati, non dopo che il programma è stato eseguito. L'utente considera la prestazione immediata.
- Grafica animazione: un programma in tempo reale visualizzerebbe gli oggetti che si muovono sullo schermo alla stessa velocità con cui si muovono effettivamente.
Tipi di sistemi in tempo reale
Esistono due tipi di sistemi in tempo reale basati su vincoli temporali.
Difficile tempo reale
Un sistema in tempo reale difficile non può mai perdere la sua scadenza. Se la funzione non viene completata entro i vincoli di tempo assegnati, l'applicazione è considerata non riuscita. Ciò potrebbe causare gravi perdite se il sistema in questione influisce sull'ambiente fisico o sulla vita umana. Esempi di sistemi hard real time includono:
- Un sistema di controllo del motore di un'auto. Un segnale ritardato può causare danni o guasti al motore.
- Un pacemaker cardiaco. A causa del rischio per la vita umana, un pacemaker richiede un calcolo in tempo reale difficile per garantire che il pacemaker non si guasti.
- Macchine su una catena di montaggio. Se la macchina è in ritardo, potrebbe causare l'arresto dell'intera catena di montaggio.
- Alcuni tipi di stampanti, come stampanti a getto d'inchiostro, stampanti laser e stampanti in linea. Un errore in questi tipi di stampanti potrebbe causare un output mancante o un output non allineato.
Tempo reale morbido
Un sistema soft real time può non rispettare la scadenza e, finché le attività vengono eseguite tempestivamente, i risultati hanno valore. I sistemi soft real time vengono utilizzati per risolvere problemi di accesso simultaneo e la necessità di mantenere un numero di sistemi aggiornati attraverso situazioni in evoluzione. Il mancato rispetto della scadenza non ha conseguenze disastrose. Esempi di sistemi soft real time includono:
- Software per linee aeree commerciali. I piani di volo richiedono aggiornamenti costanti mentre cambiano, ma la latenza di pochi secondi o minuti è ancora utilizzabile.
- Sistemi audio-video live. Un fotogramma audio riprodotto in un secondo momento può provocare un breve guasto, il sistema può comunque continuare a funzionare.
- Videogiochi: poiché l'immagine successiva non può essere calcolata in anticipo, è un videogioco ma dipende dagli input del lettore. Pertanto, è disponibile solo un breve periodo di tempo per eseguire il calcolo necessario per generare un frame. Se la scadenza viene rispettata, il gioco può comunque continuare a un frame rate inferiore.