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.

Chapitre III – AADL, un <strong>la</strong>ngage <strong>pour</strong> décrire les architectures<br />

III-9.1 <strong>Modélisation</strong> <strong>des</strong> séquences d’appel<br />

III-9.1.1 Limitation du standard 1.0<br />

Les sous-programmes AADL ne peuvent pas être explicitement instanciés dans une architecture.<br />

Il n’est donc pas possible d’y faire référence, contrairement aux autres composants, tels que<br />

les bus. Ce traitement particulier entraîne une certaine rigidité dans les modélisations.<br />

Ainsi, les différents sous-programmes référencés par une séquence d’appel le sont de manière<br />

statique, comme l’illustre le listing III.11. L’imp<strong>la</strong>ntation thread_a.impl1 du thread thread_a<br />

appelle sp_a.impl1. Si nous souhaitons décrire une autre configuration où thread_a appelle sp_a<br />

.impl2, il est nécessaire d’écrire une autre imp<strong>la</strong>ntation du thread.<br />

1 thread thread_a end thread_a;<br />

2 subprogram sp_a end sp2;<br />

3<br />

4 subprogram sp_a.impl1 end sp_a.impl1;<br />

5 subprogram sp_a.impl2 end sp_a.impl2;<br />

6<br />

7 subprogram implementation thread_a.impl1<br />

8 calls {<br />

9 appel1 : subprogram sp_a.impl1;<br />

10 };<br />

11 end thread_a.impl1;<br />

12<br />

13 subprogram implementation thread_a.impl2<br />

14 calls {<br />

15 appel1 : subprogram sp_a.impl2;<br />

16 };<br />

17 end thread_a.impl2;<br />

Listing III.11 – <strong>Modélisation</strong> de séquences d’appel en AADL 1.0<br />

Parallèlement, du fait de l’instanciation implicite <strong>des</strong> sous-programmes appelé, <strong>la</strong> syntaxe<br />

d’AADL 1.0 ne permet pas de spécifier qu’un sous-programme appelé est fourni par un autre<br />

thread que le thread courant. De <strong>la</strong> même façon, aucune construction syntaxique ne permet d’indiquer<br />

un appel à un sous-programme fourni par un composant de donnée. Dans ces deux situations,<br />

le standard propose de recourir à un mécanisme d’annexe afin de préciser à quel composant les<br />

sous-programmes appelé sont attachés ; ne pas intégrer ce genre d’information directement dans<br />

les constructions architecturales complique l’exploitation <strong>des</strong> <strong>des</strong>criptions.<br />

III-9.1.2 Extension de <strong>la</strong> syntaxe<br />

La solution que nous proposons est de promouvoir les sous-programmes AADL au même rang<br />

que les autres catégories de composants, et ainsi de pouvoir les instancier.<br />

Principes<br />

Dans ces hypothèses, les processus, les threads et les données peuvent intégrer <strong>des</strong> sousprogrammes<br />

comme sous-composants. Les processus étant <strong>des</strong> espaces de mémoire, <strong>la</strong> signification<br />

d’une telle composition est re<strong>la</strong>tivement simple. Dans le cas <strong>des</strong> threads et <strong>des</strong> données, le<br />

sous-programme sous-composant est implicitement déc<strong>la</strong>ré dans les processus parent, mais uniquement<br />

accessible depuis le thread ou <strong>la</strong> donnée.<br />

c○ 2007 Thomas Vergnaud 47

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

Saved successfully!

Ooh no, something went wrong!