Verranno introdotti 1. i concetti base di un sistema operativo RealTime evidenziando la differenza tra sistemi “veloci” e sistemi “predicibili”. 2. i vantaggi e limiti dell’uso della RT Patch. 3. come si programma in userspace. 4. risultati, in termini di latenza, che si ottengono su x86_64
Verranno introdotti i concetti base di un sistema operativo RealTime evidenziando la differenza tra sistemi “veloci” e sistemi “predicibili”. Le spiegazioni verranno accompagnate con esempi pratici che evidenzino il concetto di predicibilità (es. read-write lock, priority inversion).
Verrà fatta una brevissima panoramica sulle possibilità che si possono avere per realizzare un sistema realtime che possa sfruttare le potenzialità di Linux: 1. sistema eterogeneo con linux realtime su una cpu/core e un’altro sistema operativo su un’altra cpu/core. 2. sistema operativo realtime che faccia girare linux come suo task. 3. patch al codice sorgente di linux per avere ‘totale’ predicibilità (RT Patch) direttamente in Linux. Ovvero: . esecuzione degli interrupt in kernel thread . implementazione dei rtmutex con priority hineritance per risolvere il problema dell inversione di priorità . converzione di tutti gli spinlock e rwlock presenti nel kernel in rtmutex
Verranno illustrati i vantaggi e limiti dell’uso delle RT Patches. A fine presentazione verrà illustrato un caso pratico basato su architettura Intel e con una distrubuzione Linux standard. Verranno inoltre mostrati : - gli accorgimenti per configurare bios e linux - gli accorgimenti che è necessario adottare programmando task realtime in user-space - come si misurano le latenze in varie condizioni di uso - I risultati che si ottengono.



