Modélisation des systèmes temps-réel répartis embarqués pour la ...
Modélisation des systèmes temps-réel répartis embarqués pour la ...
Modélisation des systèmes temps-réel répartis embarqués pour la ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Modélisation</strong> <strong>des</strong> <strong>systèmes</strong> <strong>temps</strong>-<strong>réel</strong> <strong>répartis</strong> <strong>embarqués</strong><br />
Dans <strong>la</strong> section V-2.3.6, nous avons décrit <strong>la</strong> traitement <strong>des</strong> sous-programmes fournis par un<br />
composant de donnée, et montré qu’il se ramenait au traitement <strong>des</strong> sous-programmes normaux.<br />
Il en est donc de même <strong>pour</strong> <strong>la</strong> traduction <strong>des</strong> objets <strong>répartis</strong> : nous pouvons nous ramener au cas<br />
<strong>des</strong> sous-programmes distants.<br />
V-2.5 Organisation <strong>des</strong> fichiers générées<br />
Afin de structurer <strong>la</strong> génération de code, nous nous efforçons de conserver l’organisation <strong>des</strong><br />
entités exprimée dans <strong>la</strong> <strong>des</strong>cription AADL ; il s’agit essentiellement de retranscrire les paquetages<br />
AADL dans le <strong>la</strong>ngage cible.<br />
Une <strong>des</strong>cription AADL met en jeu <strong>des</strong> composants instanciés et <strong>des</strong> composants qui ne le sont<br />
pas. Au niveau d’un processus, les composants à considérer sont les threads, les données et les<br />
sous-programmes.<br />
– les threads AADL sont instanciés au sein du processus ;<br />
– <strong>la</strong> déc<strong>la</strong>ration d’un composant de donnée correspond à <strong>la</strong> déc<strong>la</strong>ration d’un type de donnée,<br />
tandis qu’une instance de donnée correspond à une variable ;<br />
– dans le cas général, les sous-programmes sont seulement appelés, sans être instanciés ;<br />
cependant, un sous-programme peut-être instancié, comme nous l’avons montré au chapitre<br />
IV.<br />
Les déc<strong>la</strong>rations d’entités – données et sous-programmes – correspondent à <strong>la</strong> notion de déc<strong>la</strong>ration<br />
de type ou de procédure dans les <strong>la</strong>ngages de programmation impératifs. Ils est donc<br />
possible de les regrouper en reproduisant l’organisation <strong>des</strong> paquetages AADL. Les entités instanciées<br />
ne sont en revanche pas associées à un paquetage donné ; elles constituent un ensemble<br />
séparé.<br />
Règle V.9 (Regroupement du code source)<br />
Les paquetages AADL représentent les unités d’organisation <strong>des</strong> déc<strong>la</strong>rations AADL.<br />
Ils sont traduits par leur équivalent dans le <strong>la</strong>ngage cible.<br />
Nous structurons donc le code généré en plusieurs ensemble de code correspondant à <strong>des</strong><br />
paquetages, espaces de nom, etc. selon le <strong>la</strong>ngage cible considéré. Le code généré est structuré<br />
ainsi :<br />
– le code correspondant aux entités instanciées est généré dans un ensemble de code que nous<br />
appelons « partition » ;<br />
– le code correspondant aux entités qui ne sont pas instanciées est généré dans un ensemble<br />
dont le nom correspond au paquetage AADL dans lequel les entités AADL sont déc<strong>la</strong>rées.<br />
Cet ensemble de code est un sous-ensemble de « partition » ;<br />
– le code correspondant aux entités non instanciées, déc<strong>la</strong>rées dans l’espace de nom anonyme<br />
AADL, est généré dans l’ensemble de code « partition ».<br />
La traduction en <strong>la</strong>ngage de programmation conserve ainsi au maximum l’organisation <strong>des</strong><br />
déc<strong>la</strong>rations AADL.<br />
V-3 Traduction <strong>des</strong> composants applicatifs en <strong>la</strong>ngage Ada<br />
Le <strong>la</strong>ngage Ada est très répandu dans le domaine <strong>des</strong> <strong>systèmes</strong> <strong>embarqués</strong> <strong>temps</strong>-<strong>réel</strong> [Burns<br />
et Wellings, 2001]. Nous nous sommes donc particulièrement focalisés sur <strong>la</strong> génération de code<br />
vers ce <strong>la</strong>ngage. Dans cette section nous décrivons <strong>la</strong> traduction en Ada <strong>des</strong> éléments AADL que<br />
nous avons étudiés en section V-2.<br />
86 c○ 2007 Thomas Vergnaud