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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

15 end sspg_b;<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.4 – Description d’un sous-programme avec deux séquences d’appel, correspondant au<br />

réseau de Petri de <strong>la</strong> figure VII.8(a)<br />

Le listing VII.4 décrit un sous-programme possédant deux séquences d’appel seq1 et seq2.<br />

Chaque séquence appelle un seul sous-programme, qui prend un paramètre en entrée et ne rend<br />

rien en sortie. La traduction en réseau de Petri est illustrée sur <strong>la</strong> figure VII.8(a). Nous voyons que<br />

les deux séquences peuvent s’exécuter dans un ordre arbitraire, un nombre quelconque de fois.<br />

La figure VII.8(b) modélise le comportement que nous souhaitons appliquer au sous-programme :<br />

nous voulons d’abord exécuter <strong>la</strong> séquence seq1 puis <strong>la</strong> séquence seq2, puis terminer l’exécution<br />

du sous-programme.<br />

La figure VII.8(c) est le résultat de <strong>la</strong> fusion du réseau issu de <strong>la</strong> <strong>des</strong>cription AADL et du<br />

réseau comportemental. Nous voyons que les transitions seq1 et seq2 sont fusionnées avec les<br />

sous-réseaux de séquences correspondantes ; les p<strong>la</strong>ces begin et end sont connectée à <strong>la</strong> transition<br />

init <strong>pour</strong> que le réseau du sous-programme puisse contrôler le sous-réseau comportemental.<br />

VII-7 Propriétés étudiées sur l’architecture<br />

La traduction d’une modélisation AADL en réseau de Petri permet d’extraire les flux d’exécution<br />

et de les représenter dans un formalisme facilitant leur analyse. Il est possible d’utiliser<br />

les formules de logique temporelle afin de vérifier certains comportements sur l’architecture complète.<br />

Ces vérifications sont spécifiques à <strong>la</strong> modélisation considérée, et notamment dépendent a<br />

priori <strong>des</strong> modélisations comportementales fournies <strong>pour</strong> les différents composants.<br />

Parallèlement, <strong>la</strong> vérification de certaines caractéristiques de l’architecture peut être effectuée<br />

systématiquement. Ces vérifications concernent <strong>des</strong> propriétés structurelles concernant <strong>la</strong> viabilité<br />

<strong>des</strong> flux d’exécution ; par exemple, nous voulons systématiquement nous assurer que <strong>la</strong> construction<br />

architecturale ne fait pas apparaître de blocage dans les flux d’exécution.<br />

Le réseau de Petri généré à partir d’une <strong>des</strong>cription AADL modélise <strong>la</strong> circu<strong>la</strong>tion <strong>des</strong> données<br />

et <strong>des</strong> flux d’exécution. Nous pouvons donc l’exploiter afin d’analyser les éventuels dysfonctionnements<br />

dans l’exécution de l’architecture.<br />

Un dysfonctionnement dans l’architecture correspond à un arrêt de <strong>la</strong> circu<strong>la</strong>tion <strong>des</strong> données,<br />

et peut se manifester de plusieurs façons :<br />

– les communications entre les différents threads ne sont pas coordonnées ;<br />

– l’absence d’une donnée dans l’exécution <strong>des</strong> séquences d’un thread ;<br />

– <strong>la</strong> « famine » d’un thread ;<br />

– le blocage de l’exécution d’un thread ;<br />

– l’utilisation de données dont <strong>la</strong> valeur n’est pas déterministe.<br />

L’apparition de ces situations dans l’architecture peut être traduite par <strong>des</strong> propriétés structurelles<br />

sur le réseau ou <strong>des</strong> formules de logique temporelle. Dans <strong>la</strong> suite nous présentons les<br />

différentes formules correspondantes.<br />

VII-7.1 Cohérence <strong>des</strong> communications<br />

Nous avons vu en section VII-4.2.3 que les réseaux de Petri que nous construisons sont censés<br />

être bornés. Certaines configurations architecturales conduisent cependant à une surproduction de<br />

jetons qui ne peut pas être régulée par <strong>la</strong> boucle de rétroaction. Le listing VII.5 est un exemple<br />

d’une telle configuration ; <strong>la</strong> figure VII.9 représente de réseau de Petri correspondant.<br />

142 c○ 2007 Thomas Vergnaud

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

Saved successfully!

Ooh no, something went wrong!