Caratteristiche di un RTOS

Argomenti trattati : Le caratteristiche salienti di un RTOS, La modularità, Gli

ambienti di sviluppo, royalty e supporto tecnico, Linux

 

Argomenti trattati : Le caratteristiche salienti di un RTOS, La modularità, Gli

ambienti di sviluppo, royalty e supporto tecnico, Linux

 

Le caratteristiche salienti di un RTOS
Un sistema operativo in tempo reale può essere descritto come un insieme di servizi di sistema messi a disposizione dello sviluppatore congiuntamente ad uno schedulatore di task che sia flessibile e non richieda troppe risorse sia in termini di occupazione di memoria che di velocità di esecuzione. Oltre al determinismo e ad un tempo di latenza accettabile (generalmente compreso tra il microsecondo e il millisecondo, ma questo valore può cambiare in modo sostanziale in funzione dell’applicazione) sono svariati gli aspetti che caratterizzano un RTOS. Deve essere multithread, ossia deve consentire l’esecuzione di più attività concorrenti e deve disporre di un meccanismo che permetta di assegnare una priorità ereditaria ad ogni thread. Inoltre deve essere possibile arrestare e riprendere ciascun thread in qualunque istante, compatibilmente con la risoluzione temporale del sistema. Questa caratteristica, detta preempibilità, permette di rispondere ‘in tempo reale’ agli eventi critici sospendendo immediatamente i compiti meno importanti a vantaggio di quelli essenziali alla missione del sistema.
Quelle appena descritte sono proprietà che si possono attribuire al nucleo, o kernel, del sistema operativo, ma un buon RTOS deve disporre anche di altre qualità, che in larga parte si riferiscono ad un aspetto che nello sviluppo di sistemi embedded ha una importanza strategica fondamentale: minimizzare il time-to-market.

La modularità
Altri elementi da prendere in considerazione nella scelta di un RTOS sono la sua modularità e la capacità di essere scalato verso il basso: la maggior parte delle applicazioni embedded presentano dei vincoli molto stretti in termini di risorse disponibili e la soluzione ideale consiste nell’avere un kernel estremamente contenuto che implementi solo i servizi strettamente necessari. Tra i prodotti attualmente in commercio si possono trovare kernel che occupano solo 2,5 kB di memoria.
All’estremo opposto troviamo l’esigenza di disporre di funzionalità avanzate preconfezionate e solo da configurare in modo da ridurre i tempi di sviluppo e creare prodotti in linea con le richieste del mercato. Certi produttori forniscono anche soluzioni complete per la integrare all’interno della propria applicazione sottosistemi finiti come browser Internet e dispositivi multimediali. L’interfaccia grafica (GUI) è un elemento di grande importanza in tutte le applicazioni destinate al mercato consumer, dove un aspetto accattivante, un look & feel conosciuto (tipicamente in stile Windows) ma al contempo personalizzato, il supporto multilingue e la possibilità di realizzare in brevissimo tempo diverse varianti di uno stesso tema possono contribuire pesantemente al successo di un prodotto.

Ambienti di sviluppo, royalty e supporto tecnico
Gli ambienti di sviluppo che supportano l’RTOS possono rappresentare una soluzione a molti degli aspetti appena descritti. Da un lato possono essere multipiattaforma sia dal punto di vista host (ossia del sistema su cui risiede l’ambiente di sviluppo stesso) sia da quello target. In quest’ultimo caso il software coadiuva lo sviluppatore a trasportare il proprio codice su diverse piattaforme. Altri strumenti, più sofisticati, supportano addirittura più sistemi operativi rendendo meno traumatico il passaggio da un RTOS all’altro.
Inoltre certi ambienti di sviluppo integrati riuniscono in un unico applicativo tutto quanto serve per realizzare la propria applicazione, inclusi gli editor visuali per la creazione di interfacce grafiche personalizzate. Alcuni produttori infine creano degli ambienti di sviluppo propri in modo da ottimizzare la compilazione del codice e sfruttare fino all’estremo le possibilità offerte da software ed hardware: questo è particolarmente vero per quanto riguarda i debugger.
Il supporto è un elemento che deve essere considerato nella scelta di un RTOS, se si vuole minimizzare il time-to-market: problemi imprevisti, la realizzazione di driver di periferica e l’ottimizzazione mirata possono richiedere tempi eccessivi in assenza di una consulenza specializzata, soprattutto quando non viene fornito il codice sorgente dell’RTOS.
I costi di un RTOS sono particolarmente variabili sia per ciò per cui è richiesto pagamento sia per la loro entità. Gli strumenti di sviluppo sono generalmente venduti per postazione di lavoro e spesso sono concessi in licenza all’utente solo il tempo necessario per portare a termine un dato progetto. Il sistema operativo può essere senza royalty, può essere venduto in un’unica soluzione oppure dato in licenza su ogni prodotto. In questo caso i costi variano in base al volume di produzione, passando da poche migliaia di lire per grandi volumi fino anche a milioni per produzioni limitate.

Linux

Un discorso a parte meritano gli RTOS basati su Linux: in questo caso il prodotto in sé è disponibile a costo zero, ma sono molte le compagnie che offrono servizi di supporto per lo sviluppo di applicazioni a testimoniare l’importanza crescente di questo sistema operativo anche nel settore aziendale ed industriale.
Interesse che ha attirato l’attenzione di diversi produttori hardware e software, inclusi i produttori di RTOS commericali che si sono costituiti in iniziative volte a favorire, e controllare, lo sviluppo e la diffusione di sistemi operativi basati su Linux nell’ambito delle applicazioni embedded, come l'italiano KaeilOS di Koan.