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 />
Un appel de sous-programme distant se manifeste par une connexion d’accès à sous-programme<br />
entre deux threads. Si les deux threads appartiennent au même processus, le générateur de code est<br />
susceptible de procéder à <strong>des</strong> optimisations, de façon à ne pas faire appel aux couches du réseau.<br />
Du point de vue de <strong>la</strong> modélisation, ce cas ne constitue cependant pas une situation particulière.<br />
Notons qu’un sous-programme instancié au sein d’un processus et connecté à un accès requis<br />
à sous-programme d’un thread de ce processus ne constitue pas un appel distant ; le thread appelle<br />
simplement le sous-programme local.<br />
IV-5.3.3 Objets distants<br />
AADL ne permet pas de modéliser <strong>des</strong> objets à proprement parler, dans <strong>la</strong> mesure où <strong>des</strong><br />
notions telles que <strong>la</strong> surcharge et l’héritage n’existent pas. Notamment, l’extension de composant<br />
permet seulement de réutiliser <strong>des</strong> déc<strong>la</strong>rations de façon statique ; l’extension d’un composant ne<br />
peut pas instancié en lieu et p<strong>la</strong>ce du composant étendu. Il n’est pas non plus possible de créer<br />
dynamiquement <strong>des</strong> composants, comme on peut le faire avec <strong>des</strong> <strong>systèmes</strong> comme CORBA.<br />
Il est néanmoins possible de décrire <strong>des</strong> objets « statiques » comme étant un ensemble de sousprogrammes<br />
fournis par un composant de donnée. Le composant de donnée peut lui-même être<br />
accessible à partir de sous-programmes exécutés par d’autres threads ; il fait partie <strong>des</strong> éléments<br />
d’interface fournis par le thread serveur.<br />
Spécification IV.4 (Objets <strong>répartis</strong>)<br />
Les objets <strong>répartis</strong> sont modélisés par <strong>des</strong> composants de donnée dont l’accès est fourni<br />
en interface d’un thread. Ces composants de donnée fournissent eux-même un accès à<br />
<strong>des</strong> sous-programmes, qui constituent les métho<strong>des</strong> de l’objet.<br />
Les objets distants en AADL correspondent en fait à <strong>des</strong> sous-programmes distants associés à<br />
un composant de donnée. Le listing IV.12 illustre un exemple de manipu<strong>la</strong>tion d’objet réparti en<br />
AADL.<br />
1 subprogram a_method<br />
2 features<br />
3 a : in parameter;<br />
4 b : out parameter;<br />
5 end a_method;<br />
6<br />
7 data a_c<strong>la</strong>ss<br />
8 features<br />
9 method1 : subprogram a_method;<br />
10 end a_c<strong>la</strong>ss;<br />
11<br />
12 thread a_server<br />
13 features<br />
14 object_stub : provi<strong>des</strong> data access a_c<strong>la</strong>ss;<br />
15 properties<br />
16 dispatch_protocol => aperiodic;<br />
17 end a_server;<br />
18<br />
19 thread implementation a_server.impl<br />
20 subcomponents<br />
21 object : data a_c<strong>la</strong>ss;<br />
22 connections<br />
68 c○ 2007 Thomas Vergnaud