Sistema operativo in tempo reale (RTOS)

Dovremmo avere familiarità con il sistema operativo prima di passare ai sistemi operativi in ​​tempo reale. Il sistema operativo non è altro che l’interfaccia utente del computer per l’hardware. In altre parole, un sistema operativo è un programma software che utilizza i componenti hardware del computer per operare secondo i comandi dell’utente. Il sistema operativo è fondamentale per fornire servizi come l’allocazione delle risorse, la gestione della memoria, la gestione dei processi, la gestione dei file e altri (spiegherò questi termini più avanti).

Windows è un esempio di sistema operativo. UNIX, Novel Netware, Apple Leopard, Linux, Solaris, ecc. Questi sono tutti esempi di sistemi operativi generici.

Se diamo uno sguardo al sistema operativo in tempo reale (RTOS), possiamo vedere che si tratta di un sistema operativo che funge anche da interfaccia utente per l’hardware del sistema. Inoltre, RTOS esegue attività come la gestione di file, processi e memoria, tra gli altri. Ci si potrebbe chiedere qual è la differenza se RTOS esegue le stesse attività dei sistemi operativi generici (GPOS)? Dobbiamo comprendere termini come gestione della memoria, gestione dei processi, gestione dei file, latenza di interrupt, gestione dei dispositivi, sistemi in tempo reale, ecc. Prima di approfondire l’RTOS e le sue variazioni.

Sistemi operativi in ​​tempo reale: un sistema non è altro che un insieme di periferiche interconnesse e utilizzate per elaborare e produrre dati. I sistemi in tempo reale sono quelli che richiedono una quantità specifica di tempo per elaborare i dati in entrata e fornire un output. Due sistemi compongono il sistema in tempo reale:

Sistemi hard real time: un sistema hard real time è un sistema che opera con rigidi vincoli di tempo. Ad esempio, se i clienti richiedessero un output per un input specifico entro 10 secondi, il sistema dovrebbe elaborare i dati e fornire il risultato esattamente entro tale lasso di tempo. Il limite di tempo per terminare l’operazione per i dati forniti nell’esempio precedente è di 10 secondi. Entro il decimo secondo, i sistemi hard genuine dovrebbero aver terminato la procedura e prodotto l’output. Dovrebbe produrre l’output esattamente entro il decimo secondo e non entro l’undicesimo o il nono secondo. Rispettare la scadenza è fondamentale nell’impegnativo sistema in tempo reale. Il sistema non funzionerà correttamente se la scadenza non viene rispettata.

Soft Real Time System: in un sistema soft real time, il completamento delle attività entro la scadenza non è sempre necessario, ma il processo deve procedere e produrre un risultato. Anche i sistemi soft real-time non possono mancare la scadenza per qualsiasi attività o processo, indipendentemente dalla priorità, indipendentemente dal fatto che debba rispettare o meno la scadenza. Le prestazioni del sistema ne risentiranno e non sarà possibile per le persone utilizzarlo se la scadenza viene costantemente rispettata. Personal computer, sistemi audio e video e altri dispositivi sono i migliori esempi di sistemi soft real-time.

La gestione della memoria è il processo di allocazione della memoria per ogni programma che verrà eseguito ed elaborato in memoria (RAM o ROM). Il paging della domanda, la memoria virtuale e la segmentazione sono solo alcuni dei programmi che ricadono sotto questo controllo. La strategia di gestione della memoria chiamata segmentazione divide la memoria fisica in segmenti logici basati sulla dimensione del programma. La segmentazione impedirà la memoria inutilizzata, semplificherà la condivisione e fornirà protezione software.

Ogni singolo processo inviato dall’utente dovrebbe essere elaborato dal sistema operativo, che assegnerà anche la priorità a ciascun processo e restituirà i risultati. L’elaborazione dei processi sarà gestita da un algoritmo di schedulazione e le Inter Process Communications (IPC) saranno gestite da semafori, code di messaggi, memoria condivisa, pipe e FIFO.

La gestione dei file include, tra le altre cose, il modo in cui i file sono organizzati nella memoria, quali file devono essere utilizzati dagli utenti, i permessi dei file (lettura, scrittura ed esecuzione) e il modo in cui i file sono organizzati nella memoria primaria e secondaria utilizzando i file system. La gestione dei file esegue tutte le suddette attività.

I sistemi operativi in ​​tempo reale differiscono dai sistemi operativi generici nei seguenti modi:

I sistemi operativi in ​​tempo reale sono noti per essere prevedibili, dipendenti dal tempo e utilizzati principalmente in sistemi hard real-time. I sistemi operativi generici, d’altra parte, non sono indipendenti dal tempo o deterministici e vengono utilizzati principalmente per i sistemi soft real-time.

VxWorks, Cos, Qnx, Rtlinux, Window Embedded e altri sono esempi di sistemi operativi in ​​tempo reale (RTOS). Windows (95, 98, XP, Vista, 7, 8, Media Center, ecc.), Linux (Ubuntu, Red Hat, Fedora, Mandarin, Linux mint, ecc.), Apple (Leopard, Tiger, ecc.), Novel NetWare, Solaris e altri sistemi operativi sono esempi di sistemi operativi generici (GPOS). I sistemi a livello di desktop e server utilizzano tutti questi GPOS. I sistemi embedded in tempo reale sono i luoghi in cui vengono utilizzati principalmente gli RTOS.

Per quanto riguarda la distinzione tra RTOS e GPOS:

Hardware del computer: i GPOS sono utilizzati su architetture complesse, come mainframe, server e personal computer. Gli RTOS, o “sistemi operativi leggeri”, sono utilizzati in applicazioni integrate e architetture compatte come telefoni cellulari e distributori automatici di caramelle. Nelle piccole applicazioni con un numero finito di attività da completare, i processi RTOS sono in genere corretti e utilizzati. Ad esempio, un tipico distributore automatico di cioccolato mostrerà una varietà di cioccolatini insieme ai loro prezzi. Nel caso in cui l’utente abbia selezionato del cioccolato, il distributore deve verificare la quantità fornita dall’utente prima di erogare il cioccolato; se la quantità è insufficiente, deve essere visualizzato un messaggio di avviso.

Tuttavia, in GPOS, possiamo aggiungere processi aggiuntivi per eseguire più attività (al contrario, in un sistema operativo Windows standard, possiamo aggiungere numerose applicazioni aggiuntive, come IDE, lettori e software per giochi). RTOS nell’hardware può funzionare su configurazioni molto modeste, come (pochi kilobyte di ram, microcontrollore come CPU ecc.)

RTOS non supporta idee come la memoria virtuale, il paging o la gestione di file system di grandi dimensioni. Inoltre, RTOS è più conveniente per i dispositivi embedded rispetto a GPOS.