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 />
Deux nouveaux types d’interfaces doivent être ajoutés :<br />
– requires subprogram access<br />
– provi<strong>des</strong> subprogram access<br />
Ces deux nouveaux éléments d’interface ont <strong>la</strong> même syntaxe que les accès aux bus ou aux<br />
données. Ils s’appliquent aux sous-programmes, thread, processus, données et <strong>systèmes</strong>. Un sousprogramme<br />
ne peut néanmoins pas fournir d’accès.<br />
La connexion de tels interfaces est autorisée entre un type de composant et une imp<strong>la</strong>ntation.<br />
Par exemple, une imp<strong>la</strong>ntation de composant peut être connectée à une interface associée au type<br />
de composant correspondant. Il est ainsi possible de connecter différentes imp<strong>la</strong>ntations d’un sousprogramme<br />
à une interface donnée.<br />
De <strong>la</strong> même façon, nous introduisons une construction syntaxique supplémentaire <strong>pour</strong> les<br />
séquences d’appel. Deux types d’appels sont alors possibles :<br />
– subprogram<br />
– subprogram access<br />
De cette façon, nous différencions le paradigme d’appel « traditionnel » de celui que nous<br />
ajoutons.<br />
Application<br />
La nouvelle syntaxe facilite <strong>la</strong> sélection du sous-programme qui doit effectivement être appelé,<br />
comme l’illustre le listing III.12. La sélection du sous-programme à appeler ne se fait plus<br />
au niveau de l’imp<strong>la</strong>ntation du thread mais au moment de son instanciation au sein du processus.<br />
La sélection du sous-programme devient donc un paramètre de configuration, et plus une caractéristique<br />
intrinsèque du thread.<br />
1 thread thread_a<br />
2 features<br />
3 p : requires subprogram access sp2;<br />
4 end thrad_a;<br />
5<br />
6 subprogram sp_a end sp_a;<br />
7<br />
8 subprogram sp_a.impl1 end sp_a.impl1;<br />
9 subprogram sp_a.impl2 end sp_a.impl2;<br />
10<br />
11 thread implementation thead_a.impl<br />
12 calls {<br />
13 appel1 : subprogram access p;<br />
14 };<br />
15 end thread_a.impl;<br />
16<br />
17 process processus_a<br />
18 end processus_a;<br />
19<br />
20 process implementation processus_a.config1<br />
21 subcomponents<br />
22 sp1 : subprogram sp_a;<br />
23 thread1 : thread thread_a.impl;<br />
24 connections<br />
25 subprogram access sp1 -> thread1.p;<br />
48 c○ 2007 Thomas Vergnaud