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