STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea...

51
STUDIO COMPARATO DEI PRINCIPALI SISTEMI STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE OPERATIVI IN TEMPO REALE Relatore: Relatore: Chiar.mo Chiar.mo Tesi di Laurea di: Tesi di Laurea di: Prof. Aldo F. Dragoni Prof. Aldo F. Dragoni Colella Guido Colella Guido Università Politecnica delle Marche Università Politecnica delle Marche CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA ELETTRONICA ELETTRONICA ANNO ACCADEMICO 2005 – 2006 ANNO ACCADEMICO 2005 – 2006

Transcript of STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea...

Page 1: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

STUDIO COMPARATO DEI PRINCIPALI SISTEMI STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALEOPERATIVI IN TEMPO REALE

Relatore: Relatore: Chiar.mo Chiar.mo Tesi di Laurea di: Tesi di Laurea di:

Prof. Aldo F. Dragoni Colella Guido Prof. Aldo F. Dragoni Colella Guido

Università Politecnica delle MarcheUniversità Politecnica delle Marche

CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA ELETTRONICACORSO DI LAUREA SPECIALISTICA IN INGEGNERIA ELETTRONICA

ANNO ACCADEMICO 2005 – 2006ANNO ACCADEMICO 2005 – 2006

Page 2: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

22

SOMMARIOSOMMARIO

Introduzione ai sistemi operativi real-time;Introduzione ai sistemi operativi real-time;

Passaggio dagli OS ai sistemi operativi di natura real-Passaggio dagli OS ai sistemi operativi di natura real-time;time;

Le più diffuse alternative hard real-time oggi sul Le più diffuse alternative hard real-time oggi sul mercato: RTLinux ed RTAI;mercato: RTLinux ed RTAI;

Un’estensione firm real-time di Linux: il KURT;Un’estensione firm real-time di Linux: il KURT;

TinyOS e Mantis: uno sguardo all’immediato futuro TinyOS e Mantis: uno sguardo all’immediato futuro degli RTOS;degli RTOS;

Conclusioni sullo studio dei sistemi operativi real-Conclusioni sullo studio dei sistemi operativi real-time;time;

Page 3: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Introduzione ai sistemi operativi real-timeIntroduzione ai sistemi operativi real-time 33

EVOLUZIONEEVOLUZIONE DEI CALCOLATORI DEI CALCOLATORI ELETTRONICIELETTRONICI

Page 4: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Introduzione ai sistemi operativi real-timeIntroduzione ai sistemi operativi real-time 44

APPLICAZIONI DEI SISTEMI OPERATIVI REAL-APPLICAZIONI DEI SISTEMI OPERATIVI REAL-TIME (1)TIME (1)

Page 5: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Introduzione ai sistemi operativi real-timeIntroduzione ai sistemi operativi real-time 55

APPLICAZIONI DEI SISTEMI OPERATIVI REAL-APPLICAZIONI DEI SISTEMI OPERATIVI REAL-TIME (2)TIME (2)

Controllo sismicoControllo sismico Controllo del microclima in edificiControllo del microclima in edifici ““Sensing” per la sicurezza e strategicoSensing” per la sicurezza e strategico Domotica & elettronica consumerDomotica & elettronica consumer Musei interattiviMusei interattivi Agricoltura intelligenteAgricoltura intelligente Navigazione roboticaNavigazione robotica ………….e tantissime altre.e tantissime altre

……e ancora :e ancora :

Page 6: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Introduzione ai sistemi operativi real-timeIntroduzione ai sistemi operativi real-time 66

SCENARIO DI UN SISTEMA OPERATIVO REAL-SCENARIO DI UN SISTEMA OPERATIVO REAL-TIMETIME

All’interno di tali contesti applicativi gli RTOS (acronimo di All’interno di tali contesti applicativi gli RTOS (acronimo di RReal-eal-TTime ime OOperative perative SSystem) si collocano come: ystem) si collocano come:

1. Sistemi operativi capaci di eseguire tutti i propri “tasks” 1. Sistemi operativi capaci di eseguire tutti i propri “tasks” senza violare senza violare specifici vincoli temporalispecifici vincoli temporali;;

2. Il tempo di esecuzione dei tasks può essere 2. Il tempo di esecuzione dei tasks può essere calcolato a prioricalcolato a priori e in modo e in modo deterministicodeterministico sulla base della configurazione sia hardware che software del sulla base della configurazione sia hardware che software del sistema;sistema; 3. Sistemi contraddistinti dal fatto che, la correttezza della risposta dipende 3. Sistemi contraddistinti dal fatto che, la correttezza della risposta dipende non solo dai valori che assume l’uscita dell’elaboratore ma anche dal tempo non solo dai valori che assume l’uscita dell’elaboratore ma anche dal tempo in cui questi vengono prodotti; pertanto, il tempo del sistema deve essere in cui questi vengono prodotti; pertanto, il tempo del sistema deve essere necessariamente sincronizzato con il tempo dell’ambiente circostante necessariamente sincronizzato con il tempo dell’ambiente circostante

Page 7: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Introduzione ai sistemi operativi real-timeIntroduzione ai sistemi operativi real-time 77

OSSERVAZIONI SUL REAL-TIMEOSSERVAZIONI SUL REAL-TIME

E’ importante sottolineare alcune caratteristiche che E’ importante sottolineare alcune caratteristiche che contraddistinguono un RTOS che spesso possono dar luogo ad contraddistinguono un RTOS che spesso possono dar luogo ad equivoci o ad interpretazioni errate specie per chi si avvicina per la equivoci o ad interpretazioni errate specie per chi si avvicina per la prima volta in tale contesto:prima volta in tale contesto:

AnzituttoAnzitutto, , un sistema in tempo reale non è necessariamente un un sistema in tempo reale non è necessariamente un sistema veloce; ossia “real-time” non è sinonimo di “veloce” ;sistema veloce; ossia “real-time” non è sinonimo di “veloce” ;

Il concetto di velocità è sempre relativo ad uno specifico Il concetto di velocità è sempre relativo ad uno specifico ambiente;ambiente;

La velocità deve comunque garantire la correttezza;La velocità deve comunque garantire la correttezza;

L’obiettivo di un RTOS è quello di garantire la tempistica di ogni L’obiettivo di un RTOS è quello di garantire la tempistica di ogni singolo task, mentre l’obiettivo di un sistema veloce è quello di singolo task, mentre l’obiettivo di un sistema veloce è quello di minimizzare il tempo medio di risposta dei vari tasks;minimizzare il tempo medio di risposta dei vari tasks;

Il tempo medio di risposta non può essere preso come un Il tempo medio di risposta non può essere preso come un parametro significativo nel real-time;parametro significativo nel real-time;

Page 8: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Introduzione ai sistemi operativi real-timeIntroduzione ai sistemi operativi real-time 88

RTOS ALL’INTERNO DELLA SCALA RTOS ALL’INTERNO DELLA SCALA GERARCHICA DEGLI OSGERARCHICA DEGLI OS

Ha delle periferiche di I/O che sono Ha delle periferiche di I/O che sono architetture di calcolatori diffuse in architetture di calcolatori diffuse in ambiente ambiente industriale e biomedicoindustriale e biomedico; ;

La memoria di massa non è un disco La memoria di massa non è un disco fisso bensì una memoria flash;fisso bensì una memoria flash;

è un sistema “speciale” che deve solo è un sistema “speciale” che deve solo assolvere il compito specifico per cui è assolvere il compito specifico per cui è stato programmatostato programmato

i sistemi Real-time possono essere i sistemi Real-time possono essere considerati Embedded ma non considerati Embedded ma non viceversaviceversa

devono soddisfare devono soddisfare precisi precisi vincoli temporalivincoli temporali per quel che per quel che concerne l’esecuzione dei concerne l’esecuzione dei propri tasks; propri tasks;

devono essere caratterizzati devono essere caratterizzati non dalla velocità di non dalla velocità di esecuzione (parametro esecuzione (parametro insignificante per il real-time), insignificante per il real-time), ma dalla ma dalla “predicibilità”“predicibilità” in in quanto real-time non è quanto real-time non è sinonimo di “veloce” ma di sinonimo di “veloce” ma di “predicibile“predicibile”;”;

Page 9: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Introduzione ai sistemi operativi real-timeIntroduzione ai sistemi operativi real-time 99

CAUSE DI INDETERMINISMOCAUSE DI INDETERMINISMO

Si nota che per realizzare un valido sistema real-time, bisogna Si nota che per realizzare un valido sistema real-time, bisogna cercare di “emarginare”, nella maniera più efficace possibile, o cercare di “emarginare”, nella maniera più efficace possibile, o quanto meno ridurre, le cause di indeterminismo che affliggono quanto meno ridurre, le cause di indeterminismo che affliggono l’esecuzione di ogni singolo task. Queste ultime possono essere di l’esecuzione di ogni singolo task. Queste ultime possono essere di diversa natura:diversa natura:

1.1. ArchitetturialeArchitetturiale - - Cache, pipelining, interruptus, DMACache, pipelining, interruptus, DMA;;

2.2. OperativoOperativo - - Scheduling, sincronizzazione, comunicazioneScheduling, sincronizzazione, comunicazione;;3. Linguaggio3. Linguaggio - - Non hanno esplicito supporto per il tempoNon hanno esplicito supporto per il tempo;;4. Metodologie progettuali4. Metodologie progettuali - - Mancanza di tecniche di analisi e verificaMancanza di tecniche di analisi e verifica..

Page 10: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Introduzione ai sistemi operativi real-timeIntroduzione ai sistemi operativi real-time 1010

PREDICIBILITA’ IN FUNZIONE DELLA PREDICIBILITA’ IN FUNZIONE DELLA TIPOLOGIA DI SCHEDULERTIPOLOGIA DI SCHEDULER

da un’analisi superficiale potrebbe risultare che solamente scheduler da un’analisi superficiale potrebbe risultare che solamente scheduler ciclici garantirebbero un alto valore di predicibilità;ciclici garantirebbero un alto valore di predicibilità;

la scelta di uno scheduler diverso da quello ciclico, garantisce ancora la scelta di uno scheduler diverso da quello ciclico, garantisce ancora predicibilità predicibilità

Scheduler ciclicoScheduler ciclico: tasks attivati sempre in : tasks attivati sempre in maniera predefinita maniera predefinita Determinismo Determinismo

Scheduler basato sulle prioritàScheduler basato sulle priorità: tasks : tasks attivati in base a priorità e ready queue, ma attivati in base a priorità e ready queue, ma a livello macroscopico a livello macroscopico il comportamento il comportamento può essere predettopuò essere predetto

