Vous êtes sur la page 1sur 6

LA METHODE DARTS ET LA PROGRAMMATION MULTITACHE EN LABVIEW

NGO Khanh Hieu, GROLLEAU Emmanuel Laboratoire dInformatique Scientifique et Industrielle ENSMA, Tlport 2 - 1, av. Clment Ader, BP 40109, 86961 Futuroscope ngokhanhhieu2001@yahoo.co.uk , grolleau@ensma.fr

Rsum: Les systmes temps rel sont de plus en plus prsents dans la vie quotidienne. Ces systmes de contrle/commande sont soumis des contraintes temporelles inhrentes lenvironnement. La mthode DARTS (Design Approach For Real-Time System ) [Gom93] est une mthode de conception particulirement bien adapte la conception de systmes temps rel. LabVIEW est un langage de programmation graphique bas sur le formalisme flot de donnes ayant des fonctionnalits avances, propres la synchronisation et la communication. Lobjectif de cet article est de prsenter la bibliothque DARTSVIEW, qui est une palette de fonctions LabVIEW oriente conception DARTS. Lutilisation de cette palette permettra un concepteur dapplication temps rel, partir de DARTS, dobtenir directement le modle dimplmentation. Mots cls: LabVIEW, mutiltche, concurrence, synchronisation, communication, conception de systmes temps rel. 1 CONTEXTE DE LETUDE

La concurrence est lun des problmes frquemment poss quand on parle de systmes temps rel. Dans un tel systme, plusieurs activits, dont chacune est prsente par une tche indpendante, peuvent sexcuter en parallle (ainsi, des tches peuvent tre charges de lacquisition de donnes diffrentes priodes, dautres tches peuvent tre ddies au calcul, et dautres lapplication de commandes sur des cartes dacquisition). Lorsque ces activits se synchronisent et communiquent, le respect de lexclusion mutuelle, de la synchronisation et de la communication est vraiment un point cl auquel il convient de sadresser.

lexclusion mutuelle consiste garantir un aspect exclusif une donne ou une ressource partage par plusieurs tches, la synchronisation permet de bloquer une tche tant quune autre ne la rveille pas, la communication permet des tches dchanger des donnes.

Le but de cet article est de prsenter une bibliothque facilitant limplmentation de tches partageant des ressources, communiquant et se synchronisant. Le dveloppement dun systme temps rel ncessite gnralement diffrentes phases: la spcification, la conception, limplmentation, les tests unitaires (tests fonctionnels de chaque tche), les tests dintgration, puis la validation temporelle. Dans la suite de cet article, nous prsentons la mthode DARTS, un outil pouvant tre utilis lors de la phase de conception, puis sa traduction en LabVIEW, choisi comme langage de dveloppement. pour crer une

bibliothque, nomme DARTSVIEW, facilitant le passage de la conception DARTS limplmentation LabVIEW et permettant de simplifier limplmentation de la concurrence. 2 PRESENTATION DE LA METHODE DARTS Propose par H. Gomaa, DARTS est une mthode de conception fournissant des outils qui permet de dcrire les interactions de tches concurrentes en terme dinterfaces entre elles. Ces interfaces dpendent du fonctionnement du systme, et peuvent tre exprimes sous la forme de messages, vnements ou modules de donnes (gnralement, les modules de donnes hbergent des donnes ou des programmes dont on doit garantir laccs exclusif) (voir Fig. 1).

Figure 1: Elments dun diagramme DARTS

Figure 2: Un diagramme DARTS

