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 ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<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 />
Tous les attributs du <strong>la</strong>ngage de GLADE sont transformés en propriétés AADL.<br />
De <strong>la</strong> même façon, <strong>la</strong> localisation <strong>des</strong> nœuds sur le réseau est indiquée par un attribut associé<br />
aux partitions :<br />
1 REPRESENTATION_CLAUSE ::=<br />
2 for PARTITION_IDENTIFIER’Host use STRING_LITERAL;<br />
3 | for PARTITION_IDENTIFIER’Host use FUNCTION_IDENTIFIER;<br />
L’utilisation d’AADL fait apparaître <strong>la</strong> distinction entre partition logicielle et composant matériel<br />
supportant l’exécution <strong>des</strong> partitions. La localisation <strong>des</strong> partitions est donc exprimée par<br />
une propriété associée aux processeurs :<br />
56 Host_URL : aadlstring applies to (processor);<br />
Listing IV.5 – Emp<strong>la</strong>cement <strong>des</strong> nœuds<br />
GLADE est dans ce cas plus concis puisqu’il fait abstraction <strong>des</strong> éléments matériels qui soustendent<br />
le déploiement de l’application. Les informations de localisation <strong>des</strong> partitions leur sont<br />
directement associées. La <strong>des</strong>cription <strong>des</strong> communications possibles entre les partitions fait en<br />
revanche l’objet de déc<strong>la</strong>rations séparées :<br />
1 for Partition_1’Host use "127.0.0.1";<br />
2 for Partition_2’Host use "127.0.0.1";<br />
3 for Partition_3’Host use "127.0.0.1";<br />
4 Canal1_2 : Channel := (Partition1, Partition2);<br />
5 Canal2_3 : Channel := (Partition2, Partition3);<br />
6 Canal3_1 : Channel := (Partition3, Partition1);<br />
Listing IV.6 – Description du déploiement <strong>des</strong> nœuds avec Gnatdist<br />
La construction AADL équivalente est plus complexe, mais plus structurée :<br />
1 system implementation Global.implem<br />
2 subcomponents<br />
3 partition_1 : process Partition;<br />
4 partition_2 : process Partition;<br />
5 partition_3 : process Partition;<br />
6 processeur_1 : processor Machine {GLADE::Localisation =><br />
"127.0.0.1"};<br />
7 connections<br />
8 event data port partition_1.communications -> partition_2.<br />
communications;<br />
9 event data port partition_2.communications -> partition_3.<br />
communications;<br />
10 event data port partition_3.communications -> partition_1.<br />
communications;<br />
11 properties<br />
12 actual_processor_binding => reference (processeur_1) applies to<br />
partition_1;<br />
13 actual_processor_binding => reference (processeur_1) applies to<br />
partition_2;<br />
14 actual_processor_binding => reference (processeur_1) applies to<br />
partition_3;<br />
15 end Global.implem;<br />
Listing IV.7 – Description du déploiement <strong>des</strong> nœuds en AADL<br />
56 c○ 2007 Thomas Vergnaud