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

STR Embarqus

Systmes temps rel embarqus

B. Dupouy

ENST janvier 21, 2003

STR Embarqus

STRE
Plan
1. Domaines dapplication des systmes embarqus 2. Caractristiques des systmes embarqus temps rel (STRE) - rappels sur les systmes temps rel - objectifs et spcificits des STRE 3. Les systmes disponibles 4. Standards : propositions POSIX 5. Prcisions sur la gestion du temps - ordonnancement - entres/sorties 6. Dveloppement d'applications embarques 7. Perspectives

ENST janvier 21, 2003

STR Embarqus

STRE
Plan

1. Domaines dapplication des systmes embarqus 2. Caractristiques des systmes embarqus temps rel (STRE) - rappels sur les systmes temps rel - objectifs et spcificits des STRE 3. Les systmes disponibles 4. Standards : propositions POSIX 5. Prcisions sur la gestion du temps - ordonnancement - entres/sorties 6. Dveloppement d'applications embarques 7. Perspectives

ENST janvier 21, 2003

STR Embarqus

Domaines dapplication Des systmes embarqus


Les domaines traditionnels : - Avionique (systmes temps rel rpartis embarqus), - Robotique, domaines nouveaux : - tlphonie mobile, - smart objects (objets intelligents), - wearable computer, biomtrie, - informatique diffuse (pervasive computing, ubiquitous computing) : domotique, immeubles intelligents, virtual classroom, - systmes embarqus temps rel rpartis grande chelle (digital city,),

ENST janvier 21, 2003

STR Embarqus

Linformatique diffuse

pervasive computing, ubiquitous computing (Weiser 1993) (informatique omniprsente, diffuse) : - linformatique disparat, mais elle est partout, cest une technologie invisible lutilisateur avec lequel elle entretient des liens permanents - Mise en uvre possible grce aux rseaux sans fils : tous les objets de la vie courante auront-ils une adresse IP ? Rle des systmes embarqus dans ce contexte : - contraintes soft real time (multimdia), - gestion de lnergie, gestion de la localisation (par rapport au rseau et/ou localisation physique ?) , - configuration dynamique de rseaux sans fil (rseaux ad hoc) - information contextuelle (validit seulement locale dune information),

ENST janvier 21, 2003

STR Embarqus

Le march (1)
Principaux secteurs d'utilisation (informatique visible ou cache) : - transports, - tlcommunications, - commerce lctronique, - armes, - domotique ... Quelques indications chiffres sur les processeurs embarqus : Secteur Militaire Transports Industrie Bureau Tlcomm. Gd Public Nbre de Croissance proc. 32 bits 0,7 M 30% 1M 110% 1M 30% 20 M 40% 8,3 M 50% 7M 120%

ENST janvier 21, 2003

STR Embarqus