Chaque tche est prsente par un paralllogramme. Une tche peut tre soit une tche matrielle, soit une tche logicielle. Lactivation des tches matrielles est ralise par un vnement (une interruption interne ou externe provenant du procd, pouvant tre une horloge). Les tches logicielles sont actives par des synchronisations, botes aux lettres, ou rendez-vous par le biais dune autre tche, elle- mme matrielle ou logicielle. La synchronisation est la communication sans donnes entre deux tches, appeles productrice et comsommatrice. Dans le sens le plus large, la tche consommatrice ne peut sexcuter que lorsquelle est dclenche (i.e. la synchronisation a lieu) par la tche productrice. Les outils logiciels permettant dimplmenter la synchronisation peuvent tre le Smaphore et lEvnement. La communication est le passage dinformation dune tche une autre [Gev 98]. Elle peut de deux types: la communication synchrone et la communication asynchrone. La communication synchrone, reprsente par le rendez- vous, est un mcanisme dans lequel les deux tches qui communiquent le font de faon synchrone (on peut faire lanalogie avec le tlphone, o les deux interlocuteurs doivent tre prts communiquer pour que la communication sopre. Le langage Ada 83 tait bas sur ce paradigme de communication.). Au contraire, la communication asynchrone, implmente gnralement par une bote lettre (BAL), est un mcanisme dans lequel lmission et la rception des messages sont effectues de manire asynchrone. Gnralement, les messages sont stocks dans une file de type FIFO (premier arriv premier sorti). Un blocage survient respectivement pour lmettrice et la rceptrice lorsque la BAL est pleine ou lorsquil ny a pas de message dans BAL. Cependant, il est possible dimplmenter des BAL crasement : dans ce cas, lorsque la BAL est pleine, lmettrice nest pas bloque mais crase le message le plus ancien. Le module de donnes (MDD) est utilis comme un systme dencapsulation et de protection de donnes. Le principe du module est de permettre des tches de partager des informations et dy accder en les protgeant contre des accs simultans. Les donnes encapsules ne

peuvent tre accdes qu travers linterface. Le MDD doit garantir latomicit des oprations de cette interface les unes par rapport aux autres (ie. une opration ne peut pas interrompre une opration en cours sur le mme MDD). Le MDD peut tre vu comme une BAL de taille 1, crasement, non bloquante en lecture (i.e. les messages ne sont pas consomms par leur lecture). La figure 2 nous prsente le diagramme DARTS dans la phase de conception dune tude de cas: un systme de chauffage dune maison. 3 LabVIEW, UN LANGAGE MULTITACHE

LabVIEW est un langage naturellement parallle: lorsque deux fonctions sont indpendantes, le runtime les excute en parallle en entrelaant si ncessaire leur excution. Cependant, la diffrence entre la notion de paralllisme dans LabVIEW et la smantique flots de donne associe au langage G ne permet pas de les faire communiquer directement laide dun flot de donne (la seconde fonction serait force dattendre la terminaison de la premire pour commencer son excution). LabVIEW nous offre cependant des outils avancs pour rpondre au problme de synchronisation et de communication. Ces outils sont le Smaphore, la Bote lettre, le Rendez-vous et lEvnement. Ils se trouvent dans la sous-palette Synchronisation de la bibliothque des fonctions. Les fonctions primordiales de ces outils sont prsentes cidessous (le langage offre bien entendu de nombreuses variantes dutilisation des outils, mais la description exhaustive de ces fonctions nest pas lobjet de cet article). Il est noter que dans LabVIEW, il existe dautres outils permettant dimplmenter des communications. Parmi de ceux-ci, on peut citer la variable globale, ainsi que la combinaison registre dcalage/vi non r-entrant. Le Smaphore est un concept introduit par Dijkstra (1965) pour protger une section critique contre des accs simultans. Les primitives de gestion de smaphore dans LabVIEW sont Crer_Smaphore (, n), Prendre_Smaphore P(), Rendre_Smaphore V() ( : nom de smaphore, n: nombre daccs simultans autoriss). Lorsquune ressource est protge par un smaphore , si une tche veut y accder, elle doit dabord obtenir une permission daccs en appelant la primitive P(). Et elle va rendre cette permission lors de lachvement de sa section critique par la primitive V(). La bote aux lettres (BAL) permet la communication asynchrone entre tches. Cest une zone dchange dans laquelle une tche dite mettrice dpose des donnes et une tche dite rceptrice retire ces donnes dans lordre darrive. Les primitives de gestion de BAL sont Crer_BAL ( , t), Dposer_BAL ( , ), Retirer_BAL ( , ) ( : nom de BAL, t: nombre de messages maximal contenus dans BAL, : message). Le rendez-vous dans LabVIEW est simplement un objet permettant plusieurs tches de sattendre en un point donn dans leur excution. Les primitives de rendez- vous sont Crer_rendez- vous, Attente_sur_rendez- vous, Supprimer_rendez- vous. Lvnement permet une communication par signaux. Contrairement la communication par BAL, il ny a pas dchange de donnes lorsque des tches communiquent par vnement. Mais, certains moments de la vie de lapplication, des tches peuvent mettre ou attendre des vnements. Les primitives de gestion de lvnement sont Crer_vnement, Attendre_ vnement, Signaler_vnement. 3.1 Implmentation des concepts DARTS par LabVIEW En utilisant des fonctionnalits avances offertes par LabVIEW, il est relativement ais dimplmenter les concepts de la mthode DARTS. Cependant, la reprsentation graphique du

