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 />

Règle VII.17 (Agencement <strong>des</strong> séquences de traitement <strong>des</strong> paramètres)<br />

L’agencement <strong>des</strong> différentes séquences « normales » au sein d’un sous-programme ou<br />

d’un thread appelé composant est coordonné par deux transitions composant_begin et<br />

composant_end.<br />

Ces deux transitions sont organisées comme <strong>des</strong> connexions de paramètres. La transition<br />

composant_begin synchronise les jetons <strong>des</strong> données entrant dans l’entité et le jeton de<br />

contrôle du thread correspondant. Les jetons consommés sont stockés dans <strong>des</strong> p<strong>la</strong>ces<br />

correspondant à chaque jeton de paramètre et au jeton de contrôle – cette dernière p<strong>la</strong>ce<br />

est nommé composant_c_begin. Toutes ces p<strong>la</strong>ces sont reliées aux transitions seq_begin<br />

de chaque séquence seq.<br />

Chaque transition seq_end envoie les jetons issus de <strong>la</strong> séquence seq dans <strong>des</strong> p<strong>la</strong>ces<br />

correspondantes. Elles envoient le jeton de contrôle dans une p<strong>la</strong>ce composant_c_end.<br />

Elle est construite comme une transition de connexion de paramètre.<br />

Les différentes p<strong>la</strong>ces correspondant aux paramètres de fin de séquence sont reliées à<br />

<strong>la</strong> transition composant_end. La p<strong>la</strong>ce composant_c_end associée au jeton de contrôle<br />

est reliée à <strong>la</strong> fois à <strong>la</strong> transition composant_end et à <strong>la</strong> p<strong>la</strong>ce composant_c_begin par<br />

l’intermédiaire d’une transition.<br />

Comme les autres, <strong>la</strong> transition composant_end est structurée comme une transition de<br />

connexion de paramètre. Les jetons consommés sont envoyés vers les p<strong>la</strong>ces correspondant<br />

aux données de sortie de l’entité. Le jeton de contrôle est envoyé vers <strong>la</strong> p<strong>la</strong>ce de<br />

sortie du jeton de contrôle.<br />

Ces différentes constructions de p<strong>la</strong>ces et de transition permettent de recueillir les différentes<br />

données entrantes de l’entité, d’exécuter les différentes séquences d’appel possibles dans un ordre<br />

quelconque avec répétition puis de renvoyer le jeton de contrôle à l’extérieur du thread ou du<br />

sous-programme.<br />

L’aspect essentiel de cet assemb<strong>la</strong>ge est de mettre en p<strong>la</strong>ce deux chemins possibles <strong>pour</strong><br />

le jeton de contrôle. Celui-ci peut traverser plusieurs fois les séquences s’il est orienté vers <strong>la</strong><br />

p<strong>la</strong>ce composant_c_begin à partir de <strong>la</strong> p<strong>la</strong>ce composant_c_end. L’exécution <strong>des</strong> séquences s’arrête<br />

lorsque le jeton de contrôle est consommé par <strong>la</strong> transition composant_end ; cette transition ne<br />

peut être déclenchée que si toutes les p<strong>la</strong>ces <strong>des</strong> paramètres de sortie <strong>des</strong> séquences contiennent<br />

un jeton de valeur définie d.<br />

Nous modélisons ainsi le fait qu’il existe plusieurs scénarios d’exécution correcte d’un sousprogramme<br />

(ou d’un thread) ; tous ces scénarios correspondent à l’exécution <strong>des</strong> différentes séquences<br />

dans un ordre quelconque avec répétitions possibles, aboutissant à <strong>la</strong> définition d’une<br />

valeur valide <strong>pour</strong> chaque paramètre de sortie du sous-programme ou du thread. La figure VII.7<br />

fournit un exemple complet comprenant deux séquences d’appels, repérées par <strong>des</strong> zones grisées.<br />

Séquences <strong>des</strong> sous-programmes distants<br />

La traduction <strong>des</strong> séquences <strong>des</strong> sous-programmes distants est plus simple.<br />

Règle VII.18 (Agencement <strong>des</strong> séquences <strong>des</strong> appels distants)<br />

L’agencement <strong>des</strong> différentes séquences d’un thread appelé composant correspondant<br />

aux appels distants est constitué de ces différentes séquences. La transition seq_begin<br />

de chaque séquence seq consomme le jeton du thread. La transition seq_end de <strong>la</strong> fin de<br />

<strong>la</strong> séquence envoie le jeton de contrôle sur <strong>la</strong> p<strong>la</strong>ce de sortie du thread.<br />

136 c○ 2007 Thomas Vergnaud

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

Saved successfully!

Ooh no, something went wrong!