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 />
de composants qui ne sont pas référencées par <strong>des</strong> sous-composants à partir du système racine ne<br />
sont pas instanciées.<br />
VIII-1.3.2 Organisation <strong>des</strong> générateurs de code<br />
Ocarina comprend deux modules de génération de code : l’un <strong>pour</strong> produire <strong>des</strong> <strong>systèmes</strong><br />
exécutables, l’autre <strong>pour</strong> produire <strong>des</strong> réseaux de Petri. Ils mettent tous deux en p<strong>la</strong>ce un arbre<br />
intermédiaire comprenant les informations pertinentes issues de l’arbre d’instance du cœur d’Ocarina.<br />
Gaia : le générateur d’applications<br />
Le module Gaia rassemble toutes les fonctions de génération que nous avons exposées dans<br />
les chapitres V et VI. La figure VIII.2 résume le processus de génération au sein de Gaia.<br />
arbre d'instance<br />
du cœur<br />
arbre applicatif<br />
de Gaia<br />
code source de<br />
l'enveloppe<br />
interface <strong>pour</strong><br />
l'intergiciel<br />
FIG. VIII.2 – Processus de génération dans Ocarina/Gaia<br />
Gaia est un générateur d’application 1 ; l’instance d’architecture AADL est donc considérée<br />
essentiellement à travers ses composants logiciels (threads, sous-programmes et données) tandis<br />
que les les autres composants de l’architecture (processus, processeur, bus. . .) sont exploités <strong>pour</strong><br />
<strong>la</strong> configuration de l’exécutif. Afin de faciliter l’exploitation de l’architecture <strong>pour</strong> <strong>la</strong> génération de<br />
code, Gaia est constitué de deux parties : le traducteur en code source et le générateur d’exécutif.<br />
L’organisation <strong>des</strong> deux parties de Gaia est structurée selon les processus de l’architecture, qui<br />
représentent les nœuds de l’application répartie.<br />
La traduction en code source ne dépend que du <strong>la</strong>ngage cible, comme nous l’avons montré<br />
au chapitre V ; un arbre est extrait de l’arbre de Gaia <strong>pour</strong> <strong>la</strong> traduction d’AADL en code source,<br />
reproduisant les structures que nous avons décrites <strong>pour</strong> les <strong>la</strong>ngages impératifs dans <strong>la</strong> section V-<br />
2, page 72. Les paquetages sont transformés en espaces de noms associés à chaque processus ; ces<br />
espaces de nom contiennent les déc<strong>la</strong>rations de sous-programmes et de composants de donnée<br />
correspondant à <strong>des</strong> appels ou <strong>des</strong> éléments d’interface instanciés dans chaque processus. Un<br />
générateur syntaxique est ensuite appliqué à l’arbre du traducteur afin de produire le code source<br />
dans le <strong>la</strong>ngage de programmation choisi. La prise en charge d’un nouveau <strong>la</strong>ngage consiste donc<br />
à changer <strong>la</strong> dernière étape de <strong>la</strong> génération.<br />
La génération de l’exécutif dépend à <strong>la</strong> fois du <strong>la</strong>ngage cible et de l’intergiciel utilisé. Il<br />
est donc a priori nécessaire de construire un générateur complet <strong>pour</strong> chaque intergiciel pris en<br />
charge ; dans le cas général, <strong>la</strong> génération de l’exécutif AADL correspondant à chaque processus<br />
est par conséquent effectuée à partir de l’arbre d’instance. Dans le cadre de nos travaux, nous<br />
avons construit un générateur qui produit une personnalité applicative <strong>pour</strong> PolyORB.<br />
1 Gaia est l’acronyme de « Générateur d’applications depuis une instance d’architecture »<br />
154 c○ 2007 Thomas Vergnaud