:: Cluster ad Alta Disponibilità   :: Partnership LXE   :: Linux Real Time - RTAI   :: Partnership Endian   :: Visione Artificiale nelle linee produttive MTS   :: Tag RFID ed Esempi Applicativi   :: TimePro Project   :: TimePro Zinco   :: TimePro TeleControl   :: TimePro Production   :: Progetto di Ricerca - Analisi e Supervisione Guasti   :: Integra Agent Framework   :: TimePro TeleMetry   :: TimePro Evolution   :: Linux su HP dv6000
Friday, 03 September 2010
Linux Real Time - RTAI Print E-mail
pinguino.png
R
eagire ad uno stimolo entro un lasso di tempo predefinito è un requisito fondamentale per un sistema real time. Real time non è sinonimo di velocità di elaborazione ma di determinismo nella risposta fornita dal sistema. La durata dell'intervallo che intercorre dalla rilevazione dello stimolo alla produzione della risposta deve essere prevedibile a priori, quindi impostabile e invariante rispetto al carico computazionale.

Linux e Real Time: un problema dalle diverse soluzioni
Il kernel di linux non è in grado di garantire prestazioni real time a causa del fatto che non è prelazionabile (preemptable). Le difficoltà, in particolare, sono rilevabili, quando il sistema viene sottoposto a stress. Il sistema operativo Linux può essere reso real time attraverso diverse soluzioni. In un caso, si modifica il kernel in modo tale da renderlo prelazionabile, oppure in modo tale da impostare l'esecuzione dello scheduler più frequentemente rispetto al caso standard. Una soluzione più elegante consiste nell'inserire un nuovo kernel, di tipo real time, in grado di prendere il controllo della macchina e far girare Linux come una propria applicazione con priorità più bassa.

La preemption patch del kernel

 Attraverso questa modifica, lo scheduler può decidere di togliere ad un processo il controllo della CPU anche quando si trova ad eseguire codice appartenente al kernel. La prelazione non è consentita in qualsiasi parte del kernel ma unicamente in corrispondenza di quelle sezioni in cui l'interruzione può avvenire senza problemi.

La preemption patch è stata integrata nel kernel a partire dalla versione 2.5.4-pre6.

Image


La low-latency patch del kernel
La modifica al kernel spezza i cicli presenti nel codice inserendo chiamate allo scheduler. In questo modo si vanno ad aumentare il numero di punti di prelazione disponibili nel kernel. Come facilmente intuibile, questa patch è meno elegante della precedente, in quanto richiede cambiamenti piuttosto pesanti e diffusi. La low-latency patch dà ottimi risultati (migliori di quelli ottenibili con la preemption patch) rispetto ai tempi di latenza del kernel.

RTAI
logo_rtai_small.png Linux viene eseguito come task a priorità più bassa di un kernel real time. Il kernel Linux originario perde il privilegio di poter disabilitare le interruzioni, che vengono, ora, controllate dal kernel real time. Si introduce un nuovo layer tra il kernel Linux e il sistema hardware: RTHAL (Real-Time Hardware Abstraction Layer).

RTHAL racchiude tutti i dati e le funzioni temporalmente  critiche del kernel in un’unica struttura:
  • Permette di  catturare facilmente le funzionalità del kernel  (interrupts, system calls, timers) per poterle gestire  in accordo a politiche real-time
  • Sostituisce le operazioni su strutture originali con operazioni su puntatori RTHAL
  • I puntatori RTHAL sono modificabili dinamicamente. Se RTAI non è attivo puntano alle strutture originali  di Linux, se RTAI è attivo puntano alle strutture del  kernel real-time.
RTHAL non fornisce servizi real-time: ha la sola funzione di intercettare le chiamate al kernel Linux. 

Image


Si possono distinguere due modalità di funzionamento:
  • RTAI non attivo, Funzionamento normale di Linux
  • RTAI attivo, Solo funzionalità real-time  possono accedere  direttamente all’hardware.  Linux è gestito come un  processo a bassa priorità.
Essendo RTAI disponibile come modulo kernel di Linux, è caricabile liberamente a sistema avviato. Permette, quindi, di estendere dinamicamente le funzionalità del kernel senza dover essere caricato al boot di sistema.

RTAI permette una gestione dei processi con prelazione, in funzione delle loro priorità. Lo scheduler è configurabile a seconda della specifica combinazione di hardware e requisiti software da soddisfare attraverso l'API messa a disposizione dello sviluppatore.
 
Main Menu
Home
Contatti
Dove Siamo
Documenti
Indicizzazione Riviste
Amministra Sito
Login
Partners

linux.png apache.png php.png mysql.png joomla.png siteground.png
  

Sito Ottimizzato per Firefox e risoluzione di 800x600 o superiore