La predicibilità è un requisito di correttezza per le applicazioni La predicibilità è un requisito di correttezza per le applicazioni real-timereal-time

Page 11: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

1111

SOMMARIOSOMMARIO

Introduzione ai sistemi operativi real-time;Introduzione ai sistemi operativi real-time;

Passaggio dagli OS ai sistemi operativi di natura real-Passaggio dagli OS ai sistemi operativi di natura real-time;time;

Le più diffuse alternative hard real-time oggi sul Le più diffuse alternative hard real-time oggi sul mercato: RTLinux ed RTAI;mercato: RTLinux ed RTAI;

Un’estensione firm real-time di Linux: il KURT;Un’estensione firm real-time di Linux: il KURT;

TinyOS e Mantis: uno sguardo all’immediato futuro TinyOS e Mantis: uno sguardo all’immediato futuro degli RTOS;degli RTOS;

Conclusioni sullo studio dei sistemi operativi real-Conclusioni sullo studio dei sistemi operativi real-time;time;

Page 12: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Passaggio dagli OS ai sistemi operativi di natura realPassaggio dagli OS ai sistemi operativi di natura real-time-time

1212

PREMESSAPREMESSA

Per un’analisi più prolifica delle numerose famiglie di RTOS è Per un’analisi più prolifica delle numerose famiglie di RTOS è opportuno scindere il problema alla base diversificando anzitutto opportuno scindere il problema alla base diversificando anzitutto almeno due tipologie implementative:almeno due tipologie implementative:

Sistemi RTOS progettati appositamente Sistemi RTOS progettati appositamente che non si basano su OS già esistenti sul che non si basano su OS già esistenti sul mercato;mercato;

Sistemi RTOS ottenuti mediante Sistemi RTOS ottenuti mediante l’adattamento di OS originari già esistenti l’adattamento di OS originari già esistenti sul mercato;sul mercato; Per la realizzazione di tale elaborato si è fatto riferimento quasi Per la realizzazione di tale elaborato si è fatto riferimento quasi

esclusivamente alla prima tipologia implementativa, ed in esclusivamente alla prima tipologia implementativa, ed in particolar modo a sistemi derivanti dalla particolar modo a sistemi derivanti dalla piattaforma Linuxpiattaforma Linux consentendo quest’ultima risorse di tipo consentendo quest’ultima risorse di tipo “Open Source”“Open Source” ed un ed un ottima ottima documentazione di basedocumentazione di base..

Page 13: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Passaggio dagli OS ai sistemi operativi di natura realPassaggio dagli OS ai sistemi operativi di natura real-time-time

1313

CARATERISTICHE STRUTTURALI DI LINUX CARATERISTICHE STRUTTURALI DI LINUX OS : LO SCHEDULINGOS : LO SCHEDULING

la politica del Time-sharing letteralmente la politica del Time-sharing letteralmente “uccide” il real-time“uccide” il real-time perché in quest’ultimo il tempo di esecuzione deve essere perché in quest’ultimo il tempo di esecuzione deve essere conosciuto conosciuto a prioria priori, mentre in Time-sharing non è affatto , mentre in Time-sharing non è affatto predicibilepredicibile..

Page 14: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Passaggio dagli OS ai sistemi operativi di natura realPassaggio dagli OS ai sistemi operativi di natura real-time-time

1414

PROBLEMATICHE PER IMPLEMENTAZIONE DI PROBLEMATICHE PER IMPLEMENTAZIONE DI LINUX IN REAL-TIMELINUX IN REAL-TIME

Lo scheduler di Linux ha un taglio “general purpose”.Ciò sostanzialmente è Lo scheduler di Linux ha un taglio “general purpose”.Ciò sostanzialmente è fatto per distribuire equamente le risorse ai tasks in esecuzione;fatto per distribuire equamente le risorse ai tasks in esecuzione;

Attualmente Linux non fornisce alcuna interfaccia per comunicare allo Attualmente Linux non fornisce alcuna interfaccia per comunicare allo scheduler la possibile natura real-time di un task o dati specifici circa il suo scheduler la possibile natura real-time di un task o dati specifici circa il suo timing (deadlines, computational times…);timing (deadlines, computational times…);

Il kernel non è preemptable (ciò significa sostanzialmente alta Il kernel non è preemptable (ciò significa sostanzialmente alta latenza di latenza di schedulingscheduling per scenari real time); per scenari real time);

Kernel Control Path non interrompibili( ma piuttosto reentrant, quindi Kernel Control Path non interrompibili( ma piuttosto reentrant, quindi annidabili) introducono in determinismo nel sistema;annidabili) introducono in determinismo nel sistema;

Kernel non ancora 100% reentrant(alcune funzioni disabilitano gli interrupt Kernel non ancora 100% reentrant(alcune funzioni disabilitano gli interrupt globalmente sulla CPU corrente per preservare strutture dati condivise). Tali globalmente sulla CPU corrente per preservare strutture dati condivise). Tali funzioni sono interrompibili solo attraverso un NMI;funzioni sono interrompibili solo attraverso un NMI;

La frequenza massima di richiamo della La frequenza massima di richiamo della schedule()schedule() di Linux è di Linux è 10ms(corrispondente al minimo time-quantum) che non risulta sufficiente per 10ms(corrispondente al minimo time-quantum) che non risulta sufficiente per scenari real-time e oltretutto non vi è alcuna garanzia su tale periodo.scenari real-time e oltretutto non vi è alcuna garanzia su tale periodo.

Dati relativi al kernel Dati relativi al kernel 2.42.4

Page 15: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Passagio dagli OS ai sistemi operativi di natura real-tPassagio dagli OS ai sistemi operativi di natura real-timeime

1515

LA LATENZA IN LINUXLA LATENZA IN LINUX

Latenza di schedulingLatenza di scheduling : distanza temporale tra il segnale (stimolo) : distanza temporale tra il segnale (stimolo) di wakeup che un evento è accaduto e l’istante in cui lo scheduter di wakeup che un evento è accaduto e l’istante in cui lo scheduter lancia il thread che è in attesa che quel segnale arrivi (risposta). lancia il thread che è in attesa che quel segnale arrivi (risposta).

Response Response TimeTime

Interrupt latency;Interrupt latency; Interrupt Handler Interrupt Handler

duration;duration; Scheduler Latency;Scheduler Latency;

Scheduling duration;Scheduling duration;

Preemption patches Preemption patches lanciare più frequentemente lanciare più frequentemente

la schedule();la schedule(); Low latency patches Low latency patches introduzione di punti di introduzione di punti di

prelazione nel codice del prelazione nel codice del kernelkernel

aumentanoaumentano

riduconoriducono

Page 16: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Passaggio dagli OS ai sistemi operativi di natura realPassaggio dagli OS ai sistemi operativi di natura real-time-time

1616

CON KERNEL 2.6 SI VA VERSO IL REAL TIMECON KERNEL 2.6 SI VA VERSO IL REAL TIME

Modifica della struttura generale dello scheduler (ad esempio, invece di Modifica della struttura generale dello scheduler (ad esempio, invece di un’unica coda per tutti i task del sistema esiste una coda per un’unica coda per tutti i task del sistema esiste una coda per ognuno dei 140 ognuno dei 140 livelli di priorità su ogni CPUlivelli di priorità su ogni CPU););

Frequenza interna del clock portata da 100 Hz (kernel 2.4) a Frequenza interna del clock portata da 100 Hz (kernel 2.4) a 1000 Hz1000 Hz;;

Parte del kernel è divenuta Parte del kernel è divenuta preemptablepreemptable;;

Eliminati numerosi “Big Locks”;Eliminati numerosi “Big Locks”;

Compatibilità con Compatibilità con PreemptionPreemption e e Low Latency PatchesLow Latency Patches;;

Migliorato il sistema di Migliorato il sistema di gestione di I/Ogestione di I/O..

Punti Punti salienti:salienti:

risultati:risultati:

Linux 2.6.9 Linux 2.6.9 without without Preemption Preemption patchpatch

Linux Linux 2.6.9 2.6.9 with with PreemptioPreemption patchn patch

Page 17: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Passaggio dagli OS ai sistemi operativi di natura realPassaggio dagli OS ai sistemi operativi di natura real-time-time

1717

PREDISPOSIZIONE DI LINUX AD UNA PREDISPOSIZIONE DI LINUX AD UNA POLITICA REAL-TIMEPOLITICA REAL-TIME

Linux è un sistema operativo di alto livello ed è Open Source;Linux è un sistema operativo di alto livello ed è Open Source;

E’ molto ben documentato;E’ molto ben documentato;

Nasce nell’ambiente universitario ed è naturalmente inserito in svariati contesti di Nasce nell’ambiente universitario ed è naturalmente inserito in svariati contesti di ricerca;ricerca;

E’ compatibile con i maggiori standard relativi al software (POSIX etc…);E’ compatibile con i maggiori standard relativi al software (POSIX etc…);

Ha buone prestazioni già in versioni base (senza modifiche strutturali);Ha buone prestazioni già in versioni base (senza modifiche strutturali);

La struttura monolitica lo rende adatto ad essere utilizzato in scenari Embedded;La struttura monolitica lo rende adatto ad essere utilizzato in scenari Embedded;

Il mondo dell’industria è interessato ad applicazioni di Linux in svariati settori: GPS Il mondo dell’industria è interessato ad applicazioni di Linux in svariati settori: GPS (Global Positioning System), HDTV (High Definition TV), DVB-RCS, cellulari, PDA, space (Global Positioning System), HDTV (High Definition TV), DVB-RCS, cellulari, PDA, space segment, signal processing, radar system, robotica…segment, signal processing, radar system, robotica…

Sono attualmente disponibili numerose implementazioni di architetture software Open Sono attualmente disponibili numerose implementazioni di architetture software Open Source per modificare Linux dotandolo di funzionalità real-time da cui attingere Source per modificare Linux dotandolo di funzionalità real-time da cui attingere spunto…spunto…

Page 18: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Passaggio dagli OS ai sistemi operativi di natura realPassaggio dagli OS ai sistemi operativi di natura real-time-time

1818

STRATEGIE PER IL REAL-TIME IN LINUXSTRATEGIE PER IL REAL-TIME IN LINUX

Esistono due possibili approcci:Esistono due possibili approcci:

Il PREEMPTABLE Il PREEMPTABLE KERNEL sostituisce KERNEL sostituisce gran parte del gran parte del kernel di Linuxkernel di Linux