Le march (2)
Tendances : - Ce march devient un march de masse, - Standardisation (embedded Linux), - Les quipements sont de plus en plus interconnects en rseau sans fil (Bluetooth, 802.11) Type des marchs : Secteur Scientifique, arospatilae, militaire Transports Industrie Bureau Maturit Forte Contraintes Performance, fiabilit Tendances Rduction des cots (conomie d'chelle)

Moyenne Fiabilit, cot Ergonomie, rseau Forte Fiabilit, cot Rseau Forte Performance, cot Standardisation, puissance Tlecomm. Forte Performance, puissance Fiabilit Gd public Faible Performance, cot Internet Commerce elec. Faible Fiabilit, cot, Commerce en ligne scurit

ENST janvier 21, 2003

STR Embarqus

Le march (3)
March atomis : - Pas d'offre globale (on compose soi-mme sa configuration aussi bien en matriel qu'en logiciel) : - Pas de fournisseur dominant (60% de systmes "maison") - Microsoft, Sun (achat de chorus en 1997), IBM marginaux - Nombre de licences > nombre de DOS (pSOS est embarqu sur plusieurs millions d'appareils) Problmes : - la compatibilit : - POSIX (1003.1c, ex-1003.4a, : les threads, 1003.4b : le temps rel), - Java - le changement de matriel est difficile : licence, environnement crois, refaire un BSP

ENST janvier 21, 2003

STR Embarqus

Le march : quels sont les processeurs embarqus


En 1992 : - 25 millions de chips produits pour les systmes embarqus, - 20 millions taient des Motorola 68xxx, - 4 millions taient des RISC, Processeurs embarqus : - grande capacit d'E/S, - problme, les Mips/Watt : hot RISC (sur les stations) et cold RISC (embarqus) - RISCs :nombreux registres -> changement de contexte long - cache ?

ENST janvier 21, 2003

STR Embarqus

March : le matriel embarqu


Compromis matriel/logiciel : - seules les fonctions simples et prennes sont ralises en matriel, - tendance aux processeurs gnralistes puissants et aux ralisations logicielles, Exemple de combinaisons matriel/logiciel: - processeur + E/S simples : carte puce (JavaCard), PalmOS - processeur + rseau : tlcom, routeurs - processeur + rseau sans fil : tlphonie (EPOC puis Symbian) processeur + rseau + E/S : systmes embarqus "classiques",

ENST janvier 21, 2003

10

STR Embarqus

STRE Plan
1. Domaines dapplication des systmes embarqus 2. Caractristiques des systmes embarqus temps rel (STRE) - rappels sur les systmes temps rel - objectifs et spcificits des STRE 3. Les systmes disponibles 4. Standards : propositions POSIX 5. Prcisions sur la gestion du temps - ordonnancement - entres/sorties 6. Dveloppement d'applications embarques 7. Perspectives

ENST janvier 21, 2003

11

STR Embarqus

La gestion du temps dans un SE classique (temps partag)


Un systme d'exploitation classique, c'est dire orient temps partag, (SE, par la suite) doit organiser et optimiser l'utilisation des ressources de faon ce que l'accs ces ressources soit quitable. Un SE n'a donc pour seule contrainte de temps que celle d'un temps de rponse satisfaisant pour les utilisateurs avec lesquels il dialogue. Les traitements qu'on lui soumet sont effectus en parallle au fil de l'allocation des quantums de temps aux diverses applications. Le SE est capable de dater les vnements qui surviennent au cours du droulement de l'application : mise jour d'un fichier, envoi d'un message, etc. Il permet aussi de suspendre un traitement pendant une certain dlai (sleep sous Unix), d'en lancer un une certaine date.

Mais, en aucun cas, il ne garantit que les rsultats seront obtenus pour une date prcise, surtout si ces rsultats sont le fruit d'un traitement dclench par un vnement EXTERIEUR (mission d'un signal par un priphrique quelconque,)

ENST janvier 21, 2003

12

STR Embarqus

La gestion du temps dans un SE temps rel

Le SE n'a pas de relles contraintes de temps, au contraire c'est lui qui dcide des marques temporelles (dates de mises jour), qui contraint une tche en attendre une autre (accs disques), qui dcide de l'allocation du processeur. Cette allocation est faite sur le principe de l'quit, en supposant que toutes les tches ont la mme importance. La priorit qui est attache un processus est fonction du type d'vnement attendu et de sa consommation de temps cpu, elle ne prend pas en compte le niveau d'urgence de ralisation de la tche.

Le SE gre les contraintes de temps imposes par le monde extrieur : le moment auquel arrive une donne est AUSSI important que la validit de sa valeur

ENST janvier 21, 2003

13

STR Embarqus

Rapidit et respect des chances


La rapidit est-elle une garantie du respect des chances ? FAUX Information soumise contraintes temps rel = VRAI des Information soumise contraintes temps rel = des

information obtenir rapidement

information obtenir avant une certaine date

Un systme, mme trs rapide, qui excute les tches sans en respecter les chances est "moins temps rel" qu'un plus lent qui prsente les rsultats quand il faut. excuter une tche aussi vite que possible ne veut pas dire garantir ses chances, ni celles des tches qui lui sont lies. on peut associer des VALEURS aux terminaisons d'activits, le comportement du STR est dtermin par un algorithme qui maximalise ces valeurs (time values),

ENST janvier 21, 2003

14

STR Embarqus

Performances matrielles et respect des chances : exemple

Soit deux processeurs :

Speedy, vitesse = 10, temps de changement de contexte = 0 ( !), ordonnancement : FCFS Cool, vitesse = 1, temps de changement de contexte = 1, ordonnancement: EDF premptif
Les rapports de puissance de traitement et de changement de contexte sont donc : 10 et infini, en faveur de Speedy. Excution des deux tches suivantes par ces deux processeurs: date de dbut T1 T2 0 1 dure 200 15 date de l'chance 250 21

