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