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 ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<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 />
Les threads AADL sont les éléments actifs de l’architecture. Pour rendre compte de cet aspect,<br />
leur traduction en réseau de Petri fait apparaître un jeton représentant le contrôle d’exécution du<br />
thread. Ce jeton de contrôle constitue le marquage initial d’une p<strong>la</strong>ce associée au thread. La modélisation<br />
du circuit du jeton de contrôle dépend de <strong>la</strong> politique de déclenchement du thread. Les<br />
threads périodiques, apériodiques et sporadiques s’exécutent en boucle. Ils consomment donc leur<br />
jeton de contrôle et le restituent dans <strong>la</strong> p<strong>la</strong>ce initiale (figure VII.2(b)). Ces trois types de threads<br />
se modélisent de <strong>la</strong> même façon alors qu’ils correspondent à <strong>des</strong> politiques de déclenchement différentes,<br />
comme nous l’avons étudié au chapitre VI. Ceci est dû au fait que notre modélisation en<br />
réseau de Petri ne tient pas compte <strong>des</strong> propriétés temporelles de l’architecture : nous ignorons<br />
donc les situations dans lesquelles un thread devrait se déclencher alors que les données entrantes<br />
ne sont pas disponibles.<br />
Les threads s’exécutant en tâche de fond ne bouclent pas. Leur traduction en réseau de Petri ne<br />
doit donc pas restituer le jeton de contrôle, qui est consommé définitivement (figure VII.2(c)). Pour<br />
<strong>des</strong> raisons de régu<strong>la</strong>rité dans <strong>la</strong> représentation en réseau de Petri, tous les threads ont une structure<br />
semb<strong>la</strong>ble ; <strong>la</strong> transition de retour <strong>des</strong> threads périodiques trouvera par ailleurs sa justification dans<br />
<strong>la</strong> section VII-5.3.1.<br />
La traduction d’une <strong>des</strong>cription AADL en réseau de Petri a <strong>pour</strong> objet l’analyse <strong>des</strong> flux de<br />
données et d’exécution. Par conséquent, seuls les composants ayant un rôle dans ces flux doivent<br />
apparaître.<br />
Règle VII.7 (Traduction <strong>des</strong> processus et <strong>des</strong> <strong>systèmes</strong>)<br />
Un processus ou un système contenant <strong>des</strong> sous-composants n’est pas traduit en réseau<br />
de Petri. Seuls ses sous-composants sont transcrits dans le réseau de Petri. À l’inverse, un<br />
processus ou un système dont l’imp<strong>la</strong>ntation n’est pas spécifiée apparaît dans le réseau<br />
de Petri, assimilé à un thread.<br />
Le réseau de Petri correspondant à une architecture AADL de haut niveau est <strong>la</strong> mise à p<strong>la</strong>t<br />
de toutes les instances <strong>des</strong> threads, qui représentent les entités <strong>réel</strong>lement impliquée dans les flux<br />
d’exécution et de données.<br />
Les processus et les <strong>systèmes</strong> sans sous-composants sont traduits dans le réseau de Petri. Dans<br />
<strong>la</strong> mesure où aucune information n’est disponible quant à leur structure interne, nous pouvons<br />
considérer qu’ils contiennent un thread ; nous les assimilons donc à ce thread supposé afin de les<br />
intégrer dans <strong>la</strong> modélisation du flux d’exécution. De tels <strong>systèmes</strong> ou processus sont donc traduit<br />
par un sous-réseau de Petri tel que représenté sur <strong>la</strong> figure VII.2(b).<br />
VII-4.2 Traduction <strong>des</strong> connexions<br />
Les connexions AADL se traduisent de différentes façon, selon leur nature. Nous traduisons les<br />
connexions AADL représentant une transmission de données par <strong>des</strong> transitions. Contrairement<br />
aux transitions <strong>des</strong> composants, ces transitions ne correspondent pas à une transformation <strong>des</strong><br />
données ; elles permettent simplement d’exprimer <strong>la</strong> coordination de <strong>la</strong> transmission <strong>des</strong> données.<br />
Par rapport à ce que nous avons indiqué en section VII-4.1.2, nous considérons <strong>des</strong> connexions<br />
directes entre les différentes entités de haut niveau de plus fine granu<strong>la</strong>rité – c’est-à-dire les threads<br />
AADL ou les thread implicites correspondant aux processus ou aux <strong>systèmes</strong>. Comme les différents<br />
composants englobants ne sont pas traduits par les construction en réseau de Petri, les<br />
différents ports <strong>des</strong> composants sont considérés comme étant directement reliés par une seule<br />
connexion, au lieu d’une suite de connexions point-à-point comme c’est le cas dans les <strong>des</strong>criptions<br />
AADL.<br />
128 c○ 2007 Thomas Vergnaud