langage nous a permis de crer un modle de programmation DARTS proche de cette mthode de boxologie. Dans la mthode DARTS, les tches sexcutent gnralement en boucle sans fin (boucle Tant que vrai ), chaque itration tant dclenche soit sur un vnement comme une interruption matrielle, une horloge priodique (utilisation du vi Attendre le prochain multiple de ), larrive dun message dans une BAL ou bien le relchement dune synchronisation. Le problme de synchronisation peut tre rsolu laide dun Smaphore zro (un smaphore ayant la valeur initiale des accs simultans nulle). Le principe, illustr sur la figure 3, est le suivant: au dbut, il ny a pas dinstance libre du smaphore, et la tche en attente de synchronisation se met en attente du smaphore. Elle est donc endormie. La tche souhaitant relcher la synchronisation va simplement librer une instance du smaphore. La tche en attente se rveille alors en prenant linstance du smaphore et peut excuter le reste de son traitement. Elle se remet litration suivante en attente du smaphore, qui ne sera disponible que lorsque la tche dclenchant la synchronisation le souhaitera. Ainsi, la contrainte de prcdence engendre par la synchronisation DARTS est satisfaite. Sur la figure 3, la tche appelante est une tche matrielle priodique et la tche appele est une tche logicielle.

Figure 3: La synchronisation par Figure 4: La communication par bote smaphore dans LabVIEW lettre dans LabVIEW Le problme de la communication asynchrone peut tre rsolu laide de loutil bote aux lettres LabVIEW. A chaque itration (voir figure 4), la tche rceptrice, qui utilise la primitive Retirer_BAL, attendra un message envoy par la tche mettrice, qui utilise la primitive Dposer_BAL. Lmettrice na pas besoin dattendre que la rceptrice soit lcoute pour lui envoyer des messages : lmission de messages est asynchrone et la rceptrice est une tche logicielle active par BAL. Remarquer que dans LabVIEW, avant la version 6.1, pour envoyer ou rcuprer un message par BAL, il faut dabord le convertir en type caractres grce la fonction Flatten to String et le transformer aprs au type original grce la fonction Unflatten from String. La version 6.1 a introduit des BAL polymorphes rendant cette manipulation inutile.

Figure 5: Le vi de module de donne dans LabVIEW

Dans un diagramme DARTS, le module de donnes se sert dun systme dencapsulation de linformation avec des oprations permettant daccder aux donnes stockes. Le MDD pourrait tre implment laide dun vi non rentrant avec registre dcalage, mais cette implmentation ne permet pas lencapsulation des vi la DARTS. Le choix que nous avons fait propose une limplmentation suivante: lors de lcriture, on vide dabord la BAL grce linstruction Flush Queue, puis on insre le nouveau message (cest lcrasement); lors de la lecture, on lit le message stock dans la BAL sans lenlever; le smaphore est utilis conjointement pour garantir quune opration sur le module ne peut en interrompre une autre (notamment entre le moment o lcriture vide la BAL et le moment o elle insre le message). En fait, le vi de MDD est une combinaison dune bote lettre de taille 1 et dun smaphore de mme taille. Un connecteur de deux terminaux qui correspondent deux oprations Lire et Ecrire est construit dans ce vi pour faire la liaison entre le MDD et les deux VIs de tches Lecture, Ecriture (voir Fig. 5). 4 LA BIBLIOTHEQUE DARTSVIEW La bibliothque DARTSVIEW est une palette de fonctions oriente conception DARTS. Cette palette propose des vi qui encapsulent les concepts prsents en section 3 dans des sousvi ayant laspect des lments DARTS. En utilisant cette palette, un concepteur dapplication temps rel peut trs simplement, partir de la conception DARTS, obtenir directement le squelette oprationnel des tches ainsi que les outils de communication/synchronisation utiliser (voir Fig. 6). La philosophie de DARTSVIEW est assez proche de celle de GRAFCETVIEW [Gev 98] : la smantique flot de donnes nest pas oriente dans le mme sens que le flot de communications : en effet, si lon considre les vi Contrle_Chauffage (1), Commande_Allumage (2), Commander_Allumage (3), le flot de communication va de (1) vers (2) vers (3) alors que le flot de donnes part de (2) (cration dun lment de synchronisation mettant sur ses sorties une rfrence vers llment cr) et va vers (1) et (3).