Sur Speedy T2, rate son chance, pas sur Cool

ENST janvier 21, 2003

15

STR Embarqus

Performances matrielles et respect des chances

Les gains matriels ne sont pas seuls dterminants : informatique TR n'est pas informatique rapide (RT computing is not fast computing),
Exemple, rduction de la dure du changement de contexte : s = temps de changement de contexte s d = dure moyenne des tches d << 1

si s passait 0, le gain pour n changements de contexte serait : d + ns d ns c'est dire : 1+ d

si d = 50ms et s = 50 s (0,05 ms), alors le gain pour n = 10 est ngligeable

Dfinir les qualits TR seulement par rapport aux temps de gestion des interruptions, de premeption, etc, fait rfrence aux - artefcats de l'implantation - plutt qu'au type de fonctionnement

ENST janvier 21, 2003

16

STR Embarqus

La gestion du temps par le systme

Le SE classique dcide quand sont fournis les rsultats (temps logique). Exemple, soit trois tches dont on donne la dure (C) et l'chance (E) : T1 (C =3, E=3) T2 (C =2, E=5) T3 (C =2, E=7) Allocation du processeur par un SE classique (tourniquet) :
1 2 3 1 2 3 1

Tche T1 Tche T2 Tche T3

T1 rate son chance... Allocation RMS par un STR (qui se plie aux contraintes de temps extrieures) :
1 2 3

ENST janvier 21, 2003

17

STR Embarqus

Spcificit des STR

SE classique : Les performances sont juges suivant le rendement : excuter le plus de tches possibles, le plus rapidement possible, c'est le SE qui dcide de la dynamique d'excution (CONTRAINTES LOGICIELLES) STR Le critre de performance est le suivant : respect de toutes ou d'une partie (en cas de surcharge) des chances, qu'elles soient priodiques ou non, Si on exige le respect de toutes les chances -> TR dur, sinon TR mou. C'est l'environnement extrieur (CONTRAINTES PHYSIQUES) qui impose sa dynamique

Le comportement du STR doit tre prdictible dans deux domaines : - logique (comme les SE : sret, vivacit, ...), - temporel ( la diffrence des SE !).

ENST janvier 21, 2003

18

STR Embarqus

Spcificit des STRE


Comme le STR, le STR embarqu (STRE) doit donc tre prdictible dans les domaines temporel et logique (sret, vivacit...) Notion de qualit de la rponse : moins prcise, plus rapidement, exacte, moins rapidement, Ne doit pas fonctionner de faon incorrecte le STRE a des contraintes supplmentaires : -rpondre des stimuli externes (capteurs), - se satisfaire de ressources limites (mmoire, vitesse, nergie, ...), - algorithmes conomes en consommation de mmoire, nergie, cpu, - scurit, reprise en cas d'erreur, fonctionnement en mode dgrad Combien d'chances peut-on manquer ? Remarque : que veut dire "worst case "? Plutt parler de "bad case",

ENST janvier 21, 2003

19

STR Embarqus

Place du STRE
o se place le systme temps rel embarqu ?

Environnement contrl Systme de commande Capteur/Emetteur Noyau temps rel Ordonnancement Communications Langage de programmation

il doit tre : - peu encombrant (ressources matrielles limites), Il doit s'adapter la variation: - de charge (court terme), - de spcifications (long terme) - de qualit et de quantit des ressources matrielles, ce qui implique maintenabilit et extensibilit (scalability). - A la reconfiguration du rseau

ENST janvier 21, 2003

20

STR Embarqus

Contraintes

Contraintes matrielles : - sur les ressources : en gnral pas de disque et peu de mmoire - tolrance aux pannes - communications performantes avec les priphriques (gestion des dlais) - faible consommation, Contraintes logicielles : - dveloppement en environnement crois et tlchargement, difficult de mise au point (remote debugging), - gestion du degr de criticit et des surcharges - gestion du temps dans les E/S (respect des chances), - interfaces : on ne privilgie plus le couple clavier /cran

ENST janvier 21, 2003

21

STR Embarqus

Quel systme pour les applications embarques ?

