Home » I sistemi operativi real-time: come funzionano e alcuni esempi

Servizio specializzato

I sistemi operativi real-time: come funzionano e alcuni esempi

Un sistema operativo real-Time (RTOS) è un sistema operativo sviluppato per il supporto di applicazioni software real time. Questi sistemi vengono comunemente impiegati in ambito industriale e in tutti quei contesti in cui sia necessario ottenere una risposta dal sistema in un tempo massimo prefissato. Scopriamo ulteriori dettagli su questi sistemi.

Quali sono le caratteristiche di un sistema real-time

Esistono due principali tipologie di sistemi real-time: i sistemi hard real-time, e i sistemi soft real-time. Questi si differenziano a seconda del fatto che il tempo entro cui il sistema deve espletare una certa funzione venga misurato in valore assoluto, o come valore medio. I sistemi soft real-time, infatti, presentano un ritardo maggiore rispetto a quelli hard real-time.

Un sistema operativo real-time deve presentare le seguenti caratteristiche:

  • avere un’architettura “multithread preemptive” per la gestione di processi multipli;
  • deve essere di tipo deterministico e con un comportamento predeterminabile in ogni singola situazione;
  • deve saper gestire la sincronizzazione dei sotto processi;
  • deve garantire tempi di intervento predicibili.

Con riferimento al concetto di “tempo predeterminato” dei sistemi real-time dobbiamo precisare che non si intende la velocità in senso stretto, bensì la possibilità di prevedere e predeterminare con esattezza quali saranno i tempi di esecuzione di una determinata operazione.

I sistemi Scheduling di Real Time

Quando un processore deve eseguire più operazioni in parallelo, deve applicare un strategia di gestione che sia in grado di utilizzare in modo sequenziale le sue risorse, riuscendo così a determinare le attività previste per i differenti task entro le relative scadenze.
Un sistema operativo capace di soddisfare questa condizione prende il nome di “schedulabile”.
Gli algoritmi di scheduling real-time possono essere distinti in:

  • statici: la decisione di schedulazione viene definita prima che inizi l’esecuzione dei processi. Questo sistema funziona solo se sono disponibili in anticipo tutte le informazioni circa il lavoro da fare e le scadenze da rispettare;
  • dinamici: la decisione di schedulare è presa durante l’esecuzione dei processi stessa. In questo caso, quindi, non si conoscono in anticipo i tempi e le scadenze da rispettare.

Alcuni esempi di sistemi Real Time

Uno degli esempi più rappresentativi delle funzionalità di un sistema real-time è la sua applicazione per il controllo della temperatura del nucleo di una centrale nucleare. Si tratta a tutti gli effetti di un sistema hard real-time di fondamentale importanza.

Un altro esempio simile è quello del controllo di processo di un laminatoio per l’acciaio: la laminazione deve essere eseguita entro un certo intervallo di tempo dopo la fusione dell’acciaio, viceversa le lastre si induriscono e la loro lavorazione non può proseguire.

Esempi di sistemi soft-real time, invece, sono quelli del funzionamento di un lettore DVD, o di uno sportello automatico per la distribuzione delle banconote; in entrambi i casi il sistema deve saper restituire dei risultati in tempi accettabili, senza però che il mancato rispetto di questi tempi sia la causa di conseguenze dannose.

Le soluzioni RTOS che impieghiamo in EDALAB

Nel corso degli anni EDALAB ha sempre favorito l’utilizzo di un RTOS per lo sviluppo dei propri firmware rispetto ad una soluzione bare metal.

L’utilizzo di un RTOS facilita lo sviluppo di molti progetti, li rende più mantenibili, portabili, sicuri ed estensibili.

La funzionalità che da sola è motivo sufficiente per scegliere un RTOS è il kernel che gestisce il multitasking; permette allo sviluppatore di dividere un problema complesso in task più semplici che quindi possono essere gestiti con più facilità anche da diversi membri del team.

Il multitasking dà all’applicazione una struttura semplice ma solida su cui costruire tutte le funzionalità necessarie.

Completano l’offerta del kernel servizi aggiuntivi come funzionalità di comunicazione tra i task, primitive di sincronizzazione, timers e gestione delle risorse, memoria e interrupts.

Noi in EDALAB utilizziamo principalmente due implementazioni di RTOS per lo sviluppo dei nostri firmware.

Il primo è FreeRTOS, utilizzato sulle piattaforme STM32 di STMicroelectronics e Kinetis di NXP Semiconductors.

FreeRTOS è forse il più conosciuto tra i sistemi operativi real-time e con il suo supporto a oltre 40 architetture hardware è sicuramente il leader del mercato tra i dispositivi vincolati da risorse limitate. I suoi punti di forza sono:

  • un kernel scalabile con minima occupazione di memoria, overhead bassissimo e supporto ad applicazioni che richiedono basso consumo
  • è un progetto semplice, collaudato da anni e affidabile, con molte garanzie sul codice sorgente open source che viene rilasciato con licenza MIT
  • è presente un ottima e completa documentazione online con molti esempi e un forum di supporto
  • sono disponibili un numero sempre crescente di librerie di supporto che includono anche soluzioni di integrazione con servizi IoT cloud

Il secondo è TI RTOS di Texas Instruments. in questo caso utilizziamo questo RTOS sui chip della piattaforma SimpleLink dedicati alla comunicazione con dispositivi Zigbee e Bluetooth Low Energy.

Questo RTOS è fortemente integrato nell’ecosistema Texas Instruments e per questo supportato solo da chip prodotti da Texas Instruments.

Da un lato questo facilita sicuramente la scrittura del codice iniziale su questi chip con molti servizi, driver e stack di rete già inclusi nel pacchetto ma dall’altro limita la possibilità di riutilizzo del codice su altre piattaforme.

Facebook
LinkedIn

Leggi ancora

Shopping Basket