Il RESURCE KERNEL Il RESURCE KERNEL gestisce il kernel di gestisce il kernel di Linux come un Linux come un normale task a bassa normale task a bassa prioritàpriorità

Page 19: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Passaggio dagli OS ai sistemi operativi di natura realPassaggio dagli OS ai sistemi operativi di natura real-time-time

1919

PANORAMICA DEI SISTEMI OPERATIVI REAL-PANORAMICA DEI SISTEMI OPERATIVI REAL-TIME PRESENTI SUL MERCATO: TIME PRESENTI SUL MERCATO: DISTRIBUZIONI COMMERCIALIDISTRIBUZIONI COMMERCIALI

RTLinuxPro(FSMLabs)RTLinuxPro(FSMLabs).. RTCore fornisce un ambiente real-time RTCore fornisce un ambiente real-time POSIX in cui Linux gira come task a bassa priorità. Limiti prestazionali: POSIX in cui Linux gira come task a bassa priorità. Limiti prestazionali: quelli dell’ hardware. Latenza di scheduling sotto 20 microsecondi quelli dell’ hardware. Latenza di scheduling sotto 20 microsecondi sulla maggior parte delle piattaforme.sulla maggior parte delle piattaforme.

MontaVista RTLinuxMontaVista RTLinux.. Basato su miglioramenti a MontaVista Linux. Basato su miglioramenti a MontaVista Linux. Preemptable kernel + real-time scheduler + frameworks.Preemptable kernel + real-time scheduler + frameworks.

BlueCat RT (LynuxWorks)BlueCat RT (LynuxWorks).. Microsistema operativo real-time (non Microsistema operativo real-time (non Linux-based) che gira Linux come processo a bassa priorità. BlueCat Linux-based) che gira Linux come processo a bassa priorità. BlueCat RT è incentrato sulle basse latenze di interrupt raggiunte grazie al RT è incentrato sulle basse latenze di interrupt raggiunte grazie al core ridottissimo e altamente performante.core ridottissimo e altamente performante.

uLinux (Lineo Solutions)uLinux (Lineo Solutions).. Footprint ridottissimo, tempi di startup e Footprint ridottissimo, tempi di startup e shutdown minimi, prestazioni real-time rendono adatto questo OS shutdown minimi, prestazioni real-time rendono adatto questo OS made in Japan per l’utilizzo nell’elettronica (dispositivi embedded).made in Japan per l’utilizzo nell’elettronica (dispositivi embedded).

FlightLinux (NASA)FlightLinux (NASA).. Versione real-time di Linux adattata ad Versione real-time di Linux adattata ad applicazioni spaziali al Goddard Space Flight Center e testata sullo applicazioni spaziali al Goddard Space Flight Center e testata sullo Space Shuttle (progetto nato come Open Source ma i sorgenti non Space Shuttle (progetto nato come Open Source ma i sorgenti non sono attualmente pubblicati).sono attualmente pubblicati).

Page 20: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Passaggio dagli OS ai sistemi operativi di natura realPassaggio dagli OS ai sistemi operativi di natura real-time-time

2020

PANORAMICA DEI SISTEMI OPERATIVI REAL-PANORAMICA DEI SISTEMI OPERATIVI REAL-TIME PRESENTI SUL MERCATO: TIME PRESENTI SUL MERCATO: DISTRIBUZIONI OPEN SOURCEDISTRIBUZIONI OPEN SOURCE

RTLinuxRTLinux.. Hard Real Time mini sistema operativo che gira Linux come Hard Real Time mini sistema operativo che gira Linux come processo a minima priorità rendendolo totalmente preemptable. processo a minima priorità rendendolo totalmente preemptable. L’ultima versione supporta user-space RT programming. La versione L’ultima versione supporta user-space RT programming. La versione MiniRTL è adatta ad utilizzi embedded.MiniRTL è adatta ad utilizzi embedded.

RTAI (Dipartimento di Ingegneria Aerospaziale del Politecnico RTAI (Dipartimento di Ingegneria Aerospaziale del Politecnico di Milano)di Milano).. Simile ad RTLinux ma con varie funzionalità in più tra cui Simile ad RTLinux ma con varie funzionalità in più tra cui LXRT Layer che permette di controllare task real-time dallo user-space LXRT Layer che permette di controllare task real-time dallo user-space memory-protected di Linux . AtomicRTAI è la versione a ridotto memory-protected di Linux . AtomicRTAI è la versione a ridotto footprint.footprint.

KURTKURT.. The Kansas University RealTime LinuxThe Kansas University RealTime Linux. . Implementazione Implementazione real-time di Linux che permette lo scheduling degli eventi con periodo real-time di Linux che permette lo scheduling degli eventi con periodo di 10 microsecondi.di 10 microsecondi.

RED-LinuxRED-Linux.. Ridotti kernel blocking times, rapidi tempi di risposta, Ridotti kernel blocking times, rapidi tempi di risposta, scheduler modularizzato “modificabile” a runtime. Università della scheduler modularizzato “modificabile” a runtime. Università della California, Irvine.California, Irvine.

QLinuxQLinux.. Implementazione tagliata per garantire caratteristiche di QoS Implementazione tagliata per garantire caratteristiche di QoS per task soft real-time. Tagliata per l’utilizzo inper task soft real-time. Tagliata per l’utilizzo in applicazioni multimediali, applicazioni multimediali, telefonia mobile…telefonia mobile…

Page 21: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

2121

SOMMARIOSOMMARIO

Introduzione ai sistemi operativi real-time;Introduzione ai sistemi operativi real-time;

Passaggio dagli OS ai sistemi operativi di natura real-Passaggio dagli OS ai sistemi operativi di natura real-time;time;

Le più diffuse alternative hard real-time oggi sul Le più diffuse alternative hard real-time oggi sul mercato: RTLinux ed RTAI;mercato: RTLinux ed RTAI;

Un’estensione firm real-time di Linux: il KURT;Un’estensione firm real-time di Linux: il KURT;

TinyOS e Mantis: uno sguardo all’immediato futuro TinyOS e Mantis: uno sguardo all’immediato futuro degli RTOS;degli RTOS;

Conclusioni sullo studio dei sistemi operativi real-Conclusioni sullo studio dei sistemi operativi real-time;time;

Page 22: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Le più diffuse alternative hard real-time oggi sul merLe più diffuse alternative hard real-time oggi sul mercato: RTLinux ed RTAIcato: RTLinux ed RTAI

2222

RTLINUX : UN’AGGIUNTA HARD REAL-TIME A RTLINUX : UN’AGGIUNTA HARD REAL-TIME A LINUX (1)LINUX (1)

RTLinux, sviluppato originariamente nell’Istituto di Tecnologia del New RTLinux, sviluppato originariamente nell’Istituto di Tecnologia del New Mexico, si pone in commercio come un prodotto Mexico, si pone in commercio come un prodotto “open-source”.“open-source”. Componenti specifici di RTLinux vengono rilasciati sotto licenza Componenti specifici di RTLinux vengono rilasciati sotto licenza GPLGPL, , mentre i componenti di Linux vengono rilasciati sotto la licenza di Linux mentre i componenti di Linux vengono rilasciati sotto la licenza di Linux standard. Il codice sorgente viene liberamente distribuito. Le versioni non standard. Il codice sorgente viene liberamente distribuito. Le versioni non a licenza GPL dei componenti di RTLinux sono disponibili tramite gli a licenza GPL dei componenti di RTLinux sono disponibili tramite gli FSMLabsFSMLabs..

RTLinux è un sistema operativo RTLinux è un sistema operativo hard hard real-time che gira in Linux come il real-time che gira in Linux come il suo thread di esecuzione suo thread di esecuzione a più bassa prioritàa più bassa priorità. .

Il thread di Linux è reso Il thread di Linux è reso completamente prelazionabilecompletamente prelazionabile così che i threads così che i threads real-time ed i gestori di interrupts non possano venir mai ritardati da real-time ed i gestori di interrupts non possano venir mai ritardati da operazioni non real-time.operazioni non real-time.

Le applicazioni real-time consistono in tasks real-time che sono Le applicazioni real-time consistono in tasks real-time che sono

incorporati in incorporati in moduli caricabili del kernelmoduli caricabili del kernel ed in processi di Linux/Unix che ed in processi di Linux/Unix che si occupano dei registri dati, del display, dell’accesso alla rete, e di altre si occupano dei registri dati, del display, dell’accesso alla rete, e di altre funzioni che non sono vincolate da una caratterizzazione del funzioni che non sono vincolate da una caratterizzazione del comportamento nel caso peggiore (worst case).comportamento nel caso peggiore (worst case).

Page 23: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Le più diffuse alternative hard real-time oggi sul merLe più diffuse alternative hard real-time oggi sul mercato: RTLinux ed RTAIcato: RTLinux ed RTAI

2323

RTLINUX : UN’AGGIUNTA HARD REAL-RTLINUX : UN’AGGIUNTA HARD REAL-TIME A LINUX (2)TIME A LINUX (2)

I threads real-time in RTLinux possono comunicare con i processi Linux I threads real-time in RTLinux possono comunicare con i processi Linux attraverso una memoria condivisa oppure mediante una particolare attraverso una memoria condivisa oppure mediante una particolare interfaccia simile ad un file in tal modo le applicazioni real-time interfaccia simile ad un file in tal modo le applicazioni real-time possono far uso di tutti i potenti servizi non real-time di Linux (incluso possono far uso di tutti i potenti servizi non real-time di Linux (incluso Networking, Grafica, Sistemi Windowing, Packages per l’analisi dei dati, Networking, Grafica, Sistemi Windowing, Packages per l’analisi dei dati, Drivers per Linux, standard POSIX API). Drivers per Linux, standard POSIX API).

Per esempio è piuttosto semplice comporre uno script che visualizzi dati in Per esempio è piuttosto semplice comporre uno script che visualizzi dati in Xwindows, risponda a comandi trasmessi da rete e collezioni dati da un Xwindows, risponda a comandi trasmessi da rete e collezioni dati da un task real-time.task real-time.

In pratica, l’approccio ad RT-Linux ha avuto molto successo in quanto si è In pratica, l’approccio ad RT-Linux ha avuto molto successo in quanto si è dimostrato essere un approccio vincente. La latenza di interrupt nel caso dimostrato essere un approccio vincente. La latenza di interrupt nel caso peggiore su un PC 486 a 33 MHz si assesta ben sotto i 30 µs, vicino al peggiore su un PC 486 a 33 MHz si assesta ben sotto i 30 µs, vicino al limite dell’hardware. limite dell’hardware.

