Cos'è un reale
La tua guida alla scelta di un RTOS per il tuo prossimo progetto di sistema embedded.
Un sistema operativo in tempo reale (RTOS) è un sistema operativo con due caratteristiche chiave: prevedibilità e determinismo. In un RTOS, le attività ripetute vengono eseguite entro un limite di tempo ristretto, mentre in un sistema operativo generico ciò non è necessariamente così. Prevedibilità e determinismo, in questo caso, vanno di pari passo: sappiamo quanto tempo richiederà un compito e che produrrà sempre lo stesso risultato.
Gli RTOS sono suddivisi in sistemi “soft” real-time e “hard” real-time. I sistemi soft real-time operano in poche centinaia di millisecondi, sulla scala di una reazione umana. I sistemi hard real-time, tuttavia, forniscono risposte prevedibili entro decine di millisecondi o meno.
Tassonomia dei sistemi operativi
Un RTOS è un tipo di sistema operativo, ma è molto diverso da quello con cui la maggior parte dei consumatori ha familiarità. I sistemi operativi nei telefoni o nei personal computer sono, in confronto, pieni di app e funzionalità; devono essere in grado di supportare qualsiasi cosa l'utente possa voler fare oggi. Un RTOS, d'altra parte, è snello, pensato per eseguire i suoi compiti in modo rapido ed efficace. È una frazione delle dimensioni, a volte solo pochi megabyte (contro più di 20 gigabyte), con un'interfaccia grafica semplice e priva di molte funzionalità familiari, come un browser web.
Un sistema embedded è un computer incorporato in una macchina più grande, ad esempio il microcontrollore su un braccio robotico. Nei sistemi non critici con una certa flessibilità temporale, gli sviluppatori possono utilizzare un sistema operativo generico (GPOS) open source come Linux. Linux è completo, flessibile e ben noto. In un sistema critico (che ciò significhi safety critical o mission critical), gli sviluppatori optano per sistemi operativi in tempo reale. Le caratteristiche che distinguono un RTOS sono spesso essenziali per il successo. Ad esempio, un braccio robotico in una fabbrica deve essere prevedibile e affidabile e deve essere in grado di fermarsi immediatamente quando i dipendenti entrano nella sua area operativa. La variabilità può comportare uno spreco di risorse, problemi di controllo della qualità o infortuni.
Un braccio robotico deve essere in grado di fermarsi immediatamente quando i dipendenti entrano nella sua area operativa.
Grazie ai suoi vantaggi, un sistema operativo in tempo reale viene spesso utilizzato in un sistema embedded, ovvero un sistema che opera dietro le quinte di un'operazione più ampia. L'RTOS di solito non ha un'interfaccia grafica. Occasionalmente, più sistemi operativi vengono integrati contemporaneamente, per fornire capacità operativa unita all'usabilità di un sistema operativo generico.
Gli RTOS si trovano spesso in dispositivi edge intelligenti, noti anche come edge elettromeccanici o sistemi cyber-fisici. Ciò significa che il dispositivo produce e funziona sui dati. Quindi un’auto, ad esempio, sarebbe in grado di monitorare l’ambiente circostante e agire di conseguenza istantaneamente da sola. Tali dispositivi spesso abbinano l’intelligenza artificiale o l’apprendimento automatico, o entrambi, a componenti in tempo reale per aumentare le capacità della struttura sottostante.
Un’auto autonoma deve essere in grado di monitorare l’ambiente circostante e agire di conseguenza in modo autonomo.
Un RTOS è piccolo, veloce, reattivo e deterministico. Ciò significa che eseguirà le attività in modo rapido ed efficiente, rispondendo ogni volta come previsto. Grazie all'importanza del dispositivo host, l'infrastruttura RTOS è più sicura e ha meno probabilità di bloccarsi o fallire. Infine, un RTOS è orientato allo sviluppatore, il che significa che continua a distribuire aggiornamenti che aiutano gli utenti a programmare in modo più efficace.
Alcune aziende cercano di produrre internamente il proprio RTOS, su misura per il loro progetto, invece di acquistare un sistema operativo commerciale standard. Ciò presenta alcuni vantaggi: il sistema operativo è progettato specificamente per il caso d’uso e l’azienda ne comprende i meccanismi e il funzionamento interno. Tuttavia, questo approccio è spesso più costoso e richiede più tempo e gli sviluppatori che non sono abituati a lavorare sui sistemi operativi impiegano molto tempo per produrne uno. L'utilizzo di un sistema commerciale è più veloce, più semplice e offre il vantaggio di un team tecnico esperto in grado di rispondere alle domande e fornire supporto. Un sistema operativo è uno strumento, molto simile a un martello o un trapano. Anche se potresti realizzarne uno, uno che potresti comprendere a fondo e che potrebbe adattarsi meglio al tuo progetto, richiederebbe molto tempo, senza garanzie di prestazioni o capacità.