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.
VIII-3.2 Exemple de taille <strong>réel</strong>le<br />
Chapitre VIII – Mise en pratique<br />
La section précédente a permis d’évaluer le nombre d’état générés <strong>pour</strong> différents assemb<strong>la</strong>ges<br />
de composants. Nous nous intéressons maintenant à une modélisation de taille <strong>réel</strong>le afin d’évaluer<br />
<strong>la</strong> viabilité de <strong>la</strong> transformation en réseaux de Petri.<br />
AADL étant un <strong>la</strong>ngage encore assez récent, peu de <strong>des</strong>criptions d’architectures sont accessibles<br />
publiquement. Par ailleurs, <strong>la</strong> plupart d’entre elles ne prennent pas en considération <strong>la</strong> problématique<br />
de <strong>la</strong> génération automatique d’application ; elles représentent <strong>des</strong> constructions qui ne<br />
correspondent pas aux spécifications d’exécutif que nous avons faites au chapitre IV. Les exemples<br />
<strong>réel</strong>lement exploitables sont donc à l’heure actuelle peu nombreux.<br />
VIII-3.2.1 Description de l’architecture<br />
Nous prenons comme objet d’étude <strong>la</strong> modélisation d’un système d’affichage d’une cabine de<br />
pilotage d’avion [Statezni, 2004]. Cette architecture est composée de 90 threads s’exécutant sur 13<br />
processeurs. La modélisation AADL qui en a été faite avait <strong>pour</strong> objectif de démontrer <strong>la</strong> viabilité<br />
d’AADL comme <strong>la</strong>ngage de <strong>des</strong>cription. Cette modélisation fait 21000 lignes ; elle constitue donc<br />
un exemple significatif en terme de taille d’architecture.<br />
Il s’agit d’une modélisation de haut niveau, ne comprenant que <strong>la</strong> <strong>des</strong>cription du déploiement<br />
<strong>des</strong> threads AADL sur les processus. La <strong>des</strong>cription <strong>des</strong> composants applicatifs n’est pas abordée ;<br />
les différentes propriétés dont nous avons présenté <strong>la</strong> vérification en section VII-7 ne peuvent donc<br />
pas être vérifiées, puisque <strong>la</strong> <strong>des</strong>cription architecturale n’est pas assez précise.<br />
VIII-3.2.2 Expérimentations<br />
Nous exploitons <strong>la</strong> <strong>des</strong>cription AADL <strong>pour</strong> générer le réseau de Petri correspondant aux flux<br />
d’exécution entre les différents threads de l’architecture. L’application de nos règles de traduction<br />
produit un réseau constitué de 1564 p<strong>la</strong>ces, 572 transitions et 2576 arcs. Il fait intervenir 166<br />
variables de contrôle ; ces variables découlent du fait que certains threads possèdent de nombreux<br />
ports d’entrée. Ce grand nombre de variables entraînent <strong>la</strong> génération d’un trop grand nombre<br />
d’états, ce qui sature les outils actuels. Il est donc impossible d’analyser une telle architecture<br />
avec les techniques actuelles.<br />
Pour pouvoir analyser l’architecture, il est nécessaire de <strong>la</strong> réduire, tout en préservant sa sémantique<br />
vis-à-vis de <strong>la</strong> transformation en réseau de Petri. Nous nous appuyons <strong>pour</strong> ce<strong>la</strong> sur<br />
<strong>la</strong> sémantique d’exécution que nous avons associée aux threads AADL : un thread lit toutes ses<br />
données d’entrée, effectue un traitement puis émet toutes ses données de sortie.<br />
L’architecture que nous étudions se caractérise par <strong>la</strong> présence de threads possédant de nombreux<br />
ports d’entrée et de sortie. Nous exploitons cette caractéristique, dans le cadre de <strong>la</strong> sémantique<br />
d’exécutif que nous avons définie, <strong>pour</strong> réduire <strong>la</strong> taille du réseau généré.<br />
Première réduction<br />
En section VII-3, page 125, nous avons établi que tous les types de données étaient confondus<br />
lors de <strong>la</strong> transformation en réseau de Petri. Tous les ports <strong>des</strong> threads sont donc considérés comme<br />
étant associés à un unique composant de donnée.<br />
Par ailleurs, selon <strong>la</strong> règle IV.6, énoncée en page 69, un thread AADL émet toutes les données<br />
sortantes en même <strong>temps</strong>, à <strong>la</strong> fin de son exécution.<br />
c○ 2007 Thomas Vergnaud 167