Molte applicazioni sembrano trarre beneficio da una “sinergia” tra il Molte applicazioni sembrano trarre beneficio da una “sinergia” tra il sistema real-time ed il sistema operativo standard ottimizzato (average sistema real-time ed il sistema operativo standard ottimizzato (average case). Per esempio, le applicazioni di acquisizione dati sono spesso case). Per esempio, le applicazioni di acquisizione dati sono spesso composte da un semplice polling o un task real-time di tipo interrupt-composte da un semplice polling o un task real-time di tipo interrupt-driven che conduce i dati attraverso una coda al processo Linux che si driven che conduce i dati attraverso una coda al processo Linux che si occupa di gestire il logging ed il display. occupa di gestire il logging ed il display.

Page 24: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Le più diffuse alternative hard real-time oggi sul merLe più diffuse alternative hard real-time oggi sul mercato: RTLinux ed RTAIcato: RTLinux ed RTAI

2424

VERSIONI…VERSIONI… RTLinux V1RTLinux V1.. Si tratta di Si tratta di un sistema eccezionalmente un sistema eccezionalmente stabile che viene utilizzato stabile che viene utilizzato sia in prodotti commerciale sia in prodotti commerciale che in ambienti di che in ambienti di laboratorio. Fornisce inoltre laboratorio. Fornisce inoltre una semplice libreria API per una semplice libreria API per eseguire, iniziare, e eseguire, iniziare, e fermare lo scheduling dei fermare lo scheduling dei tasks real-time.tasks real-time.

RTLinux V2RTLinux V2.. Offre una versione semplificata dell’ Offre una versione semplificata dell’ API dei pthreads POSIX ed è conforme allo standard API dei pthreads POSIX ed è conforme allo standard “Minimal Real-time” di POSIX (all’interno del quale “Minimal Real-time” di POSIX (all’interno del quale un componente real-time è considerato un processo un componente real-time è considerato un processo POSIX singolo e multithread). L’obiettivo del kernel POSIX singolo e multithread). L’obiettivo del kernel V2 è senza dubbio quello di accostarsi il più possibile V2 è senza dubbio quello di accostarsi il più possibile allo standard POSIX, senza attuare alcun sacrificio allo standard POSIX, senza attuare alcun sacrificio dal punto di vista della semplicità e velocità del dal punto di vista della semplicità e velocità del sistema, ma al tempo stesso fornendo spunti ed sistema, ma al tempo stesso fornendo spunti ed aggiunte per realizzare una piena compatibilità con aggiunte per realizzare una piena compatibilità con POSIX. V2, messo sul mercato nel Novembre del POSIX. V2, messo sul mercato nel Novembre del 1999, è un sistema x86 capace di SMP.1999, è un sistema x86 capace di SMP.

RTLinux V3RTLinux V3 BetaBeta. E’ stato . E’ stato immesso sul immesso sul mercato il 3 mercato il 3 Gennaio del Gennaio del

2000 e rispetto 2000 e rispetto alle precedenti alle precedenti versioni essa versioni essa aggiunge il aggiunge il supporto supporto PowerPCPowerPC

Page 25: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Le più diffuse alternative hard real-time oggi sul merLe più diffuse alternative hard real-time oggi sul mercato: RTLinux ed RTAIcato: RTLinux ed RTAI

2525

STORIA DI RTAISTORIA DI RTAI Al fine di rendere Linux utilizzabile per applicazioni hard real-time, i membri Al fine di rendere Linux utilizzabile per applicazioni hard real-time, i membri

del Dipartimento di del Dipartimento di Ingegneria Aerospaziale del Politecnico di Milano (DIAPM)Ingegneria Aerospaziale del Politecnico di Milano (DIAPM) crearono un livello di astrazione hardware real-time (crearono un livello di astrazione hardware real-time (RTHALRTHAL) sul quale poter ) sul quale poter implementare un interfaccia per applicazioni real-time RTAI. implementare un interfaccia per applicazioni real-time RTAI.

Sfortunatamente, ulteriori indagini rivelarono che il kernel di Linux disponibile Sfortunatamente, ulteriori indagini rivelarono che il kernel di Linux disponibile nel vicino 1996, ovvero il 2.0.25, non era ancora pronto ad accogliere tale nel vicino 1996, ovvero il 2.0.25, non era ancora pronto ad accogliere tale innovazione.innovazione.

Nello stesso periodo, un gruppo capeggiato da Victor Yodaiken all’Istituto del Nello stesso periodo, un gruppo capeggiato da Victor Yodaiken all’Istituto del New Mexico of Minino and Technology (NMT) , introdusse la sua versione New Mexico of Minino and Technology (NMT) , introdusse la sua versione real-time di Linux (real-time di Linux (RTLinuxRTLinux) che fornì al team DIAPM l’opportunità di ) che fornì al team DIAPM l’opportunità di apprendere ulteriori nozioni sul kernel di Linux, sull’ hardware e sulle apprendere ulteriori nozioni sul kernel di Linux, sull’ hardware e sulle modifiche necessarie a rendere prelazionabile e deterministico lo scheduling. modifiche necessarie a rendere prelazionabile e deterministico lo scheduling.

Il punto di svolta ci fu poi nel 1998 quando fu sviluppato il kernel di Linux Il punto di svolta ci fu poi nel 1998 quando fu sviluppato il kernel di Linux 2.2.x 2.2.x che ebbe come punto di forza i noti miglioramenti proposti che ebbe come punto di forza i noti miglioramenti proposti dall’RTLinux, incluso le molte e necessarie modifiche architetturiali dall’RTLinux, incluso le molte e necessarie modifiche architetturiali all’interfaccia Linux/hardware. all’interfaccia Linux/hardware.

Tali modifiche, combinate con l’esperienza acquisita dal team DIAPM durante Tali modifiche, combinate con l’esperienza acquisita dal team DIAPM durante il loro lavoro di evoluzione dell’NMT-RTLinux kernel, e con le nozioni il loro lavoro di evoluzione dell’NMT-RTLinux kernel, e con le nozioni informatiche del 1996, sfociarono nella creazione della piattaforma informatiche del 1996, sfociarono nella creazione della piattaforma RTAIRTAI..

Page 26: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Le più diffuse alternative hard real-time oggi sul merLe più diffuse alternative hard real-time oggi sul mercato: RTLinux ed RTAIcato: RTLinux ed RTAI

2626

CARATTERISTICHE DI RTAICARATTERISTICHE DI RTAI

RTAI è un sistema operativo “RTAI è un sistema operativo “guaranteed-basedguaranteed-based” che assicura uno ” che assicura uno scheduling hard real-time ed inoltre conserva tutte le caratteristiche ed scheduling hard real-time ed inoltre conserva tutte le caratteristiche ed i servizi del Linux standard. i servizi del Linux standard.

In aggiunta, RTAI fornisce un supporto sia per In aggiunta, RTAI fornisce un supporto sia per UPUP che per che per SMPSMP con la con la capacità di assegnare sia tasks che IRQs alle specifiche CPUs, x486 e capacità di assegnare sia tasks che IRQs alle specifiche CPUs, x486 e Pentiums, schedulers Pentiums, schedulers one-shotone-shot e e periodiciperiodici, sia , sia inter-Linux inter-Linux che che intra-intra-LinuxLinux shared memory, compatibilità con lo standard POSIX, supporto shared memory, compatibilità con lo standard POSIX, supporto FPU, sincronizzazione tra tasks, semafori, sincronizzazione mutua, code FPU, sincronizzazione tra tasks, semafori, sincronizzazione mutua, code per messaggi, RPCs, mailboxes, la possibilità di utilizzare le system call per messaggi, RPCs, mailboxes, la possibilità di utilizzare le system call RTAI direttamente da dentro lo user-space standard, e tante altre RTAI direttamente da dentro lo user-space standard, e tante altre funzionalità. funzionalità.

Page 27: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Le più diffuse alternative hard real-time oggi sul merLe più diffuse alternative hard real-time oggi sul mercato: RTLinux ed RTAIcato: RTLinux ed RTAI

2727

RTAI: REAL-TIME APPLICATION INTERFACERTAI: REAL-TIME APPLICATION INTERFACE

rtairtai, che fornisce la struttura base rtai;, che fornisce la struttura base rtai;

rtai_fifosrtai_fifos, che altro non è che un adattamento di NMT RTLinux FIFOs (file in, file out);, che altro non è che un adattamento di NMT RTLinux FIFOs (file in, file out); rtai_schedrtai_sched, che fornisce al sistema uno scheduling one-shot oppure periodico;, che fornisce al sistema uno scheduling one-shot oppure periodico; rtai_mupsrtai_mups, che consente l’uso simultaneo degli schedulers one-shot e periodico oppure di due schedulers periodici, ognuno avente il proprio clock di base differente;, che consente l’uso simultaneo degli schedulers one-shot e periodico oppure di due schedulers periodici, ognuno avente il proprio clock di base differente;

rtai_shmrtai_shm, che alloca la memoria propria di inter-Linux tra i tasks real-time ed i tradizionali processi di Linux, ed anche intra-Linux come sostituto per UNIX V IPC;, che alloca la memoria propria di inter-Linux tra i tasks real-time ed i tradizionali processi di Linux, ed anche intra-Linux come sostituto per UNIX V IPC;

RTAI supporta ben 5 moduli caricabili del core che RTAI supporta ben 5 moduli caricabili del core che conferiscono al sistema le proprietà real-time conferiscono al sistema le proprietà real-time desiderate “a richiesta”(on-demand) desiderate “a richiesta”(on-demand)

Come tutti i moduli del kernel, questi possono essere caricati in Come tutti i moduli del kernel, questi possono essere caricati in memoria e deallocati da essa (usando rispettivamente i comandi memoria e deallocati da essa (usando rispettivamente i comandi standard di Linux standard di Linux iinsmodnsmod ed ed rmmodrmmod) quando le loro rispettive ) quando le loro rispettive funzionalità sono richieste o menofunzionalità sono richieste o meno

Page 28: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Le più diffuse alternative hard real-time oggi sul merLe più diffuse alternative hard real-time oggi sul mercato: RTLinux ed RTAIcato: RTLinux ed RTAI

2828

SCHEMA ARCHITETTURIALESCHEMA ARCHITETTURIALE

Per ogni implementazione, il sistema operativo Linux è Per ogni implementazione, il sistema operativo Linux è eseguito come il task a più eseguito come il task a più bassa prioritàbassa priorità di un piccolo di un piccolo sistema operativo real-time. sistema operativo real-time.

