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.

Chapitre VII – Vérification formelle de <strong>la</strong> structure <strong>des</strong> applications<br />

L’ensemble <strong>des</strong> connexions entre les paramètres <strong>des</strong> sous-programmes est rassemblé dans une<br />

seule transition, que nous appelons sp1_sp2 d’après les deux appels de sous-programme qu’elle<br />

connecte. Cette transition prend en charge à <strong>la</strong> fois <strong>la</strong> connexion AADL entre les paramètres <strong>des</strong><br />

sous-programmes et <strong>la</strong> circu<strong>la</strong>tion du jeton de contrôle. La p<strong>la</strong>ce de sortie sp1_s est initialisée à<br />

une valeur invalide (u), qui ne peut pas franchir <strong>la</strong> connexion sp1_sp2. Ce jeton de valeur invalide<br />

modélise le fait qu’à l’état initial, <strong>la</strong> valeur de sortie de sp1 est indéterminée. Lorsque le sousprogramme<br />

sp1 produit un résultat, le jeton du résultat remp<strong>la</strong>ce le jeton invalide et peut donc être<br />

transmis au sous-programme sp2. La valeur de sortie stockée dans sp1_s correspond correspond à<br />

une variable, et doit donc pouvoir être lue plusieurs fois. C’est <strong>pour</strong>quoi le jeton est réinjecté dans<br />

<strong>la</strong> p<strong>la</strong>ce sp1_s lorsqu’il traverse <strong>la</strong> transition sp1_sp2.<br />

VII-5.3 <strong>Modélisation</strong> <strong>des</strong> séquences d’appel de sous-programmes<br />

Les séquences d’appel d’un sous-programme regroupent les appels de sous-programmes <strong>pour</strong><br />

constituer <strong>des</strong> ensembles pouvant être manipulés par une <strong>des</strong>cription comportementale éventuellement<br />

associée au sous-programme considéré. Leur traduction en réseau de Petri doit donc faire<br />

apparaître une structure d’encapsu<strong>la</strong>tion.<br />

Règle VII.16 (Traduction <strong>des</strong> séquences d’appel)<br />

Une séquence d’appel seq est traduite par deux transitions seq_begin et seq_end qui<br />

jouent le rôle de connexions vers le premier appel et depuis le dernier appel de sousprogramme<br />

de <strong>la</strong> séquence.<br />

De <strong>la</strong> même façon que <strong>pour</strong> les connexions, les transitions <strong>des</strong> séquences synchronisent les<br />

différents jetons issus <strong>des</strong> paramètres du sous-programme englobant, ainsi que le jeton de contrôle<br />

du thread. Cette synchronisation correspond aux spécifications d’exécutif que nous avons établies<br />

au chapitre IV : un thread a besoin de toutes ses données <strong>pour</strong> s’exécuter ; cette exigence est<br />

retranscrite dans les séquences d’appel.<br />

L’appel d’un sous-programme distant mobilise à <strong>la</strong> fois le jeton de contrôle du thread local<br />

effectuant l’appel et le jeton de contrôle du thread distant exécutant effectivement le sousprogramme.<br />

Un appel distant correspond donc à une séquence d’appel particulière au niveau du<br />

thread distant. Cette séquence n’utilise aucun paramètre ; les transitions de début et de fin ne<br />

consomment et ne produisent que le jeton de contrôle du thread distant.<br />

VII-5.3.1 Agencement <strong>des</strong> séquences d’appels<br />

D’après les spécifications d’exécutif que nous avons établies, un sous-programme AADL peut<br />

contenir plusieurs séquences d’appels. Un thread peut également avoir plusieurs séquences : une<br />

séquence « normale » et différentes séquences correspondant aux sous-programmes dont l’accès<br />

est fourni <strong>pour</strong> constituer <strong>des</strong> appels distants.<br />

Séquences « normales »<br />

Les séquences « normales » correspondant à un traitement <strong>des</strong> paramètres ou <strong>des</strong> ports constituent<br />

un mécanisme séparés <strong>des</strong> séquences correspondant aux sous-programmes appelés à distance.<br />

Ces deux types de séquences ne peuvent pas être mé<strong>la</strong>ngés lors d’un même cycle d’exécution.<br />

c○ 2007 Thomas Vergnaud 135

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

Saved successfully!

Ooh no, something went wrong!