Вы находитесь на странице: 1из 18

Les OS embarqus

B. Miramond UCP

Les OS embarqus
VxWorks : noyau RT le plus utilis dans l'industrie. Supporte TCP/IP et une API socket. Cot des licences important. QNX : noyau RT de type UNIX. Intgre une interface graphique proche de X Window (Photon). QNX peut tre utilis gratuitement pour des applications non commerciales. Trs faible empreinte mmoire. uC/OS : destin des micro-contrleurs type Motorola 68HC11. Support de TCP/IP. Gratuit pour l'enseignement. RTEMS : Real-Time Operating System for Multiprocessor Systems. Gratuit port pour de nombreuses architectures Windows CE : Victime d'une rputation de fiabilit approximative... Lynx OS : Systme RT conforme la norme POSIX. Nucleus : Noyau RT avec support de TCP/IP, une interface graphique, un navigateur web et serveur HTTP. Livr avec les sources, pas de royalties payer pour la redistribution. eCos : Noyau RT (Embeddable Configurable OS), faible empreinte mmoire, bas sur Linux et la chane de cross-compilation GNU (POSIX). Support de TCP/IP. Licence proche GPL. Largement utilis (automobile, imprimante, lecteur MP3). Support des processeurs x86, PowerPC, SH3 Hitachi ou StrongARM.

Les OS embarqus

Quelle diffrence entre OS et RTOS ?


Le systme dexploitation temps-rel (RTOS) est :
Dterministe : la dure de chaque service est dtermine et ne change pas avec les donnes. Prvisible : la dure de chaque service est connue. Lger : le code de lOS prend peu de mmoire (empreinte mmoire) Ddie, modulable : il fournit des services ddies selon les besoins de lapplication
Miramond Benot - UCP 4

Le succs de Linux en embarqu


Libre (gratuit) Open-source Diffrentes distributions Stable Communaut importante (aide web) Compilateur C associ gratuit (gcc)

Miramond Benot - UCP

Structure dun systme linux


A p p e ls d ir e c ts

N o y a u (k e r n e l) : r a lis e le s f o n c tio n s e s s e n t ie lle s ( g e s t io n d e s t c h e s e t m m o ir e ) , in te r fa c e e n tr e le m a t r ie l e t le s a p p lic a tio n s (p ilo t e s ). lib c : b ib lio t h q u e p r in c ip a le c o n te n a n t le s f o n c tio n s d e b a s e u tilis e s p a r le s a p p lic a t if s . A p p lic a t io n s ( o u c o m m a n d e s ) : liv r e s a v e c le s y s t m e o u d v e lo p p e s p o u r d e s b e s o in s s p c if iq u e s .

M a t r ie l

Noyau B ib lio th q u e C (G lib C ) A p p lic a tio n s

Les Distribution Linux embarques