Systme ddi ou gnraliste, En le drivant d'un systme classique (UNIX ou autre), pour cela, il faut : Niveau systme : - rduire sa taille ! - donner des outils de gestion du temps (alarmes, signaux) - modifier l'ordonnancement (et la synchronisation) pour respecter les contraintes TEMPORELLES EXTERIEURES, - rduire le temps de changement de contexte (threads), - gestion des ressources (mmoire, ) prdictible Niveau interface avec le matriel: - insertion souple des drivers,

ENST janvier 21, 2003

22

STR Embarqus

Quel langage pour les applications embarques ?

Langage ddi ou gnraliste ? Services attendus par l'utilisateur : expressions des contraintes temporelles, expression et gestion du paralllisme spcification des priphriques bas niveau (description des structures de donnes au nivaeu bit), environnement de dveloppement crois modularit interface avec les autres langages Ada et real-time java

ENST janvier 21, 2003

23

STR Embarqus

STRE
Plan

1. Domaines dapplication des systmes embarqus 2. Caractristiques des systmes embarqus temps rel (STRE) - rappels sur les systmes temps rel - objectifs et spcificits des STRE 3. Les systmes disponibles 4. Standards : propositions POSIX 5. Prcisions sur la gestion du temps - ordonnancement - entres/sorties 6. Dveloppement d'applications embarques 7. Perspectives

ENST janvier 21, 2003

24

STR Embarqus

Quelques systmes embarqus ...


Propritaires : - Chorus, 10 Ko, - iRMX, produit par Intel pour 8086 - JavaCard (24 64 Ko de ROM, 512o 2Ko de RAM) - pSOS (ISI) et VRTX (Microtec) pour 68xxx, - VxWorks, 286 Ko, de WindRiver (terminaux X, Mars Pathfinder), - PalmOS, monotche, (68xxx), - Symbian pour les tlphones portables - LynxOS de Lynx - Windows CE (version rduite de NT, 4Mo RAM, Intel et MIPS) free software : - RTEMS de Oar, - eCos de cygnus - Linux embarqus varis (RT-Linux, Linux-RK) universitaires : - Spring, TinyOS

ENST janvier 21, 2003

25

STR Embarqus

RTEMS, eCos RT Linux

Real Time Executive for Military ( now Multiprocessor !) Systems : gestion des tches, (priorit premptive, RMS) interruptions, du temps et de plusieurs processeurs, implment en C et Ada, API POSIX versions pour Motorola PPC, M68xxx, Intel ix86, i960,MIPS, SPARC, eCos (Cygnus Solutions): 30000 lignes de fichiers sources C et 3000 lignes de fichiers sources assembleur versions pour Matsushita,Toshiba, PowerPC MPC860 implment en C et Ada, API POSIX, ITRON RT embedded Linux

ENST janvier 21, 2003

26

STR Embarqus

STRE
Plan

1. Domaines dapplication des systmes embarqus 2. Caractristiques des systmes embarqus temps rel (STRE) - rappels sur les systmes temps rel - objectifs et spcificits des STRE 3. Les systmes disponibles 4. Standards : propositions POSIX 5. Prcisions sur la gestion du temps - ordonnancement - entres/sorties 6. Dveloppement d'applications embarques 7. Perspectives

ENST janvier 21, 2003

27

STR Embarqus

Propositions POSIX.4 (temps rel)

Objectif : dfinir une interface standard pour rendre les applications portables Services proposs: - threads, ordonnancement, synchronisation, - files de messages, signaux, - gestion du temps, e/s asynchrones, gestion mmoire Problmes : - la norme POSIX.4 contient plus de parties optionnelles que de parties obligatoires ! - diffrences d'implantations (cf. les threads Linux (clone) et Solaris), Implantations : Linux, Solaris, de nombreux systmes temps rel (Lynx, VxWorks, RTEMS, ...)

ENST janvier 21, 2003

28

STR Embarqus

Portabilit et POSIX.4 (rle des standards ?)

Norme POSIX pour la portabilit des applications TR : dfinit une interface standard entre l'application et le systme, ne spcifie PAS l'implantation, mais propose des outils de mesure des performances

POSIX 4a dfinit une panoplie TR minimale, Pour vrifier si la partie de la norme que l'on veut utiliser est bien implante, utiliser des ifdef, ou sysconf l'excution:
#include <unistd.h> #ifndef _POSIX_PRIORITY_SCHEDULING #error POSIX : pas d'ordonnancement TR