Pertanto Linux non apporta cambiamenti alle sue Pertanto Linux non apporta cambiamenti alle sue operazioni sia dal punto di vista utente che dal punto operazioni sia dal punto di vista utente che dal punto di vista kernel, eccetto quello di permettere di vista kernel, eccetto quello di permettere l’esecuzione l’esecuzione solo quando non ci sono già tasks real-solo quando non ci sono già tasks real-time che devono essere eseguititime che devono essere eseguiti. .

Page 29: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Le più diffuse alternative hard real-time oggi sul merLe più diffuse alternative hard real-time oggi sul mercato: RTLinux ed RTAIcato: RTLinux ed RTAI

2929

ARCHITETTURA INTERNAARCHITETTURA INTERNA

RTLinux RTLinux applica molti cambiamenti applica molti cambiamenti ai file di source del kernel che si ai file di source del kernel che si manifestano in modifiche ed manifestano in modifiche ed aggiunte ai numerosissimi files aggiunte ai numerosissimi files sorgenti del kernel di Linux sorgenti del kernel di Linux aumento del codice da memorizzare aumento del codice da memorizzare

RTAIRTAI riduce i cambiamenti al riduce i cambiamenti al kernel standard di Linux mediante kernel standard di Linux mediante l’aggiunta di un livello di astrazione l’aggiunta di un livello di astrazione hardware (HAL) composto da una hardware (HAL) composto da una struttura di puntatori a vettori di struttura di puntatori a vettori di interrupt e da funzioni che permettono di interrupt e da funzioni che permettono di abilitare/disabilitare gli interruptus abilitare/disabilitare gli interruptus

Page 30: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Le più diffuse alternative hard real-time oggi sul merLe più diffuse alternative hard real-time oggi sul mercato: RTLinux ed RTAIcato: RTLinux ed RTAI

3030

STRUTTURA COMPLETA DI RTAISTRUTTURA COMPLETA DI RTAI L’L’HALHAL viene implementato modificando meno di viene implementato modificando meno di 20 linee20 linee di codice esistente, ed aggiungendo circa di codice esistente, ed aggiungendo circa 50 linee50 linee di nuovo codice. Questo di nuovo codice. Questo

approccio è sicuramente più elegante in quanto minimizza l’investigazione del kernel standard di Linux e localizza più facilmente il approccio è sicuramente più elegante in quanto minimizza l’investigazione del kernel standard di Linux e localizza più facilmente il codice di gestione degli interrupt. codice di gestione degli interrupt.

Un altro vantaggio della tecnica HAL è che mediante essa è possibile far tornare Linux al suo ruolo standard (general-purpose) Un altro vantaggio della tecnica HAL è che mediante essa è possibile far tornare Linux al suo ruolo standard (general-purpose) cambiando semplicemente cambiando semplicemente la posizione dei suoi puntatorila posizione dei suoi puntatori dalla struttura RTHAL (real-time) a quella originale. Ciò si è dimostrato dalla struttura RTHAL (real-time) a quella originale. Ciò si è dimostrato abbastanza utile quando le operazioni real-time sono inattive o quando si prova ad isolare virus di natura oscura.abbastanza utile quando le operazioni real-time sono inattive o quando si prova ad isolare virus di natura oscura.

“…“…Molti studiosi Molti studiosi suppongono che il livello suppongono che il livello HAL possa causare HAL possa causare inaccettabili ritardi e inaccettabili ritardi e latenze per via del latenze per via del percorso di analisi e percorso di analisi e monitoraggio dei tasks monitoraggio dei tasks real-time. In realtà negli real-time. In realtà negli ultimi anni l’impatto ultimi anni l’impatto dell’HAL sulle dell’HAL sulle performances del kernel performances del kernel è divenuto trascurabile è divenuto trascurabile per via della maturità e per via della maturità e del progetto del kernel del progetto del kernel di Linux…”di Linux…”

Page 31: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Le più diffuse alternative hard real-time oggi sul merLe più diffuse alternative hard real-time oggi sul mercato: RTLinux ed RTAIcato: RTLinux ed RTAI

3131

RTAI: SCHEDULERS E TIMERS SUPPORTATIRTAI: SCHEDULERS E TIMERS SUPPORTATI

Si nota che dal momento che il MUP utilizza l’APIC Si nota che dal momento che il MUP utilizza l’APIC ((advanced programmable interrupt controlleradvanced programmable interrupt controller) timer, esso ) timer, esso non può operare sotto SMP e richiede pertanto che ogni non può operare sotto SMP e richiede pertanto che ogni task scedulato MUP sia eseguito all’interno di una task scedulato MUP sia eseguito all’interno di una specifica CPUspecifica CPU (da qui la designazione MultiUniProcessor). (da qui la designazione MultiUniProcessor). Comunque il MUP conserva tutte Comunque il MUP conserva tutte le coordinate ed i servizi le coordinate ed i servizi IPCIPC in modo che le altre proprietà non vengano perse in modo che le altre proprietà non vengano perse

Page 32: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Le più diffuse alternative hard real-time oggi sul merLe più diffuse alternative hard real-time oggi sul mercato: RTLinux ed RTAIcato: RTLinux ed RTAI

3232

RTLinux vs RTAIRTLinux vs RTAI

RTLinux RTAI

Company FSM LabsDENX Software Engineering,

Pengutronix and Sysgo Realtime Solutions

Arch i386, PPC, ARM i386, MIPS, PPC, ARM, m68k-nommu

License GPL - Comercial LGPL - GPL

API POSIX custom

Memory shared dynamic and shared

Debug GDB, Event tracer Cross GDB, LTT

IPC FIFO's FIFO's, Named FIFO's, Mailboxes, messages, PQueues, net_rpc

User space Real Time Signal handlers LXRT soft, LXRT hard, Mini LXRT

Misc RT-Lab Octave, proc, Watchdog, Scripting, Xenomai

La seguente tabella riassume in maniera alquanto semplice le principali La seguente tabella riassume in maniera alquanto semplice le principali differenze risultanti dall’analisi svolta dei due RTOS. Ovviamente non differenze risultanti dall’analisi svolta dei due RTOS. Ovviamente non vengono incluse le caratteristiche che caratterizzano entrambi i sistemi:vengono incluse le caratteristiche che caratterizzano entrambi i sistemi:

Page 33: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

3333

SOMMARIOSOMMARIO

Introduzione ai sistemi operativi real-time;Introduzione ai sistemi operativi real-time;

Passaggio dagli OS ai sistemi operativi di natura real-Passaggio dagli OS ai sistemi operativi di natura real-time;time;

Le più diffuse alternative hard real-time oggi sul Le più diffuse alternative hard real-time oggi sul mercato: RTLinux ed RTAI;mercato: RTLinux ed RTAI;

Un’estensione firm real-time di Linux: il KURT;Un’estensione firm real-time di Linux: il KURT;

TinyOS e Mantis: uno sguardo all’immediato futuro TinyOS e Mantis: uno sguardo all’immediato futuro degli RTOS;degli RTOS;

Conclusioni sullo studio dei sistemi operativi real-Conclusioni sullo studio dei sistemi operativi real-time;time;

Page 34: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Un'estensione firm real-time di Linux : il KURTUn'estensione firm real-time di Linux : il KURT 3434

L’RTOS KURTL’RTOS KURT

Il KURT (acronimo di Kansas University Real Time Linux) altro non è che Il KURT (acronimo di Kansas University Real Time Linux) altro non è che una modifica real-time (una modifica real-time (firmfirm) al sistema operativo Linux, che consente lo ) al sistema operativo Linux, che consente lo scheduling di eventi real-time alla risoluzione di scheduling di eventi real-time alla risoluzione di 10µs.10µs.

Piuttosto che contare su uno scheduling basato su priorità o su “rigidi” Piuttosto che contare su uno scheduling basato su priorità o su “rigidi” schedules periodici, schedules del sistema operativo KURT sono schedules periodici, schedules del sistema operativo KURT sono esplicitamente specificati dal esplicitamente specificati dal programmatore dell’applicazioneprogrammatore dell’applicazione. .

KURT può tuttavia funzionare in due modi: “KURT può tuttavia funzionare in due modi: “focussed modefocussed mode”, dove solo ad ”, dove solo ad i processi real-time è permessa l’esecuzione; ed il “i processi real-time è permessa l’esecuzione; ed il “mixed modemixed mode”, dove ”, dove l’esecuzione dei processi real-time ha ancora la precedenza, ma è l’esecuzione dei processi real-time ha ancora la precedenza, ma è consentito a tutti i processi non real-time di essere eseguiti purchè consentito a tutti i processi non real-time di essere eseguiti purchè all’interno dei “buchi” dello schedule real-time.all’interno dei “buchi” dello schedule real-time.

Una semplice Una semplice system callsystem call permette il passaggio tra le due modalità. permette il passaggio tra le due modalità.

Il KURT “gira” su una piattaforma compatibile x86 con un contatore di tipo Il KURT “gira” su una piattaforma compatibile x86 con un contatore di tipo ““time-stamptime-stamp” (ossia i processori Pentium o i loro equivalenti).” (ossia i processori Pentium o i loro equivalenti).

Effettuare il “Effettuare il “portingporting” di KURT ad altre architetture, richiede tuttavia solo ” di KURT ad altre architetture, richiede tuttavia solo minime aggiunte.minime aggiunte.

Page 35: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Un'estensione firm real-time di Linux : il KURTUn'estensione firm real-time di Linux : il KURT 3535

KURT: CONCETTI CHIAVEKURT: CONCETTI CHIAVE Real time frameworkReal time framework il KURT si compone di una struttura real-time (framework) che si preoccupa di realizzare lo il KURT si compone di una struttura real-time (framework) che si preoccupa di realizzare lo

scheduling di eventi real-time. Quando un evento real-time sta per essere eseguito, la struttura real-time chiama il gestore scheduling di eventi real-time. Quando un evento real-time sta per essere eseguito, la struttura real-time chiama il gestore degli eventi (degli eventi (event handlerevent handler) dell’ RTmod associato. ) dell’ RTmod associato.

RTModsRTMods moduli real time, ovvero moduli del kernel che possono essere caricati a “ moduli real time, ovvero moduli del kernel che possono essere caricati a “runtimeruntime” ottimizzando così certe ” ottimizzando così certe azioni quando vengono invocati. Gli sviluppatori della piattaforma KURT hanno scritto un RTMod che cambia il contesto al azioni quando vengono invocati. Gli sviluppatori della piattaforma KURT hanno scritto un RTMod che cambia il contesto al processo utente specificato non appena è invocato.processo utente specificato non appena è invocato.

