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

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

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

Saved successfully!

Ooh no, something went wrong!