Montavista Linux BlueCat Linux uCLinux RTLinux RTAI ( ELDK PeeWee Linux ...

Comment rendre linux temps rel ?


Distributions TR Montavista LynuxWorks Redhat Ubuntu Patch RT (CONFIG_PREEMPT_RT) de Linux : Scheduler Interruption premptibles (thread-IRQ) Horloge systme plus prcise (nanosec)... sur une certaine plate-forme, le temps de latence de rponse une interruption ne sera jamais suprieur 20s, par exemple http://rt.wiki.kernel.org/index.php/Main_Page Micro-noyau Xenomai Miramond Benot - UCP Windriver RT Linux (RTAI)

Fonctionnalits TR du patch config_preempt_rt

Miramond Benot - UCP

Exemple du micro-noyau Xenomai

Miramond Benot - UCP

10

Ordonnanceur 2.6
Grande nouveaut : Ordonnanceur en O(1) 2 types de process Process non-Temps Rel : chaque process se voit attribuer une valeur, appele nice value, qui dtermine la priorit et le temps dexcution ce temps dexcution est appel timeslice et correspond au temps maximum quun process peut rester en excution avant de laisser la place un autre. La valeur de nice est comprise entre 20 et 19 inclus, 0 tant la valeur par dfaut et 20 correspond la priorit la plus haute et au timeslice le plus lev Process Temps Rel : chaque process se voit attribuer une priorit comprise entre 1 et 99 inclus les process nonTemps Rel se voient attribuer galement cette priorit mais avec la valeur 0. 99 tant la priorit la plus leve, on comprend alors pourquoi un process Temps Rel sera toujours prioritaire devant un autre non-Temps Rel. Pour les process Temps Rel, il existe deux politiques dordonnancement : SCHED_FIFO : le process Temps Rel restera en excution tant quaucun autre process Temps Rel de priorit suprieure strictement ne sera prt ou tant quil ne passera pas ltat bloqu. Sil est prempt, il reste tout de mme en tte de la liste dexcution des process de mme priorit que lui. Cest donc lui qui sera de nouveau excut quand le process de priorit suprieure aura termin son excution. Idem sil change de priorit, il sera plac en tte de la liste des process excutables ayant cette priorit. Il ne passe en fin de cette liste que par appel explicite de sa part une certaine fonction. SCHED_RR : la politique est identique en tout point la prcdente, exception faite la prsence dun timeslice pour les process de mme priorit. Ainsi, sil ny a pas de process de plus forte priorit pour prempter celui en cours dexcution, au bout dun certain temps ce dernier sera plac en queue de la liste des process de mme priorit. Miramond Benot - UCP 11

Trois tests pour les linux RT


Latence d'une tche de forte priorit
Cyclic_test

Inversion de priorit (cf. cours suivant)


classic_pi

Premption et latence de l'ordonnanceur


preempt_test

Temps d'accs noyau ...


Miramond Benot - UCP 12

http://www.kernel.org/pub/linux/kernel/people/tglx/rt-tests/rt-tests-0.49.ta

Le bench cyclic_test
sur un systme non Temps Rel : $> ./cyclictest a t n p99
T:0( 3431) 39242 T: 1 ( 3432) P:98 P:99 I:1000 C: 100000 Min: 5 Act: 10 Avg: I:1500 C: 66934 Min: 4 Act: 10 Avg: 17 14 Max: Max: 39661

Ici, le rsultat du mme test sur un systme Temps Rel : $> ./cyclictest a t n p99
T: 0 ( 3407) P:99 I:1000 C: 100000 Min: 7 Act:10 Avg: 10 Max: 18 T: 1 ( 3408) P:98 I:1500 C: 67043 Min: 7 Act: 8 Avg: 10 Max: 22 Miramond Benot - UCP 13

Latence d'ordonnancement

Histogrammme de rpartition des apparitions en fonction de leur latence


Miramond Benot - UCP 14

Structuration dun OS embarqu


HW/SW Multitasking MailBoxes Allocation statique, HW/SW scheduling Fifos Application Allocation dynamique, Changement dynamique de Mutex Pas de MMU API politique dordo? Semaphore Migration de tche Message passing Intergiciel Hw->Hw, Sw->Hw, Hw->Sw (Flexibilit, Distribution, virtualisation)

Gestion de tches

Synchronisation Communication Event

Changement de contexte

Gestion des IR

Gestion mmoire Monitoring Instrumenter lapplication mesures en temps API HAL rel destination des scheduler Hw/Sw Timer (Utilisation temporel et spatial)

Autre exemple : uC/OS-II


uC/OS-II (Micro Controller Operating System)
1992 (J. Labrosse) 40 processeurs diffrents (8-64 bits) Portable ROMable Scalable (modulaire) Premptif Dterministe Pas de MMU
Miramond Benot - UCP 16

Etude de cas : fonctionnement de uC/OS-II


Cas dun noyau temps rel

Etude de cas : fonctionnement de RTEMS


Cas dun RTOS multiprocesseur

Вам также может понравиться