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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<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 le cadre de nos travaux, nous avons choisi d’utiliser AADL comme <strong>la</strong>ngage de modélisation.<br />

Ce <strong>la</strong>nguage se distingue par une approche très concrète, centrée sur une identification précise<br />

<strong>des</strong> composants de l’architecture. Il permet ainsi de modéliser à <strong>la</strong> fois l’application (threads,<br />

sous-programmes) et son environnement d’exécution (processeurs, bus).<br />

IX-1.1 AADL comme support <strong>pour</strong> un cycle de conception<br />

Nous utilisons AADL comme <strong>la</strong>ngage unificateur <strong>pour</strong> décrire les différents aspects de l’application,<br />

que ce soit les éléments fonctionnels (interfaces, etc.) ou non fonctionnels (<strong>temps</strong> d’exécution,<br />

répartition <strong>des</strong> nœuds, etc.). AADL fournit une représentation commune de l’application<br />

répartie qui peut être exploitée par différents outils. Une modélisation AADL peut ainsi être utilisée<br />

par <strong>des</strong> analyseurs d’ordonnancement, <strong>des</strong> générateurs de code, ou tout autre outil spécialisé.<br />

Nous nous servons du <strong>la</strong>ngage <strong>pour</strong> décrire <strong>la</strong> structure d’exécution de l’application ; les différents<br />

composants AADL définissent les types de données échangés, les interfaces <strong>des</strong> entités ainsi que <strong>la</strong><br />

localisation <strong>des</strong> nœuds sur le réseau, les politiques d’ordonnancement, etc. Les <strong>des</strong>criptions comportementales<br />

<strong>des</strong> éléments de l’application sont exprimées dans un paradigme différent d’AADL<br />

– typiquement, un <strong>la</strong>ngage de programmation ou une <strong>des</strong>cription plus formelle – et associées aux<br />

composants AADL.<br />

La <strong>des</strong>cription AADL modélise une application <strong>des</strong>tinée à s’exécuter à travers un exécutif<br />

adapté. Cet exécutif prend en charge l’ordonnancement <strong>des</strong> threads du système et les communications<br />

inter-nœuds en mettant en p<strong>la</strong>ce un intergiciel adapté.<br />

Nous avons proposé une méthodologie de conception intégrant <strong>la</strong> <strong>des</strong>cription complète <strong>des</strong><br />

éléments applicatifs en AADL ; <strong>la</strong> configuration de l’intergiciel peut être déduite de <strong>la</strong> <strong>des</strong>cription<br />

architecturale de l’application et de <strong>la</strong> <strong>des</strong>cription de l’environnement d’exécution matériel. Le<br />

processus que nous avons défini est constitué de deux étapes principales, correspondant aux degrés<br />

de précision de <strong>la</strong> configuration de l’exécutif.<br />

Dans <strong>la</strong> première étape nous considérons l’utilisation d’un intergiciel capable de prendre en<br />

charge les différentes fonctionnalités exprimées dans <strong>la</strong> <strong>des</strong>cription AADL de l’application. Dans<br />

<strong>la</strong> seconde étape nous déduisons une <strong>des</strong>cription AADL de l’intergiciel lui-même ; il est alors<br />

possible d’évaluer précisément les dimensions spatiales et temporelles de l’application complète.<br />

À chaque étape, <strong>la</strong> <strong>des</strong>cription AADL peut être exploitée <strong>pour</strong> en extraire différentes informations<br />

afin de vérifier certaines propriétés architecturales vis-à-vis <strong>des</strong> spécifications initiales. Par<br />

exemple, nous pouvons nous assurer de l’absence de blocages dans les flux d’exécutions, ou vérifier<br />

l’ordonnançabilité <strong>des</strong> différents threads de l’application. Il est également possible de générer<br />

une application exécutable afin d’effectuer <strong>des</strong> mesures de performance.<br />

Nous avons raffiné l’interprétation sémantique <strong>des</strong> composants AADL <strong>pour</strong> introduire une séparation<br />

nette entre <strong>la</strong> modélisation de l’application elle-même et celle de l’exécutif. Afin de guider<br />

et d’assister l’utilisateur dans <strong>la</strong> <strong>des</strong>cription de l’application, nous avons spécifié les capacités de<br />

l’exécutif sous <strong>la</strong> forme de directives architecturales en AADL.<br />

IX-1.2 Exploitation <strong>des</strong> <strong>des</strong>criptions AADL<br />

Nous avons établi <strong>des</strong> règles de traduction <strong>pour</strong> produire du code exécutable dans différents<br />

<strong>la</strong>ngages de programmation à partir <strong>des</strong> constructions AADL, dans le cadre <strong>des</strong> spécifications<br />

d’exécutif que nous avons définies.<br />

L’intergiciel supportant notre exécutif AADL doit offrir une grande flexibilité de configuration<br />

afin de prendre en charge les différents paramètres de l’application, exprimés dans <strong>la</strong> <strong>des</strong>cription<br />

172 c○ 2007 Thomas Vergnaud

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

Saved successfully!

Ooh no, something went wrong!