Lo schedule real-timeLo schedule real-time è un file che specifica come ed in che momento è un file che specifica come ed in che momento l’RTMod necessiti di essere invocatol’RTMod necessiti di essere invocato. Questo . Questo schedule viene poi passato al framework real-time che si prende cura dello scheduling di ogni evento invocando, nel schedule viene poi passato al framework real-time che si prende cura dello scheduling di ogni evento invocando, nel momento giusto, l’appropriato gestore degli eventi. Gli sviluppatori del KURT hanno realizzato un semplice programma che momento giusto, l’appropriato gestore degli eventi. Gli sviluppatori del KURT hanno realizzato un semplice programma che genera questo schedule;genera questo schedule;

rt-idrt-id altro non è che il altro non è che il numero identificativonumero identificativo associato ad ogni processo del KURT. Ogni processo del KURT può infatti associato ad ogni processo del KURT. Ogni processo del KURT può infatti richiedere (o essere dato da) un richiedere (o essere dato da) un rt-idrt-id non appena esso viene registrato nel modulo di processo settando non appena esso viene registrato nel modulo di processo settando set_rtparamsset_rtparams. Un . Un processo KURT può modificare il suo processo KURT può modificare il suo rt_idrt_id utilizzandola medesima system call;utilizzandola medesima system call;

Registrazione degli RTModsRegistrazione degli RTMods un RTMod registra se stesso all’interno del framework real-time provvedendo ad un un RTMod registra se stesso all’interno del framework real-time provvedendo ad un nomenome, a , a dei dei puntatori a funzionepuntatori a funzione per i gestori degli eventi, all’ per i gestori degli eventi, all’inizializzazioneinizializzazione, ed alla sua , ed alla sua eventuale ripulitura(clean up)eventuale ripulitura(clean up). Quando un . Quando un modulo real-time viene registrato, gli viene assegnato un numero identificativo che viene utilizzato per schedulare i suoi modulo real-time viene registrato, gli viene assegnato un numero identificativo che viene utilizzato per schedulare i suoi eventi;eventi;

Page 36: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Un'estensione firm real-time di Linux : il KURTUn'estensione firm real-time di Linux : il KURT 3636

KURT: LO SCHEDULINGKURT: LO SCHEDULING

FROM_DISKFROM_DISK : : In questa modalità, In questa modalità, il file di schedule viene letto nella il file di schedule viene letto nella memoria del kernel una pagina per memoria del kernel una pagina per volta. Arbitrariamente, lunghi volta. Arbitrariamente, lunghi schedules possono essere schedules possono essere presentati al framework real-time presentati al framework real-time per lo scheduling. Lo svantaggio di per lo scheduling. Lo svantaggio di questa modalità è che ci questa modalità è che ci potrebbero essere alcune potrebbero essere alcune distorsioni nello schedulingdistorsioni nello scheduling degli degli eventi a causa dell’operazione di eventi a causa dell’operazione di lettura intermittente da disco.lettura intermittente da disco.

FROM_MEMFROM_MEM : : Nella seguente Nella seguente modalità , il file di schedule viene modalità , il file di schedule viene completamente letto nella completamente letto nella memoria del kernel e solo poi lo memoria del kernel e solo poi lo scheduling di ogni evento ha scheduling di ogni evento ha luogo. E’ possibile ripetere luogo. E’ possibile ripetere questo schedule per un numero questo schedule per un numero di volte in maniera ciclica. Lo di volte in maniera ciclica. Lo svantaggio di questa modalità è svantaggio di questa modalità è che richiede abbastanza memoria che richiede abbastanza memoria per occupare il file di schedule per occupare il file di schedule completo. Si pensi infatti che completo. Si pensi infatti che ogni evento occupa circa ogni evento occupa circa 24 24 bytesbytes di memoria. di memoria.UTIMEUTIME il KURT utilizza un sistema “utime” per schedulare gli eventi il KURT utilizza un sistema “utime” per schedulare gli eventi con una risoluzione in termini di microsecondi (µs). Gli eventi possono con una risoluzione in termini di microsecondi (µs). Gli eventi possono anche esser schedulati con una risoluzione di 10 ms se UTIME non è anche esser schedulati con una risoluzione di 10 ms se UTIME non è installato.installato.

Scheduling ModesScheduling Modes i il framework real-time può schedulare eventi l framework real-time può schedulare eventi secondo due modalità:secondo due modalità:

Page 37: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Un'estensione firm real-time di Linux : il KURTUn'estensione firm real-time di Linux : il KURT 3737

PERFORMANCES: DISPATCH TIME PER I MODULI PERFORMANCES: DISPATCH TIME PER I MODULI DEL KERNEL E PER I PROCESSI REAL-TIMEDEL KERNEL E PER I PROCESSI REAL-TIME

Per testare il tempo richiesto ad invocare un modulo del kernel ed un processo Per testare il tempo richiesto ad invocare un modulo del kernel ed un processo real-time, basta un semplice processo real-time KURT che viene eseguito ogni real-time, basta un semplice processo real-time KURT che viene eseguito ogni 10ms 10ms (nella modalità periodica). (nella modalità periodica).

Ogni volta che cicla, il programma restituisce il tempo corrente e lo Ogni volta che cicla, il programma restituisce il tempo corrente e lo immagazzina immagazzina in memoria.in memoria. Dopo che il programma ha terminato la sua esecuzione, i tempi Dopo che il programma ha terminato la sua esecuzione, i tempi vengono stampati al fine di permettere un immediato confronto. vengono stampati al fine di permettere un immediato confronto.

Le informazioni temporali, inoltre, Le informazioni temporali, inoltre, sono state anche conservate per sono state anche conservate per valutare la valutare la differenza tra quando differenza tra quando un evento occorre nel tempo e un evento occorre nel tempo e quando l’RTMod inizia realmente quando l’RTMod inizia realmente la sua esecuzionela sua esecuzione..

Page 38: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Un'estensione firm real-time di Linux : il KURTUn'estensione firm real-time di Linux : il KURT 3838

PERFORMANCES: KURT vs PERFORMANCES: KURT vs SCHED FIFO SOFT REAL TIMESCHED FIFO SOFT REAL TIME

……efficienza di schedulingefficienza di scheduling

SCED_FIFOSCED_FIFO

SCHED_KURT_PROCSCHED_KURT_PROCS (modalità focus )S (modalità focus )

SCHED_ALL_PROCS SCHED_ALL_PROCS

(modalità mixed)(modalità mixed)

Page 39: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Un'estensione firm real-time di Linux : il KURTUn'estensione firm real-time di Linux : il KURT 3939

VALUTAZIONE DELLE VALUTAZIONE DELLE PERFORMANCES(1)PERFORMANCES(1)

SCHED_FIFOSCHED_FIFO: : performancesperformances all’aumentare del all’aumentare del numero dei processi (interrupts dell’hardware esterno numero dei processi (interrupts dell’hardware esterno considerevole numero di contex switch considerevole numero di contex switch prelazionabili affligge le prestazioni);prelazionabili affligge le prestazioni);

SCHED_KURTSCHED_KURT: le performances sostanzialmente : le performances sostanzialmente restano invariate quando viene aumentato il numero restano invariate quando viene aumentato il numero dei processi (c’è un minimo contex switch tra queste dei processi (c’è un minimo contex switch tra queste applicazioni);applicazioni);

SCHED_KURTSCHED_KURT: non c’è quasi differenza tra la modalità : non c’è quasi differenza tra la modalità SCHED_KURT_PROCS e SCHED_ALL_PROCS (Ciò si SCHED_KURT_PROCS e SCHED_ALL_PROCS (Ciò si verifica perché il sistema è essenzialmente verifica perché il sistema è essenzialmente idleidle eccetto per i processi da testare);eccetto per i processi da testare);

SCHED_KURTSCHED_KURT: non c’è un vero e proprio meccanismo : non c’è un vero e proprio meccanismo di controllo dell’ ingresso che previene l’di controllo dell’ ingresso che previene l’overloadingoverloading della CPU. Dal momento che ogni processo setta le della CPU. Dal momento che ogni processo setta le sue richieste di processamento a sue richieste di processamento a 300µs 300µs (è l’attuale (è l’attuale tempo di CPU richiesto dal processo per completare tempo di CPU richiesto dal processo per completare un’iterazione del suo ciclo), non sono permessi più di un’iterazione del suo ciclo), non sono permessi più di 30 processi all’interno del sistema. 30 processi all’interno del sistema.

SCHED_FIFOSCHED_FIFO: qualsiasi numero dei processi dovrebbe : qualsiasi numero dei processi dovrebbe essere permesso all’interno del sistema. Questo essere permesso all’interno del sistema. Questo dovrebbe portare ad un ulteriore degradazione delle dovrebbe portare ad un ulteriore degradazione delle performances;performances; A prescindere dal numero A prescindere dal numero

dei processi, il KURT dei processi, il KURT schedula ogni applicazione schedula ogni applicazione al tempo appropriato (al tempo appropriato (in in rossorosso). ).

KURT con o senza KURT con o senza focalizzazione è focalizzazione è un’alternativa fattibile per lo un’alternativa fattibile per lo scheduling firm real-time dei scheduling firm real-time dei processi.processi.

quindi…quindi…

Page 40: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Un'estensione firm real-time di Linux : il KURTUn'estensione firm real-time di Linux : il KURT 4040

VALUTAZIONE DELLE PERFORMANCES (2)VALUTAZIONE DELLE PERFORMANCES (2)

Se un sistema è caricato, le performances dello scheduler esplicito nella modalità Se un sistema è caricato, le performances dello scheduler esplicito nella modalità SCHED_ALL_PROCS potrebbero essere SCHED_ALL_PROCS potrebbero essere distortedistorte nel momento in cui gli interrupts vengono nel momento in cui gli interrupts vengono disabilitati disabilitati da altre parti del sistema operativo.da altre parti del sistema operativo.

Worst caseWorst case: interrupts disabilitati dall’attività di : interrupts disabilitati dall’attività di backgraund del discobackgraund del disco (infatti in Linux disabilita gli (infatti in Linux disabilita gli interruptus per la interruptus per la massima durata del tempomassima durata del tempo))

… … ed ed inoltre…inoltre…

effetto sulle effetto sulle performances degli performances degli schedulers FIFO e schedulers FIFO e KURTKURT

Si può notare che persino in presenza di “background disk activity”, lo Si può notare che persino in presenza di “background disk activity”, lo SCHED_KURT funziona ancora molto meglio dello SCED_FIFO.SCHED_KURT funziona ancora molto meglio dello SCED_FIFO.

Page 41: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

4141

SOMMARIOSOMMARIO