Figure 6: La palette DARTSVIEW

Figure 7: Diagramme DARTSVIEW

La figure 7 est limplmentation du diagramme DARTS donn sur la figure 2. La palette DARTSVIEW propose donc des lments de programmation prfabriqus implmentant les concepts multitche DARTS. 5

CONCLUSION Utilisation dun langage graphique (LabVIEW) pour concevoir directement le systme partir dune mthode graphique de conception (DARTS): une vritable analogie est

Les avantages dune telle approche sont les suivants:

propose au concepteur (voir Fig. 7). De plus, le concepteur dispose dune vue globale de lapplication. Les lments de la palette DARTSVIEW disposs implmentent automatiquement les communications et synchronisations mises en uvre entre les tches. Il ne reste plus alors au concepteur qu implmenter le comportement fonctionnel des tches, sans se soucier de la mise en uvre des communications. Facilit des tests unitaires des tches grce linstrumentation de lenvironnement de dveloppement (point darrt, animation de lexcution, espionnage des valeurs...). Facilit de mise en uvre des tests dintgration grce lutilisation dune tche de simulation du procd. Simplicit dutilisation des cartes dacquisition.

Enfin, en conclusion, nous prsentons les perspectives de notre dmarche, qui font actuellement le sujet dune thse de doctorat. Les objectifs long terme sont de fournir une plateforme daide au dveloppement dapplication temps rel base sur LabVIEW. Le passage de la conception limplmentation est facilit grce la bibliothque DARTSVIEW, qui contient des prototypes de tches. Diffrentes pistes sont abordes, comme la gnration de code source Ada partir de DARTSVIEW, ou bien la validation temporelle base sur une tude dordonnanabilit des tches gnres (aprs mesure par le concepteur des pires dures dexcution des tches), ainsi que la simulation du fonctionnement du systme pilot par un ordonnanceur. 6 BIBLIOGRAPHIE [Bar 96] J. Barnes, Programming in Ada 95, Addison-Wesley, Workingham, England, 702p., 1996. [BC 98] J. P. Babau, F. Cottet, Programmation et Validation des applications temps rel contraintes strictes sur lanalyse schedulability analysis, Paris, 11-13 Janvier, 1995. [CDKM] F. Cottet, J. Delacroix, C. Kaiser, Z. Mammeri, Ordonnancement temps rel, Hermes, Paris, 2000. [CG 02] F. Cottet, E. Grolleau, Dveloppement des systmes informatiques temps rel, Cours informatique Temps Rel lENSMA. [Cot 01] F. Cottet, LabVIEW, Programmation et Applications, Dunod, 2001. [Gev 98] E. Geveaux, Conception dun environnement de dveloppement des applications de contrle de procd bas sur le modle formel GRAFCET et fond sur un langage graphique flot de donnes, rapport de Thse, LISI ENSMA, 29 Septembre 1998. [Gol 93] S. Goldsmith, A pratical guide to real-time systems development, Prentice Hall, 503p., 1993. [Gom 93] H. Gomaa, Software Design Methods for Concurrent and Real- Time System, Addison Wesley, SEI Series in Software Engineering, 1993. [LL 73] C. L. Liu, J. W. Layland, Scheduling algorithms for multiprogramming in a hard real-time environment, Journal of the ACM, vol. 20, no 1, pp. 46-61, 1973. [TE 97] J. P. Thomesse, J. P. Elloy, Ecole dt temps rel: applications, rseaux et systmes, actes de lcole dt temps rel, ERT97, ENSMA, Futuroscope, pp. 2-3, 22-26 Septembre 1997.