04.07.2013 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!