ENST janvier 21, 2003

29

STR Embarqus

Ordonnancement POSIX.4
priorits fixes avec premption, 32 niveaux doivent tre proposs, les politiques de gestion des files d'attentes associes ces priorits sont : FIFO, RR, OTHERS seul l'utilisateur privilgi (root) peut accder ce service d'ordonnancement applicables, pour la plupart aux threads et processus, dans ce cas le nom de la fonction ne contient pas le mnmonique pthread

ENST janvier 21, 2003

30

STR Embarqus

Threads POSIX.4
Exemple :
... pthread_t pthread_attr_t struct sched_param ... pthread_attr_init (&attr) /* politique d'ordonnancement */ pthread_attr_setschedpolicy(&attr, SCHED_FIFO) /* priorit */ param.sched_priority = 1; pthread_attr_setschedparam (&attr, &param) tid; attr; param;

/* cration */ pthread_create (&tid, &attr, fonc, NULL)

ENST janvier 21, 2003

31

STR Embarqus

Les mutex et smaphores POSIX.4


Les mutex sont destins la gestion des accs aux sections critiques, la file d'attente qui leur est associe est gre par ordre de priorits dcroissantes, ils peuvent tre utiliss entre threads ou processus, suivant les options
pthread_mutex_init, pthread_mutex_lock, pthread_mutex_trylock pthread_mutex_unlock, pthread_mutex_setATT, pthread_mutex_getATT,

Les smaphores sont l'implantation classique de l'outil dfini par Dijkstra. La file d'attente est gre par ordre de priorits dcroissantes, ils peuvent tre utiliss entre threads ou processus, suivant les options
sem_init, sem_destroy, sem_open, sem_close sem_post, sem_wait, sem_trywait

ENST janvier 21, 2003

32

STR Embarqus

Les variables conditionnelles POSIX.4


servent mettre un thread en attente de vrification d'une condition, implantation : association d'un mutex et d'une variable dite conditionnelle fonctions de gestion :
pthread_cond_init(&VarCond, NULL), pthread_cond_destroy, pthread_cond_wait(&VarCond, &Verrou), pthread_cond_signal(&VarCond), pthread_cond_broadcast(&VarCond)

le wait est toujours bloquant, la diffrence d'une opration P sur un smaphore .Il fait passer le thread l'tat bloqu ET rend le verrou de faon atomique. Quand le thread sort de l'tat bloqu sur un signal ou broadcast, il essaie de reprendre le verrou

l'vnement de rveil (signal, broadcast) n'est pas mmoris : si aucun thread ne l'attend, il est perdu (diffrent de V sur un smaphore)

ENST janvier 21, 2003

33

STR Embarqus

Les variables conditionnelles POSIX.4


Dans l'exemple suivant, un thread incrmente une variable, les autres attendent qu'elle franchisse un seuil : Thread de calcul Threads en attente
pthread_mutex_init(&Verrou, NULL); pthread_cond_init(&VarCond, NULL); pthread_mutex_lock (&Verrou); while (N < Compteur) pthread_cond_wait(&VarCond, &Verrou);

while (...) { pthread_mutex_lock(&Verrou); Compteur++; printf ("Seuil atteint! "\n); if (Compteur > N) pthread_mutex_unlock (&Verrou); pthread_cond_broadcast (&VarCond); pthread_mutex_unlock (&Verrou); ... }

ENST janvier 21, 2003

34

STR Embarqus

Les signaux POSIX

Dans limplmentation TR, les diffrentes occurrences dun mme signal restent pendantes. Le nombre de signaux reus correspond toujours au nombre de signaux mis. Pas de perte : gestion d'une liste de signaux en attente Priorit lie au signal qui est respecte, avec celle du thread, dans la gestion de la file d'attente Emission par kill, sigqueue, timer, ou fin d'e/s nouveaux signaux : RTSIG_MAX signaux, numrots de SIGRTMIN SIGRTMAX Une valeur est passe sigwaitinfo et sigtimedwait. API : Fonction sigqueue sigwaitinfo sigtimedwait Description Queue a signal to a process Attendre un signal et une info. Attendre un signal avec chance

une

ENST janvier 21, 2003

35

STR Embarqus

Les timers POSIX temps rel


