Академический Документы
Профессиональный Документы
Культура Документы
B. Dupouy
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
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
STR Embarqus
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),
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%
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
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
STR Embarqus
STR Embarqus
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
11
STR Embarqus
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,)
12
STR Embarqus
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
13
STR Embarqus
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),
14
STR Embarqus
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
15
STR Embarqus
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
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
16
STR Embarqus
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
T1 rate son chance... Allocation RMS par un STR (qui se plie aux contraintes de temps extrieures) :
1 2 3
17
STR Embarqus
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 !).
18
STR Embarqus
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
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
21
STR Embarqus
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,
22
STR Embarqus
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
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
24
STR Embarqus
25
STR Embarqus
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
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
27
STR Embarqus
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, ...)
28
STR Embarqus
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
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
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, ¶m) tid; attr; param;
31
STR Embarqus
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
32
STR Embarqus
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)
33
STR Embarqus
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); ... }
34
STR Embarqus
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
35
STR Embarqus
36
STR Embarqus
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
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
38
STR Embarqus
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,
39
STR Embarqus
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) (?!)
40
STR Embarqus
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.
41
STR Embarqus
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)
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.
42
STR Embarqus
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 ...
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
Rappel : les interruptions sont plus prioritaires que n'importe quelle tche
44
STR Embarqus
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)
45
STR Embarqus
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,
46
STR Embarqus
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
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
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
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)
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,
51
STR Embarqus
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
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)
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
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 (-)
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)
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 ?
57
STR Embarqus
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
59