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

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

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

Saved successfully!

Ooh no, something went wrong!