API : Fonction clock_settime clock_gettime clock_getres nanosleep timer_create timer_delete timer_settime timer_gettime timer_getoverrun Description Initialiser lhorloge Lire la valeur de lhorloge Lire la rsolution de lhorloge Sleep haute rsolution Cration dun timer Destruction dun timer Armement/dsarmement dun timer Lire le dlai restant sur un timer Lire le dlai dpass sur un timer

ENST janvier 21, 2003

36

STR Embarqus

Les messages POSIX temps rel

similaires aux IPC System V, mais chaque message est associe une priorit. Le problme de l'inversion de priorit n'est pas gr : Fonction
fpathconf mq_close mq_getattr mq_open mq_receive mq_send mq_setattr mq_unlink

Description Return value of configurable limit (same as for regular files) Fermer une file de messages Renvoie les caractristiques dune file de messages Ouvrir une file de message Extraire un message dune file Dposer un message dans une file Changer les attributs dune file Dtruire une file de messages

ENST janvier 21, 2003

37

STR Embarqus

STRE
Plan

1. Domaines dapplication des systmes embarqus 2. Caractristiques des systmes embarqus temps rel (STRE) - rappels sur les systmes temps rel - objectifs et spcificits des STRE 3. Les systmes disponibles 4. Standards : propositions POSIX 5. Prcisions sur la gestion du temps - ordonnancement - entres/sorties 6. Dveloppement d'applications embarques 7. Perspectives

ENST janvier 21, 2003

38

STR Embarqus

Gestion du temps : objectifs

il faut rpondre des stimuli extrieurs : - dans un certaine fentre de temps, - mme dans le pire cas , dans un contexte de ressources trs contraint assurer le respect des chances pour les tches critiques, Attention : une tche de faible importance peut avoir de fortes contraintes de temps, et une tche de forte importance peut avoir de faibles contraintes de temps), il faut excuter au moins un sous-ensemble minimal des tches mme si la charge augmente (gracefull degrade) l'objectif n'est PAS le rendement,

ENST janvier 21, 2003

39

STR Embarqus

Facteurs intervenant dans la gestion du temps

Utilisation de mmoires caches et duTLB (option volatile de C, Java), gestion du processeur : superscalaire, VLIW synchronisation (partage de ressources), entres-sorties, charge de la machine,

la mesure doit-elle se faire dans la configuration la plus dfavorable (worst case response time) (?!)

ENST janvier 21, 2003

40

STR Embarqus

Les lements du temps de rponse

temps de commutation temps de premption temps de latence interruptions latence l'ordonnancement dispatch latency time smaphore shuffle

