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.
53 end global.impl;<br />
<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 />
Listing VII.2 – Exemple de connexion AADL, traduit par le réseau VII.5<br />
Règle VII.11 (Limitation du nombre d’états du réseau)<br />
À chaque transition modélisant un thread recevant <strong>des</strong> données doit correspondre une<br />
p<strong>la</strong>ce de sortie. Cette p<strong>la</strong>ce de sortie reçoit les différents jetons de contrôle dont les<br />
couleur correspondent à celles <strong>des</strong> jetons reçu dans les p<strong>la</strong>ces d’entrée.<br />
Les jetons accumulés dans cette p<strong>la</strong>ce de sortie sont envoyés vers les p<strong>la</strong>ces reset <strong>des</strong><br />
threads émetteurs afin de réguler leur production de jetons.<br />
La p<strong>la</strong>ce reset du thread émetteur doit donc comporter une garde s’assurant que seul les jetons<br />
de contrôle correspondant à sa couleur sont acceptés. Il est par conséquent nécessaire de définir<br />
une couleur de contrôle par thread AADL, comme nous l’avons énoncé dans <strong>la</strong> règle VII.3.<br />
Notons que dans le cas d’un thread en tâche de fond, cette rétroaction est inutile, puisque le<br />
thread considéré ne boucle pas ; ces thread ne possèdent d’ailleurs pas de transition reset.<br />
La figure VII.5 donne le réseau de Petri issu de <strong>la</strong> modélisation du listing VII.2. Les représentations<br />
<strong>des</strong> threads sont repérées par les zones grisées. Les deux connexions cnx1 et cnx2 du<br />
processus processus_b sont fusionnées en une seule transition lors de <strong>la</strong> traduction en réseau de<br />
Petri. Nous nommons <strong>la</strong> transition résultante d’après <strong>la</strong> concaténation <strong>des</strong> différents threads impliqués<br />
: process1_thread1_process2_threads1_process2_thread2.<br />
process1_thread1_restart<br />
control <br />
<br />
process1_thread1_start process1_thread1_reset<br />
<br />
<br />
<br />
[c = th_1]<br />
process1_thread1_end<br />
control<br />
process1_thread1_s<br />
comm<br />
<br />
c<strong>la</strong>ss<br />
donnee is [d, u];<br />
control is 1 .. 3;<br />
domain<br />
comm is ;<br />
var<br />
v in donnee;<br />
c, c1 in control;<br />
<br />
process2_thread2_e<br />
comm<br />
<br />
process2_thread2_start<br />
<br />
control<br />
process2_thread2_choose<br />
<br />
<br />
<br />
<br />
<br />
control<br />
process2_thread1_choose<br />
<br />
<br />
process1_thread1_process2_thread1_process2_thread2<br />
process2_thread1_e<br />
comm<br />
process2_thread1_start<br />
process2_thread2_restart<br />
<br />
process2_thread1_restart<br />
<br />
control<br />
<br />
process2_thread1_reset<br />
<br />
control<br />
process2_thread2_reset<br />
process2_thread2_end<br />
control<br />
control<br />
process2_thread1_end<br />
FIG. VII.5 – Réseau de Petri borné modélisant une architecture de haut niveau correspondant au<br />
listing VII.2, page 131<br />
132 c○ 2007 Thomas Vergnaud