next up previous contents
suivant: C.5 L'environnement monter: C. Exécution d'une configuration précédent: C.3 Lancement et exécution   Table des matières

Sous-sections

C.4 Algorithme d'exécution

L'exécution est partagée entre les Processeurs qui mettent à jour leurs Valeurs de sortie, les Valeurs qui notifient la machine réactive, et enfin la machine réactive qui synchronise l'ensemble.

C.4.1 Mise à jour d'un processeur

La mise à jour d'un Processeur consiste à modifier ses valeurs de sortie, et à notifier la machine réactive parente afin que cette mise à jour soit propagée. L'ensemble de ce mécanisme est décrit par l'algorithme C.1: la procédure $ miseAJour$ définie dans la structure Processeur applique les fonctions $ calculValeur$ et $ calculSignal$ à ses Valeurs de sortie. Elle délègue les assignations finales et les notifications à la procédure $ miseAJour$ définie dans la structure Valeur. Lorsqu'un signal est présent, cette dernière appelle la procédure $ envoiSignal$ de la machine réactive, décrite dans la section suivante.


\begin{algorithm}
% latex2html id marker 13376
\caption{\small Mise à jour d'...
...nal}(valIndex)
\ENDIF
\end{algorithmic}
{\bf end proc}
\end{algorithm}

C.4.2 La boucle d'exécution

L'exécution d'une machine réactive consiste en une série d'itérations appelées ticks. Pendant un tick, tous les signaux sont propagés dans la machine réactive. La procédure tick (algorithme C.2) décrit une itération: la structure ProcInfo est parcourue dans l'ordre, et chaque processeur est mis à jour s'il est déclenché. La mise à jour d'un dispositif peut amener le déclenchement d'autres processeurs situés après lui dans la table.


\begin{algorithm}
% latex2html id marker 13380
\caption{\small Itération d'un...
...tarrow$\ vrai
\ENDFOR
\end{algorithmic}
{\bf end proc}
\end{algorithm}

Cet algorithme de propagation assure qu'à la fin d'un tick, tous les changements ont correctement été propagés, et que la mise à jour d'un dispositif n'est jamais effectuée plus d'une fois: dans la configuration-exemple de la figure C.4, quand $ B$ reçoit une valeur du dispositif actif $ A$, il attendra la mise à jour de $ C$ avant de se mettre à jour.

L'exécution d'une configuration d'entrée consiste en des appels successifs de la procédure tick. Notre modèle ne décrit pas comment ces appels sont effectués, en particulier s'ils une pause les sépare (pour laisser la main à d'autres processus ou garder une fréquence constante), ou encore s'ils sont appelés uniquement lorsque des valeurs sont présentes en entrée (interruptions matérielles).


next up previous contents
suivant: C.5 L'environnement monter: C. Exécution d'une configuration précédent: C.3 Lancement et exécution   Table des matières
Pierre Dragicevic 2005-07-22