Académique Documents
Professionnel Documents
Culture Documents
1.
2.
3.
3
3
3
3
3
3
3
3
3
4.
5.
Introduction......................................................................2
Larchitecture RTAI............................................................2
Caractristiques................................................................4
. 1 . Planificateur de tches...............................................4
. 2 . Planification priodique et one-shot...........................4
. 3 . Opration en virgule flottante....................................4
. 4 . Gestion des interruptions...........................................4
. 5 . Communications inter-process...................................5
. 6 . Interface proc.............................................................5
. 7 . Support SMP..............................................................5
. 8 . LXRT...........................................................................6
. 9 . API de compatibilit POSIX........................................6
Performances....................................................................6
Bibliographie et ressources..............................................6
LT LA SALLE Avignon
-1-
TV.BTSii.2003
Prsentation RTAI
1 . Introduction
Dans le but de rendre Linux utilisable dans des applications temps rel pures, les
membres du dpartement dingnierie spatiale de lInstitut Polytechnique de Milan
(DIAPM) ont envisag une couche d'abstraction matrielle temps rel (RTHAL : Real
Time Abstraction Layer) sur laquelle une interface pour les applications temps rel
(RTAI) pourrait tre charge.
Vers 1996, un groupe de chercheurs du New Mexico Institute Technology (NMT)
prsenta Linux Temps Rel (RT Linux), ce qui permit l'quipe de DIAPM dapprofondir
son tude du noyau Linux, du matriel et des modifications ncessaires pour fournir une
planification premptive et dterministe. Une nouvelle tape fut franchie en 1998 avec
les amliorations importantes du noyau 2.2, notamment les modifications darchitecture
dans linterfaage de Linux avec le matriel. Ces modifications, combines avec
lexprience acquise par lquipe DIAPM lorsquelle travaillait sur sa propre volution
du noyau Linux NMT-RT, et les concepts de 1996, aboutirent RTAI.
RTAI fournit une planification temps rel pure, tout en conservant toutes les fonctions et
services de Linux Standard. En plus, RTAI fournit le support de UP et SMP (avec la
possibilit dassigner les tches et les IRQs des CPU spcifiques), x486 et Pentium, des
schedulers one-shot et priodiques, la mmoire partage inter-linux ou intra-linux, la
compatibilit POSIX, le support de FPU, la synchronisation inter-tches, des
smaphores, mutexs, message queues, messages, la possibilit dutiliser les appels
systmes RTAI lintrieur de l'espace utilisateur standard et ...
2 . Larchitecture RTAI
Larchitecture de RT Linux et RTAI est sensiblement similaire.
LT LA SALLE Avignon
-2-
TV.BTSii.2003
Prsentation RTAI
LT LA SALLE Avignon
-3-
TV.BTSii.2003
Prsentation RTAI
IPC ; et rtai_fifos, une adaptation du FIFO (Files In, Files Out) de NMT de
RTLinux.
Comme tous les modules du noyau, ils peuvent tre chargs ou dchargs ( laide des
commandes standard Linux insmod et rmmod) mesure que leurs possibilits
respectives sont requises ou non.
Par exemple, si vous souhaitez installer uniquement les gestionnaires dinterruption,
vous devez charger le module rtai. Si vous voulez galement communiquer avec les
traitements standards de Linux en utilisant FIFO, alors vous devrez charger les modules
rtai et rtai_fifos.
Cette architecture modulaire et non intruse permet FIFO de sexcuter sur nimporte
quelle queue et dutiliser les rveils immdiats lorsque ncessaire.
LT LA SALLE Avignon
-4-
TV.BTSii.2003
Prsentation RTAI
3 . Caractristiques
La tche temps rel est implmente de faon similaire RTAI. Elle est crite et
compile comme un module du noyau, charg dans le noyau aprs, que le ou les
modules RTAI requis aient t chargs.
3 . 1 . Planificateur de tches
Le planificateur de tches de RTAI permet la planification entirement premptive,
temps rel hard base sur un schma de priorit fixe. Tous les plans peuvent tre grs
par
des fonctions de temps ou des vnements temps rel comme : lacquisition de
smaphores, les fonctions dhorloge ou de temps, les gestionnaires dvnements
asynchrones ... et comprennent la synchronisation inter-tches.
LT LA SALLE Avignon
-5-
TV.BTSii.2003
Prsentation RTAI
3 . 5 . Communications inter-process
Le terme communication inter-process (IPC) dcrit diffrents moyens de passer des
messages entre les traitements ou tches, et dcrit galement les multiples formes de
synchronisation pour le transfert des donnes.
Linux fournit un IPC standard Systme V sous la forme de mmoire partage, FIFOs,
smaphores, mutexes, variables conditionnelles et pipes qui peuvent tre utilises par
les traitements utilisateurs standards pour transfrer et partager les donnes. Bien que
ces mcanismes IPC Linux ne soient pas disponibles pour accomplir des tches temps
rel, RTAI fournit un jeu supplmentaire de mcanismes IPC qui comprennent la
mmoire partage, les files de messages, les FIFO temps rel, mutexes, smaphores et
variables conditionnelles. Ces instructions sont utilises pour transfrer et partager les
donnes entre les tches et les traitements la fois dans les domaines Linux temps rel
et lespace utilisateur.
Le mcanisme dappel de procdures distantes (RPC) de RTAI est similaire en
fonctionnement aux messages QNX disponibles aux tches temps rel et les transfrent
soit sous la forme dun int non sign soit sous la forme dun pointeur vers la tche de
destination.
Limplmentation de la bote de messagerie de RTAI offre la possibilit denvoyer
nimporte quel message depuis lespace utilisateur vers les tches temps rel, et tches
utilisateur vers tches utilisateur (en utilisant LXRT) via nimporte quelle taille de buffer
de bote de messagerie pouvant tre dfinie. De multiples expditeurs et rcepteurs sont
autoriss, pour lequel chacun est servi en fonction de ses priorits.
3 . 6 . Interface proc
Depuis la version 0.9, RTAI comprend une interface proc qui fournit des informations
utiles sur le statut courant de RTAI, y compris les planificateurs chargs, les activits
temps rel, la priorit et la priode, et les FIFO en utilisation avec leurs tailles de buffer
associes. On peut visualiser l'cran avec la commande cat les fichiers suivants :
/proc/rtai/scheduler
/proc/rtai/rtai
/proc/rtai/fifos
...
3 . 7 . Support SMP
RTAI fournit un vritable support de larchitecture SMP (Symmetric Multi-Processing)
au travers de sa gestion des tches et des IRQ. Par dfaut, toutes les tches sont
assignes pour fonctionner sur nimporte quelle CPU (dune plate-forme SMP). Chaque
tche, cependant, peut tre individuellement assigne nimporte quel sous-ensemble
LT LA SALLE Avignon
-6-
TV.BTSii.2003
Prsentation RTAI
CPU, voire une simple CPU. En plus, il est possible dassigner nimporte quel service
dinterruption temps rel nimporte quelle CPU spcifique. Parce que la possibilit de
forcer une interruption vers une CPU spcifique nest pas lie au planificateur SMP,
RTAI conserve la souplesse deffectuer ces deux oprations de faon indpendante.
Ces capacits fournissent une mthode pour optimiser lapplication temps rel, si la
distribution manuelle des tches gre la tche de faon plus efficace que les services de
distribution automatique SMP fournis par Linux.
LT LA SALLE Avignon
-7-
TV.BTSii.2003
Prsentation RTAI
3 . 8 . LXRT
Comme les tches temps rel de Linux sont implmentes comme des modules
tlchargeables, elles sont parties intgrantes du noyau. Ainsi, ces tches ne sont pas
lies aux services de protection de la mmoire de Linux et elles ont la possibilit dcrire
par dessus les zones critiques de la mmoire, qui peuvent provoquer une interruption du
systme. Cette limitation sest avre trs frustrante pour ceux dentre nous qui ont err
durant le dveloppement de tches temps rel.
LXRT de RTAI rsout ce problme en autorisant le dveloppement de tches temps rel,
utilisant tous les appels systmes temps rel hard de RTAI lintrieur de lespace
mmoire protg de Linux et sous un service temps rel firm . Lorsque le
dveloppeur est satisfait des performances dune tche au sein de LXRT, la tche est
simplement recompile comme un module et insre dans le noyau (avec les modules
associs qui fournissent les fonctions temps rel de RTAI) afin deffectuer la transition.
Le service temps rel de LXRT, similaire au patch temps rel propos par luniversit du
Kansas (KURT) fournit du temps rel soft.
Les performances sous LXRT sont plutt bonnes, produisant des dlais de latence pas
plus importants que pour un appel systme standard Linux destin basculer une tche.
Bien quil sagisse dun outil de valeur pour les dveloppements, nous ne devons pas
perdre de vue le fait que limplmentation temps rel firm de RTAI peut savrer
particulirement utile pour des tches qui ne requirent pas le temps rel hard, mais ne
sont pas encore accomplies par Linux standard.
4 . Performances
Les performances d'un RTOS dpendant videmment des performances du RTOS lui
mme mais aussi de la plateforme matrielle sur lequel il fonctionne et des procdures
de tests et de mesures (trs difficile raliser ce qui implique qu'il est toujours trs
difficile de comparer deux RTOS).
Les chiffres ci-dessous ont t obtenus sur un Pentium II 233 Mhz avec un Linux
lourdement charg :
Taux d'itration priodique maximum :
Jittler au taux maximum d'itration :
Taux d'interruption one-shot :
Temps de changement de contexte :
125 KHz
0-13 s (UP)
30 KHz
environ 4 s
5 . Bibliographie et ressources
A partir dun article paru dans Linux+ (mai 2000).
LT LA SALLE Avignon
-8-
TV.BTSii.2003
Prsentation RTAI
RTAI :
www.rtai.org
RT Linux :
Linux temps rel : www.realtimelinux.org
Trace Toolkit :
Ethernet IP RTnet : opensource.lineo.com/rtai.html
www.rtlinux.org
www.opersys.com
Un excellent site sur les systmes embarqus et les diffrents RTOS existants :
www.enseirb.fr/~kadionik/embedded/embedded.html
On trouvera sur le site RTAI des liens vers le support de cartes d'acquisition avec l'API COMEDI
et l'API rt_com pour les liaisons sries.
LT LA SALLE Avignon
-9-
TV.BTSii.2003