Introduzione ai sistemi operativi real-time;Introduzione ai sistemi operativi real-time;

Passaggio dagli OS ai sistemi operativi di natura real-Passaggio dagli OS ai sistemi operativi di natura real-time;time;

Le più diffuse alternative hard real-time oggi sul Le più diffuse alternative hard real-time oggi sul mercato: RTLinux ed RTAI;mercato: RTLinux ed RTAI;

Un’estensione firm real-time di Linux: il KURT;Un’estensione firm real-time di Linux: il KURT;

TinyOS e Mantis: uno sguardo all’immediato futuro TinyOS e Mantis: uno sguardo all’immediato futuro degli RTOS;degli RTOS;

Conclusioni sullo studio dei sistemi operativi real-Conclusioni sullo studio dei sistemi operativi real-time;time;

Page 42: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

TinyOS e Mantis: uno sguardo all'immediato futuro TinyOS e Mantis: uno sguardo all'immediato futuro degli RTOSdegli RTOS

4242

OS PER APPLICAZIONI EMBEDDEDOS PER APPLICAZIONI EMBEDDED

.…si distinguono .…si distinguono generalmente due generalmente due approcci:approcci:

Sviluppare un sistema i cui componenti vengono compilati insieme all’applicazione (come TinyOS e BTnode system software)

Sviluppare un Sviluppare un sistema che includa i sistema che includa i tradizionali strati di tradizionali strati di

software dei software dei sistemi general sistemi general

purpose purpose in versione in versione ridottaridotta (ad es. (ad es.

BerthaOS e MANTIS)BerthaOS e MANTIS)

Un sistema operativo Un sistema operativo realizzato per un ambito realizzato per un ambito embedded, deve avere embedded, deve avere alcune caratteristiche di alcune caratteristiche di base:base:

Ridotte dimensioniRidotte dimensioni

Basso consumo durante Basso consumo durante l’elaborazionel’elaborazione

Consumo pressoché nullo in stato di Consumo pressoché nullo in stato di “idle”“idle”

Deve gestire la concorrenzaDeve gestire la concorrenza

Implementare protocolli di rete a Implementare protocolli di rete a seconda della periferica di rete seconda della periferica di rete utilizzatautilizzata

Protocolli poco dispendiosi in termini Protocolli poco dispendiosi in termini di energia(TCP/IP è in genere di energia(TCP/IP è in genere inapplicabile)inapplicabile)

Deve inoltre fornire un’astrazione Deve inoltre fornire un’astrazione per i dispositivi hardware (sensori e per i dispositivi hardware (sensori e attuatori) montati sul sensoreattuatori) montati sul sensore

Page 43: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

TinyOS e Mantis: uno sguardo all'immediato futuro TinyOS e Mantis: uno sguardo all'immediato futuro degli RTOSdegli RTOS

4343

IL PRIMO APPROCCIO: IL TINYOSIL PRIMO APPROCCIO: IL TINYOS OS di tipo “open source” specificamente ideato per OS di tipo “open source” specificamente ideato per

reti “embedded” di sensori wireless reti “embedded” di sensori wireless (attualmente è il (attualmente è il più affermato) più affermato) sviluppato dall’università di Berkeley sviluppato dall’università di Berkeley in California per la tecnologia motesin California per la tecnologia motes

Modello di programmazione tagliato per applicazioni Modello di programmazione tagliato per applicazioni attivate da eventi e con una occupazione ridottissima attivate da eventi e con una occupazione ridottissima (il core richiede solo 400 byte di dati) (il core richiede solo 400 byte di dati) essendo essendo realmente inserite nel sistema solo le funzionalità realmente inserite nel sistema solo le funzionalità richiesterichieste

Appartiene al primo approccio, dunque i componenti Appartiene al primo approccio, dunque i componenti vengono montati assieme all’applicazione: ciò vengono montati assieme all’applicazione: ciò consente una consente una singola applicazionesingola applicazione in esecuzione in in esecuzione in un dato momentoun dato momento

Tuttavia tale sistema permette di avere bassissimi Tuttavia tale sistema permette di avere bassissimi consumi (non esistendo in genere context switch dal consumi (non esistendo in genere context switch dal momento che gli scheduler seguono una politica momento che gli scheduler seguono una politica FIFOFIFO run to completionrun to completion, ovvero un task non può , ovvero un task non può interrompere un altro task)interrompere un altro task)

Lo svantaggio derivante da tale approccio è la Lo svantaggio derivante da tale approccio è la limitata versatilitàlimitata versatilità e i seri vincoli di e i seri vincoli di riconfigurabilitàriconfigurabilità dell’applicazionedell’applicazione

Mica Mote (Berkeley Mica Mote (Berkeley 2001)2001)

Page 44: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

TinyOS e Mantis: uno sguardo all'immediato futuro TinyOS e Mantis: uno sguardo all'immediato futuro degli RTOSdegli RTOS

4444

IL MODELLO A COMPONENTI DEL TINYOSIL MODELLO A COMPONENTI DEL TINYOS Scambia dati per mezzo di una rete di componenti che comunicano tra loro Scambia dati per mezzo di una rete di componenti che comunicano tra loro

mediante un’interfaccia per gli “mediante un’interfaccia per gli “eventi”eventi” (asincroni) e per i “ (asincroni) e per i “comandicomandi” (sincroni)” (sincroni) Utilizza il Utilizza il nesCnesC, ovvero un linguaggio di programmazione evoluto(derivato dal , ovvero un linguaggio di programmazione evoluto(derivato dal

C) per sistemi embedded connessi in rete (per es. Mote)C) per sistemi embedded connessi in rete (per es. Mote)

Mica Mote: 128KB di codice, Mica Mote: 128KB di codice, 4KB di dati, ed una flash di 4KB di dati, ed una flash di 512KB 512KB

Hardware abstractionHardware abstraction mappa le mappa le funzionalità sw su quelle hw funzionalità sw su quelle hw creando un’astrazione dello creando un’astrazione dello stesso utilizzabile dai moduli stesso utilizzabile dai moduli superiori(ad es. un componente superiori(ad es. un componente che legge/ scrive 1bit sul canale che legge/ scrive 1bit sul canale radio) radio)

High level software High level software component component sono sono quelli di livello più quelli di livello più alto e si occupano di alto e si occupano di eseguire algoritmi eseguire algoritmi che prescindono dal che prescindono dal particolare particolare hardware(ad es. il hardware(ad es. il componente che componente che implementa il implementa il protocollo di protocollo di routing) routing)

Synthetic hardwareSynthetic hardware simulano il simulano il comportamento di comportamento di hardware più sofisticato di hardware più sofisticato di quello realmente presente quello realmente presente sul sensore(ad es un sul sensore(ad es un componente che compone componente che compone 8 bit e li invia a quelli di 8 bit e li invia a quelli di livello superiore)livello superiore)

……3 possibili 3 possibili categorie di categorie di componenti…componenti…

Page 45: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

TinyOS e Mantis: uno sguardo all'immediato futuro TinyOS e Mantis: uno sguardo all'immediato futuro degli RTOSdegli RTOS

4545

MIGLIORAMENTO DELLO SCHEDULER DELLA MIGLIORAMENTO DELLO SCHEDULER DELLA VERSIONE 1.0 CONCETTO DI PRIORITA’VERSIONE 1.0 CONCETTO DI PRIORITA’

TinyOS 1.0.TinyOS 1.0. (curva in blue): si nota come la resa dei pacchetti (throughput) si riduca (curva in blue): si nota come la resa dei pacchetti (throughput) si riduca in in presenza di un task localepresenza di un task locale ad 8Hz (125 ms) con tempi di esecuzione variabili all’interno di ad 8Hz (125 ms) con tempi di esecuzione variabili all’interno di una piattaforma TinyOS 1.0. Non appena il tempo di esecuzione di un task locale una piattaforma TinyOS 1.0. Non appena il tempo di esecuzione di un task locale aumenta aumenta (overload del sistema),(overload del sistema), il throughput dei pacchetti radio diminuisce il throughput dei pacchetti radio diminuisce sensibilmente sensibilmente (scheduler FIFO per tutti i tasks)(scheduler FIFO per tutti i tasks). .

TinyOS 2.0.TinyOS 2.0. (curva in viola): l’aggiunta della priorità per i tasks, per differenziare i (curva in viola): l’aggiunta della priorità per i tasks, per differenziare i tasks tasks real-timereal-time dai dai tasks ordinaritasks ordinari, migliora sostanzialmente il throughput in caso di overload del , migliora sostanzialmente il throughput in caso di overload del sistema (perché magari è in esecuzione un task locale, e quindi il processamento di tale sistema (perché magari è in esecuzione un task locale, e quindi il processamento di tale pacchetto bloccherebbe completamente un nodo sensore), pacchetto bloccherebbe completamente un nodo sensore),

Attualmente presenta Attualmente presenta uno scheduler uno scheduler FIFO run FIFO run to completionto completion con due con due livelli di priorità: quello livelli di priorità: quello

normale per i task e normale per i task e quello più alto per gli quello più alto per gli eventi, che possono eventi, che possono interrompere i task interrompere i task

(preemption). (preemption).

Page 46: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

TinyOS e Mantis: uno sguardo all'immediato futuro TinyOS e Mantis: uno sguardo all'immediato futuro degli RTOSdegli RTOS

4646

UNO SGUARDO AL SECONDO APPROCCIO: UNO SGUARDO AL SECONDO APPROCCIO: MANTIS OSMANTIS OS

Mantis OS è il sistema operativo della piattaforma Mantis OS è il sistema operativo della piattaforma MANTIS MANTIS che si basa sui sensori nymph. che si basa sui sensori nymph.

Appartiene al secondo approccio, quindi include i tradizionali strati di software dei sistemi general purpose in Appartiene al secondo approccio, quindi include i tradizionali strati di software dei sistemi general purpose in versione “versione “ridottaridotta” ”

Concettualmente è opposto a TinyOS, infatti esso ha la struttura di un OS Concettualmente è opposto a TinyOS, infatti esso ha la struttura di un OS general purposegeneral purpose, è organizzato in , è organizzato in livellilivelli, è , è multithreadmultithread e contiene uno e contiene uno scheduler preemptivescheduler preemptive con time slicing, meccanismi di sincronizzazione con time slicing, meccanismi di sincronizzazione attraverso sezioni in attraverso sezioni in mutua esclusionemutua esclusione, uno , uno stack protocollare standardstack protocollare standard per la rete e device drivers per la rete e device drivers

