4.3 Ad´equation du temps causal et du temps r´eel
4.3.3 Ex´ecution des tM-nets
L’ex´ecution de l’automate d’un tM-net est relativement simple. La machine d’ex´ecution
tire des transitions et les ex´ecute. Plus pr´ecis´ement, ´etant donn´e M0 l’´etat courant de
l’automate, la machine ex´ecute des cycles dont chacun correspond aux ´etapes suivantes :
1. M´emoriser les demandes de communications sur ses ports d’entr´ee.
2. Choisir une transition (M0, M00) ∈TA qui maximise le nombre d’actions d’entr´ee
qui peuvent ˆetre servies (le crit`ere de maximalit´e est d´efini ci-dessous). Cette
tran-sition porte l’´etiquette (λ(U1), . . . , λ(Uk)).
3. Pour chaque valeur de i entre 1 et k (dans l’ordre) et pour chaque action a(v) ∈
λ(Ui) (dans un ordre al´eatoire) :
• si a∈O, ´ecrirev sur le port de sortie a;
• si a ∈ I et que v est la valeur pr´esente sur le port d’entr´ee a, marquer la
communication sura «accept´ee»;
• si a∈I mais quev diff`ere de la valeur demand´ee sur le port ou qu’aucune
valeur n’y est demand´ee, marquer la communication sur a« en erreur».
4. Marquer«refus´ee»chaque communication m´emoris´ee `a l’´etape 1 qui n’a pas d´ej`a
´et´e marqu´ee« accept´ee»ou « en erreur»`a l’´etape 3.
5. M´emoriser le nouvel ´etat de l’automate et attendre le d´ebut du cycle suivant.
Nous observons que la dur´ee des cycles peut ˆetre born´ee et donc fix´ee puisque toutes les
´etapes sont born´ees : le nombre de ports, le nombre de transitions parmi lesquelles choisir,
le nombre de steps `a ex´ecuter et le nombre d’actions dans chaque step (puisque les r´eseaux
sont finis). La transition de tic a disparu de l’automate, mais nous nous sommes assur´es
qu’elle ´etait franchie dans le premier step de chaque transition de l’automate, elle est donc
virtuellement ex´ecut´ee au d´ebut de chaque cycle de la machine (sauf ´eventuellement le
tout premier) et donc ses occurrences sont r´eguli`eres puisque les cycles ont une dur´ee fixe.
Il nous reste `a d´efinir le crit`ere de choix d’une transition. Le but est de servir un
maximum de ports d’entr´ee tout en minimisant le nombre d’erreurs. Lorsque plusieurs
choix sont possibles, nous faisons appel `a l’ordre sur les actions pour choisir. La strat´egie
de choix peut ˆetre d´ecrite de la fa¸con suivante : pour chaque actionai, de la plus grande
`a la plus petite selon l’ordre surI,
• si une communication est demand´ee sur ai et qu’elle peut ˆetre servie par une
transition de l’automate, ´eliminer toutes les transitions qui ne permettent pas de
servir la communication sur ai;
• si aucune communication n’est demand´ee sur ai et qu’il existe une transition ne
comportant pas d’action ai, ´eliminer toutes les transitions qui serventai.
Cela revient `a servir les communications demand´ees par ordre de priorit´e. Lorsqu’une
communication n’est pas demand´ee, nous ´evitons de plus de mettre en erreur les ports
prioritaires plutˆot que de servir une communication de moindre priorit´e.
D’autres strat´egies peuvent ˆetre envisag´ees, mais en toute g´en´eralit´e, il n’en existe pas
qui soit satisfaisante quand le tM-net est arbitraire. Cependant, nous pouvons facilement
constater que la strat´egie choisie ici garantit que si un tM-net est r´eactif par rapport `a
une action, celle-ci est toujours servie et n’est jamais mise en erreur (sauf ´eventuellement
lors du dernier cycle de la machine qui correspond `a son arrˆet). Comme la r´eactivit´e est
facile `a obtenir, nous consid´erons que notre strat´egie est satisfaisante.
5
Efficacit´e de l’approche
causale du temps
Ce chapitre s’attache `a l’´etude de la pertinence et de l’efficacit´e de l’approche causale
du temps en pratique. Pour cela, nous ´etudions un exemple de passage `a niveau pour
lequel nous r´ealisons plusieurs sp´ecifications que nous v´erifions avec diff´erents outils
logiciels. Les r´esultats montrent que l’utilisation d’une horloge causale peut s’av´erer plus
efficace que l’utilisation d’un mod`ele int´egrant le temps de fa¸con explicite ; cependant,
cette efficacit´e est d´ependante de la taille des constantes utilis´ees comme contraintes
temporelles, ce qui devra ˆetre r´esolu `a l’avenir. Nous constatons aussi que notre approche
est assez simple `a mettre en œuvre et plutˆot intuitive.
5.1 Un passage `a niveau
Nous consid´erons un syst`eme de passage `a niveau ayant les caract´eristiques suivantes :
• il comporten voies parall`eles ; sur chacune d’elle peut circuler un train ;
• l’approche d’un train d´eclenche un signalapp; lorsque le train s’´eloigne, un
cap-teur ´emet le signalexit; ces signaux ne sont pas diff´erenci´es selon les trains ;
• les voies croisent une route gard´ee par une paire de barri`eres, celle-ci peut recevoir
deux signaux, down et up, qui commandent respectivement sa fermeture et son
ouverture ;
• lorsque le signalapp est lev´e, le train met ensuite entreametaM unit´es de temps
pour atteindre le niveau des barri`eres ; il met ensuite entre em et eM unit´es de
temps pour d´eclencher le signal exit;
• les barri`eres mettent entregm etgM unit´es de temps pour se fermer ou s’ouvrir.
Le probl`eme est de construire un contrˆoleur dont le rˆole est de lire les signaux r´esultant
du passage des trains devant leurs capteurs afin de commander l’ouverture et la fermeture
des barri`eres, tout en respectant les contraintes suivantes :
• le contrˆoleur r´eagit au minimum en cm et au maximum en cM unit´es de temps ;
• la condition de s´ecurit´e est toujours v´erifi´ee : si un train se trouve entre les
barri`eres, alors celles-ci sont forc´ement ferm´ees ;
Pour une sp´ecification satisfaisante, nous devrions aussi ajouter une condition de
dis-ponibilit´e sp´ecifiant que si aucun signal app n’a eu lieu depuis un certain temps, les
barri`eres doivent ˆetre ouvertes. On pourrait la v´erifier au moyen de formules de logique
temporelle ou bien par l’ajout de r´eseaux (et d’automates temporis´es) de test permettant
de d´etecter son non respect lors de l’ex´ecution. Notre ´etude de cet exemple n’a pas pour
but de sp´ecifier un bon syst`eme mais de v´erifier la pertinence et l’efficacit´e de l’approche
causale. Nous nous en tenons donc `a cette version minimale.
Dans le document
Modèles composables et concurrents pour le temps-réel
(Page 79-83)