changement de contexte entre deux tches de mme priorit (passage l'excution d'une tche plus prioritaire, diffrent du prcdent : reconnatre l'vnement, lire la tche) des (dlai entre la reception de l'it et l'excution de la premire instruction du sp de traitement) de (dlai entre la rcption de l'it et l'entre ou dans la tche de traitement crite par l'utilisateur) (temps coul entre la libration d'un smaphore et la ractivation de la tche qui tait bloque sur celui-ci )

en TR, tous ces lments doivent tre prdictibles et finis. en TRE, importance des interruptions qui signalent l'arrive des stimuli externes.

ENST janvier 21, 2003

41

STR Embarqus

Temps de rponse un vnement

Temps de rponse de l'application un vnement Dispatch latency Temps de rponse l'interruption Temps de commutation ou de premption
Aller chercher le eventuellement thread le plus prioritaire. Changement de contexte. (systme)

Temps pass dans le thread lu


Effectuer le traitement crit par l'utilisateur. (application)

Latence interruption (matriel)

Traitement de l'interruption (systme)

Terminer instruction en cours. Sauvegarde du contexte. Inhiber les IT. Aller dans la procdure de traitement de l'IT.

Le traitement de l'IT envoie un message au thread courant ou un thread bloqu. Puis RTI.

ENST janvier 21, 2003

42

STR Embarqus

Temps de rponse un vnement : exemple


Soient deux threads PA et PB, seuls sur le systme. PA est le plus prioritaire ; au temps t0, il lance une entre-sortie. Le dessin ci-dessous schmatise la suite des vnements :
PB devient actif PA se met en attente d'e/s

PB prempt le pilote fait passer PA prt PA devient actif

PA sort de l'appel systme

t0

t1

t2

t3

t4

t5

t6

it de fin d'e/s

commenter les diffrents intervalles t4 - t3 t5 - t4 t6 - t5 temps de premption, c'est ici qu'intervient la notion de prmptivit du noyau dure du changement de contexte dure du retour de l'appel systme (read...), dpend du nombre de paramtres ...

ENST janvier 21, 2003

43

STR Embarqus

Unix et le TR : Ordonnancement

Chaque classe gre son propre algorithme et propose des processus la file globale du noyau :
RT 59 58 57 56 159 158 157 156 sys

02 01 00

100 99 98 97 96 02 01 00

TS 20 19 18

-18 -19 -20

Rappel : les interruptions sont plus prioritaires que n'importe quelle tche

ENST janvier 21, 2003

44

STR Embarqus

Unix et le TR : Gestion des priorits

Mettre le processus dans la classe temps rel RT : - il est lu aprs 5ms au plus passes dans l'tat prt - il tourne tant qu'il est le plus prioritaire Pour changer ou vrifier les attributs d'ordonnancement d'un processus ou d'une classe de processus, utiliser les fonctions priocntl et dispadmin. Attention au blocage ventuel sur une ressource dtenue par un processus moins prioritaire ou temps-partag ! (inversion de priorit)

ENST janvier 21, 2003

45

STR Embarqus

Les entres-sorties dans un STRE

Elment dterminant d'un STRE : la gestion du temps dans les entresorties : - lire (priph. , donnes, dlai) On doit pouvoir grer les E/S comme on gre les processus : - satisfaire la plus prioritaire d'abord, - la priorit des E/S doit correspondre celle des processus qui les ont lances, - annuler une demande d' E/S lorsque son chance est dpasse, - rordonner la liste des demandes si une plus prioritaire arrive,

ENST janvier 21, 2003

46

STR Embarqus

Unix et le TR : le problme des E/S

Les e/s passent par le cache disque : efficacit, mais pas de dterminisme temporel, Attention : - l'ordre d'excution sur un priphrique n'est pas forcment celui de la mise en attente. - l'ordre d'excution de plusieurs aioxxx n'est pas forcment celui du programme. E/S asynchrones : aioread, aiowait, aiowrite aiocancel,

ces fonctions initialisent des E/S asynchrones : celles-ci sont simplement mises en attente. L'utilisateur est averti par SIGIO. La structure aio_result_t est mise jour. poll, select Utiliser des threads ddis

ENST janvier 21, 2003

47

STR Embarqus

STRE
Plan

1. Domaines dapplication des systmes embarqus 2. Caractristiques des systmes embarqus temps rel (STRE) - rappels sur les systmes temps rel - objectifs et spcificits des STRE 3. Les systmes disponibles 4. Standards : propositions POSIX 5. Prcisions sur la gestion du temps - ordonnancement - entres/sorties 6. Dveloppement d'applications embarques 7. Perspectives

ENST janvier 21, 2003

48

STR Embarqus

Environnement de dveloppement
Dveloppements en environnement crois : compilateur crois et outils associs, remote debugging Les dveloppements ne se font plus en assembleur, le langage de haut niveau peut prendre en main les problmes proches du matriel, Utilisation majoritaire de logiciels propritaires, mergence de logiciels du type gnu style de programmation spcifique (pas d'allocation dynamique de mmoire, gestion de timers, ...)
Target (cible) 1. tlchargement ROM RAM 2. Excution/mise au point Processeur B Moniteur en ROM Pas d'cran Pas de disque Outils dedveloppement crois Host (hte)

Processeur A

ENST janvier 21, 2003

49

STR Embarqus

Environnement de dveloppement
Cycle de mise au point :

Edition de sources Compilation croise et ditions de liens Tlchargement Moniteur Excution et mise au point Systme + application EPROM, Flash RAM

Il faut au moins un "moniteur" trs simple pour "booter" la carte (initialisation des registres de base, gestion d'une ligne de tlchargement)

ENST janvier 21, 2003

50

STR Embarqus

Environnement de dveloppement
Plate-formes logicielle de base : - un systme d'exploitation - un ou plusieurs compilateurs croiss - des outils de dveloppement croiss - des protocoles de communication (tlchargement, mise au point)

Bibliothque, threads, etc Systme Pilotes BSP Processeur de base Carte particulire Matriel

Pour rduire les cots - simulateurs, - plate-forme de dveloppement propritaires - outils free software,

ENST janvier 21, 2003

51

STR Embarqus

Exemple : embedded Linux

Embedded Linux < 500K octets (avec TCP-IP), outils de compilation croise et de dveloppement gnu (gcc et remote gdb)

Cible : plateforme PowerPC MPC860 RAM Interface Ethernet Port srie 1. tlchargement BDM 2. accs nfs 3. Excution/mise au point

Hte : PC sous Linux Port parallle Interface Ethernet Port srie COM1

ENST janvier 21, 2003

52

STR Embarqus

Exemple : eCos

Premire tape :installer les outils de dveloppement en environnement crois Deuxime tape : construire un systme : - rcuprer les sources de base de ecos
d d d d devs hal kernel packages pkgconf pkgconf.tcl targets

- modifier les fichiers de configuration - ajouter les sources et #include spcifiques (on arrive 8 Mo de sources) - construire ecos pour la plate-forme spcifique (une bibliothque de 3 Mo est produite) - tester cette base minimale Troisime tape : mettre au point une application - Tlcharger n fois l'application (un excutable fait environ 300 K)

ENST janvier 21, 2003

53

STR Embarqus

STRE
Plan

1. Domaines dapplication des systmes embarqus 2. Caractristiques des systmes embarqus temps rel (STRE) - rappels sur les systmes temps rel - objectifs et spcificits des STRE 3. Les systmes disponibles 4. Standards : propositions POSIX 5. Prcisions sur la gestion du temps - ordonnancement - entres/sorties 6. Dveloppement d'applications embarques 7. Perspectives

ENST janvier 21, 2003

54

STR Embarqus

Perspectives : logiciel
Systmes : du plus petit au plus grand : - Systmes miniatures (micro systmes) : TinyOS de Berkeley - Systmes embarqus distribus grande chelle : - quel middleware (RT Corba ?), - ordonnancement dynamique et adaptable Logiciel de base, ordonnancement : Flexible scheduling, gestion souple de la QoS, gestio mmoire (cf JVM) Gestion de lnergie : par lordonnancement (power aware scheduling), par le matriel, la compilation, Gestion de la localisation Compilateurs : Impact de la compilation classique sur la gestion de lnergie, exemples : - rduction du nombre dinstructions (+) - unrolling des boucles (-)

ENST janvier 21, 2003

55

STR Embarqus

Perspectives : matriel

Chaque composant doit avoir des performances prdictibles, tre energyaware: - prfrer des pipe-lines uniques aux architectures superscalaires caches simples et prdictibles - bus (cf CAN, TTP) Pas de disque, rle important de la ROM Loi de Moore : les performances technologiques des composants sont multiplies par deux tous les un trois ans, mais le stockage de lnergie ne suit pas cette loi Prendre en compte lencombrement, la robustesse (environnement dur : corrosion, chaleur, bruit, chocs, interfrences, vibrations)

ENST janvier 21, 2003

56

STR Embarqus

Perspectives : rseau
Technologies de rseau sans fil : - infra rouge, 802.11, Bluetooth, nouveaux protocoles Rseaux ad hoc Sur IP: - RTP, RSVP (gestion de priorits, discipline de rseau), - exploiter IPv6, - fin de l'IP traditionnel dans lequel l'intelligence est dans les extrmits ?

ENST janvier 21, 2003

57

STR Embarqus

Java et le temps rel

Problmes : -gestion des threads (priorit, ordre de rveil lors d'un NotifyAll ?), - Pas d'outils de communication efficaces, -Gestion du ramasse-miettes ? - Editions de liens (utiliser forName) - Accs au matriel, criture de pilotes, accs aux adresses mmoire : il faut utiliser le C

Une rponse : real-time java specification ? JVM orientes temps rel : - JavaOS for Consumer (200 Ko + 600 Ko de noyau Chorus), API minimale sur 600 Ko - PERC de Newmonics (options timed, threads priodiques et sporadiques) porte sur pSOS, (512 Ko , API minimale sur 400 Ko) - sous Linux : Java Embedded Server de Sun, 200 700 Ko suivant les services intgrs : HTTP, SNMP, RMI, ...
ENST janvier 21, 2003
58

STR Embarqus

ENST janvier 21, 2003

59

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