Questo approccio accelera l’apprendimento della nuova tecnologia e aumenta la Questo approccio accelera l’apprendimento della nuova tecnologia e aumenta la versatilità versatilità (potendo eseguire (potendo eseguire più applicazioni in contemporanea), ma pone seri problemi di prestazioni e di consumi.più applicazioni in contemporanea), ma pone seri problemi di prestazioni e di consumi.

Il componente “command server” Il componente “command server” permette di amministrare permette di amministrare da remotoda remoto il il singolo sensore attraverso una shell singolo sensore attraverso una shell UNIX-likeUNIX-like

...si nota la somiglianza ...si nota la somiglianza dell’architettura con i sistemi dell’architettura con i sistemi UNIX …UNIX …

Page 47: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

TinyOS e Mantis: uno sguardo all'immediato futuro TinyOS e Mantis: uno sguardo all'immediato futuro degli RTOSdegli RTOS

4747

MANTIS: KERNEL, SCHEDULER & STACK MANTIS: KERNEL, SCHEDULER & STACK Le funzionalità offerte dal kernel di MANTIS OS sono un sottoinsieme Le funzionalità offerte dal kernel di MANTIS OS sono un sottoinsieme

dell’interfaccia POSIX, in particolare lo scheduler priority-based (secondo dell’interfaccia POSIX, in particolare lo scheduler priority-based (secondo l’algoritmo round-robin)l’algoritmo round-robin)

Per la sincronizzazione e la concorrenza il sistema supporta semafori sempre Per la sincronizzazione e la concorrenza il sistema supporta semafori sempre secondo lo standard posix.secondo lo standard posix.

La memoria RAM è divisa in due sezioni:La memoria RAM è divisa in due sezioni: staticastatica dove vengono allocate al momento della compilazione le varabili dove vengono allocate al momento della compilazione le varabili

globali;globali; heapheap dove vengono allocati i thread al momento dell’esecuzione. dove vengono allocati i thread al momento dell’esecuzione.

Non è possibile allocare manualmente memoria dinamica al momento.Non è possibile allocare manualmente memoria dinamica al momento.

Per quanto riguarda la comunicazione di rete, MANTIS OS prevede uno stack Per quanto riguarda la comunicazione di rete, MANTIS OS prevede uno stack protocollare strutturato su quattro livelli: protocollare strutturato su quattro livelli: fisicofisico, , MACMAC, , networknetwork e e applicazioneapplicazione. . Il sistema è molto più sofisticato e versatile di quello di TinyOS, infatti Il sistema è molto più sofisticato e versatile di quello di TinyOS, infatti possono coesistere meccanismi di routing diversi (unicast, flooding, possono coesistere meccanismi di routing diversi (unicast, flooding, multicast). multicast).

Di contro questo sistema è prestazionalmente più scadente dell’ Active Di contro questo sistema è prestazionalmente più scadente dell’ Active Messages utilizzato dal TinyOS, essendo l’elaborazione del singolo pacchetto Messages utilizzato dal TinyOS, essendo l’elaborazione del singolo pacchetto più lunga, e comportando un continuo scambio di contesto di esecuzione al più lunga, e comportando un continuo scambio di contesto di esecuzione al momento della comunicazione di rete. Questo causa momento della comunicazione di rete. Questo causa consumi maggioriconsumi maggiori..

Page 48: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

4848

SOMMARIOSOMMARIO

Introduzione ai sistemi operativi real-time;Introduzione ai sistemi operativi real-time;

Passaggio dagli OS ai sistemi operativi di natura real-Passaggio dagli OS ai sistemi operativi di natura real-time;time;

Le più diffuse alternative hard real-time oggi sul Le più diffuse alternative hard real-time oggi sul mercato: RTLinux ed RTAI;mercato: RTLinux ed RTAI;

Un’estensione firm real-time di Linux: il KURT;Un’estensione firm real-time di Linux: il KURT;

TinyOS e Mantis: uno sguardo all’immediato futuro TinyOS e Mantis: uno sguardo all’immediato futuro degli RTOS;degli RTOS;

Conclusioni sullo studio dei sistemi operativi real-Conclusioni sullo studio dei sistemi operativi real-time;time;

Page 49: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Conclusioni sullo studio dei sistemi operativi real-tiConclusioni sullo studio dei sistemi operativi real-timeme

4949

CONSIDERAZIONI FINALI:PANORAMICA COMPLETACONSIDERAZIONI FINALI:PANORAMICA COMPLETA Fare un confronto tra sistemi hard, soft e firm real-time è alquanto difficileFare un confronto tra sistemi hard, soft e firm real-time è alquanto difficile Tabella finalizzata a permettere un immediato confronto all’interno di un Tabella finalizzata a permettere un immediato confronto all’interno di un

contesto specificatamente “real-time”contesto specificatamente “real-time”

aggiunge funzionalità al aggiunge funzionalità al sistema per mezzo di un sistema per mezzo di un “resurce kernel” “resurce kernel” implementato come un implementato come un modulo caricabilemodulo caricabile

proprietà fornita ai tasks proprietà fornita ai tasks che fa uso della API RK, ma che fa uso della API RK, ma che non può far uso di RK(e che non può far uso di RK(e della sua API) se si sta gia della sua API) se si sta gia utilizzando RTAI, vista la utilizzando RTAI, vista la mutua esclusività tra i duemutua esclusività tra i due

non c’è un singolo prodotto che offra un set “non c’è un singolo prodotto che offra un set “all-inclusiveall-inclusive” di proprietà RT, ” di proprietà RT, pertanto molte società offrono tecnologie pertanto molte società offrono tecnologie alternative mutiplealternative mutiple (come più (come più miglioramenti per lo scheduler di RTLinux ed RTAI) in modo da soddisfare miglioramenti per lo scheduler di RTLinux ed RTAI) in modo da soddisfare un un range sicuramente più ampiorange sicuramente più ampio di esigenze real-time di esigenze real-time

..Conclusion..Conclusione..e..

Page 50: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Conclusioni sullo studio dei sistemi operativi real-tiConclusioni sullo studio dei sistemi operativi real-timeme

5050

CONSIDERAZIONI FINALI: OS vs EVENT-DRIVENCONSIDERAZIONI FINALI: OS vs EVENT-DRIVEN

Con la medesima scelta del processore(ARM7 a 16 bit), TinyOS necessita di Con la medesima scelta del processore(ARM7 a 16 bit), TinyOS necessita di metà metà memoria istruzionimemoria istruzioni e di circa e di circa 1/30 di memoria dati.1/30 di memoria dati. Gli studi dimostrano che il Gli studi dimostrano che il consumo di potenza di una SRAM scala approssimativamente con la consumo di potenza di una SRAM scala approssimativamente con la

Questo significa che in TinyOS la potenza della memoria istruzioni può essere Questo significa che in TinyOS la potenza della memoria istruzioni può essere ridottaridotta di di 1.6x1.6x e quella della memoria dati rispettivamente di e quella della memoria dati rispettivamente di 4.2x4.2x

Utilizzando un più semplice processore come quello RISC a 8-bit, si potrebbe Utilizzando un più semplice processore come quello RISC a 8-bit, si potrebbe ulteriormente ridurre la ulteriormente ridurre la dimensione della memoriadimensione della memoria ed il ed il consumo di potenzaconsumo di potenza..

Caratteristiche General purpose OS Event-driven OS

Models of Computation(MOC) Multi-tasking Comunicazione tramacchine a statifiniti estese (EFSM)

Scopo d’uso Generale Rivolto a sistemi event-driven

Costi di comunicazione Alti Bassi

Frequenza di comunicazione Bassa Alta

Richiesta di memoria Ampia Bassa

OS type Processore Applicazione Memoria totale istruzioni

Memoria dati

GeneralPurpose

ARM7 thumb 10.096 22324 54988

Event-driven ARM7 thumb 5312 8000 2800

Event-driven 8 bit RISC 2740 3176 709

confronto generale tra confronto generale tra le caratteristiche degli le caratteristiche degli OS “general purpose” OS “general purpose” e quelle degli “event-e quelle degli “event-driven”driven”

confronto tra la confronto tra la diversa richiesta di diversa richiesta di memoria tra le due memoria tra le due differenti politiche di differenti politiche di OSOS

capacità

8000

22324

2800

54988

quindi..quindi..

Page 51: STUDIO COMPARATO DEI PRINCIPALI SISTEMI OPERATIVI IN TEMPO REALE Relatore: Chiar.mo Tesi di Laurea di: Relatore: Chiar.mo Tesi di Laurea di: Prof. Aldo.

Conclusioni sullo studio dei sistemi operativi real-tiConclusioni sullo studio dei sistemi operativi real-timeme

5151

CONSIDERAZIONI SULLE PERFORMANCE:CONSIDERAZIONI SULLE PERFORMANCE:OS vs EVENT-DRIVENOS vs EVENT-DRIVEN

confronta il conteggio dei cicli totali del processore: confronta il conteggio dei cicli totali del processore: ben ben 1636516365 del general purpose contro i del general purpose contro i 25542554 del del TinyOS. TinyOS.

quest’ultimo mostra un fattore di ben quest’ultimo mostra un fattore di ben 88 miglioramenti, che si traduce in un fattore di miglioramenti, che si traduce in un fattore di 88 riduzioni nel consumo di potenza del processore.riduzioni nel consumo di potenza del processore.

confronta i costi dei due OS (le porzioni piu basse confronta i costi dei due OS (le porzioni piu basse della barra) in termini di percentuale dei cicli della barra) in termini di percentuale dei cicli totali. totali.

come indicazione della propria inefficienza, il come indicazione della propria inefficienza, il sistema operativo general- purpose presenta un sistema operativo general- purpose presenta un costo di OS pari all’costo di OS pari all’86% 86% mentre TinyOS circa del mentre TinyOS circa del 10%10%. .

Esempio: stima di potenza realmente risparmiata da un processore e da i suoi blocchi di memoria: Con tecnologia di 0.18µm e tensione di 1.8V, un ARM7 consuma circa 0.25mW/MHz.

Per una memoria di dimensione pari a 64KB per l’acceso alla lettura si consuma circa 0.407mW/MHz mentre per l’accesso alla scrittura circa 0.447mW/MHz. Se si suppone che il 10% delle istruzioni coinvolgono le operazioni di lettura da memoria ed il 10% quelle di scrittura e di allocazione della memoria, oltre alla scalatura del conteggio del ciclo del processore, il consumo di potenza dei due OSs sono rispettivamente: 0.608mW/MHz e 0.053mW/MHz.

Cioè, in altri termini, TinyOS presenta un fattore di miglioramento di potenza pari a 12.