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

Sous-sections

C.2 Définitions préalables

Figure: Schéma d'un processeur.
\begin{figure}
\begin{center}
\includegraphics[scale=0.7]{proc}
\end{center}
\end{figure}

Le comportement en exécution d'une configuration d'entrée est essentiellement décrit par des processeurs. Un processeur est une fonction qui aux valeurs prises par les slots d'entrée associe des valeurs aux slots de sortie (figure C.1). Lorsqu'une configuration est lancée, des structures sont allouées pour stocker la valeur de chaque slot, et chaque dispositif crée un processeur en fonction de son paramétrage, selon sa fonction d'exécution $ \varepsilon$.

Les valeurs manipulées par les processeurs sont des valeurs de variables classiques associées à un booléen appelé signal: il s'agit de signaux valués. Un signal valué est propagé aux autres processeurs seulement si le signal est présent (booléen à vrai). Des modifications de la valeur d'une variable sont nécessairement propagées, mais une valeur non modifiée peut également être propagée. Un signal valué peut par conséquent représenter aussi bien un état qu'un événement.

Dans cette section, nous introduisons les définitions relatives aux signaux valués, aux processeurs, et aux fonctions d'exécution.

C.2.1 Signaux valués

Une variable est définie par ensemble appelé type et un élément de cet ensemble appelé valeur:

$ V = \langle X, x \rangle , x \in X$

Un signal valué est la combinaison d'une variable et d'un booléen appelé signal:

$ S = \langle V, s \rangle = \bigl\langle \langle X, x \rangle , s \bigr\rangle
, x \in X, s \in \{vrai, faux\}$

La valeur d'un signal valué est un couple formé par la valeur $ x$ de sa variable $ V$ (appelée valeur de variable de $ S$) et la valeur de son signal:

$ v = \langle x, s \rangle$

L'ensemble des valeurs possibles de $ S$, noté $ \mathcal{V}(S)$, est $ \mathcal{V}(S) = \{ v \}_{v \in X\times\{vrai, faux\}}$.

C.2.2 Historiques

Figure: Évolution possible d'un signal valué au cours du temps.
\begin{figure}
\begin{center}
\includegraphics[scale=0.55]{signal}
\end{center}
\end{figure}

La valeur d'un signal valué évolue au cours du temps, que nous supposons discret et représenté par un entier strictement positif. Nous noterons $ v^t =
\langle x^t, s^t \rangle$ la valeur d'un signal valué à l'instant $ t \in
\mathbbm{N}^*$.

Un signal valué évolue en accord avec la condition suivante:

$ \forall t \in \mathbbm{N}^*, x^{t+1} \neq x^t \Rightarrow s^{t+1} = vrai$

Autrement dit, le changement de la valeur de variable est une condition suffisante (mais non nécessaire) pour que le signal soit à vrai. En outre, un signal valué est considéré comme n'ayant pas de valeur de variable tant que son signal n'a pas reçu la valeur vrai au moins une fois. La figure C.2 illustre une évolution possible d'un signal valué au cours du temps, obéissant à ces deux conditions.

Un historique d'un signal valué $ S$ à l'instant $ t$, noté $ h^t(S)$, décrit une évolution de sa valeur depuis $ t=1$ jusqu'à $ t$ strictement positif:

$ h^t(S) = \langle v^1, \dots, v^t \rangle$

La condition de changement de valeur de variable énoncée plus haut est traduite par la définition de l'ensemble des historiques possibles $ \mathcal{H}(S)$. La condition d'absence de valeur de variable est pour sa part traduite par la définition de la relation d'équivalence $ \equiv$ entre deux historiques de $ \mathcal{H}(S)$.

L'ensemble des historiques possibles $ \mathcal{H}(S)$ d'un signal valué $ S$ est:

$ \mathcal{H}(S) = \bigl\{ \langle v^1, \dots, v^t \rangle \bigr\}_{t \in
\math...
... v^i \in X_i\times\{vrai, faux\}, x^{i+1} \neq x^i \Rightarrow
s^{i+1} = vrai}$

La relation d'équivalence $ \equiv$ entre deux historiques de $ \mathcal{H}(S)$ est définie comme suit:

Soient $ h$    et $ h' \in \mathcal{H}(S). \\
h \equiv h'$    ssi$ \\
h = h'$    ou si $ h$    et $ h'$    sont de la forme: $ \\
h = \bigl\langle \langle x, faux \rangle, \dots, \langle x, faux \rangle,...
...\rangle, \dots, \langle x', faux \rangle,
v^{k}, \dots, v^t \bigr\rangle \\
$

C.2.3 Signaux valués multiples

Par commodité pour la suite, nous étendrons les définitions précédentes aux signaux valués multiples du type $ S = \langle S_1, \dots, S_n \rangle$:

Les valeurs de $ S$ sont de la forme $ v = \langle v_1, \dots, v_n
\rangle$. L'ensemble des valeurs possibles de $ S$ est $ \mathcal{V}(S) =
\bigl\{ \langle v_1, \dots, v_n \rangle \bigr\}_{v_i \in X_i\times\{vrai,
faux\}}$

Les historiques $ h^t(S)$ de $ S$ sont de la forme:

$ h^t(S) = \langle h^t(v_1), \dots, h^t(v_n) \rangle = \bigl\langle \langle
v_1^1, \dots, v_1^t \rangle,
\dots, \langle v_n^1, \dots, v_n^t \rangle \bigr\rangle$

L'ensemble des historiques possibles $ \mathcal{H}(S)$ de $ S$ est:

$ \mathcal{H}(S) = \bigl\{ \bigl\langle \langle v_1^1, \dots, v_1^n \rangle,
\d...
...in X_i\times\{vrai, faux\}, x_i^{j+1} \neq x_i^j
\Rightarrow s_i^{j+1} = vrai}$

La relation d'équivalence $ \equiv$ entre deux historiques de $ \mathcal{H}(S)$ est définie comme suit:

Soient $ h$    et $ h' \in \mathcal{H}(S)$   , avec $ h = \langle h_1, \dots, h_n \rangle$    et $ h' = \langle h_1', \dots, h_n' \rangle. \\
h \equiv h'$    ssi $ \forall i \in [1, n]$   , $ h_i \equiv h'_i
$


C.2.4 Processeurs

Un processeur est une fonction qui à chaque historique d'un ensemble de signaux valués nommés signaux d'entrée associe des valeurs à d'autres signaux valués, nommés signaux de sortie.

Soit $ P_{E, S}$ un processeur défini sur les signaux d'entrée $ E = \langle e_1,
\dots, e_m \rangle$ et les signaux de sortie $ S = \langle s_1, \dots, s_n
\rangle$. La fonction $ P_{E, S}$ est définie comme suit:

$ P_{E, S}: \left\vert\begin{array}{l}
\mathcal{H}(E) \rightarrow \mathcal{V}(S) \\
h^t(E)
\mapsto
v(S)
\end{array}\right.
$

Cette fonction vérifie en outre la condition d'absence de valeur énoncée précédemment, c'est-à-dire qu'elle « ne peut pas lire » les variables qui n'ont pas encore reçu de signal. Cette condition s'énonce ainsi:

$ \forall h$$ \text { et } h' \in \mathcal{H}(E) \text{, } h \equiv h' \Rightarrow P_{E, S}(h) = P_{E, S}(h') \\
$

Un processeur $ P_{E, S}$ est dit passif si en plus, il ne peut pas générer de signal (et à fortiori de valeur) sans en recevoir, ce qui se traduit par la condition suivante:

$ \forall h \in \mathcal{H}(E) \ $   tel que $ h = \Bigl\langle \bigl\langle v_1^1, \dots, v_1^{t-1}, \langle x_1^t, faux \ra...
...n^1, \dots, v_n^{t-1}, \langle x_n^t, faux \rangle \bigr\rangle \Bigr\rangle \ $   l'image de $ h$    est de la forme $ P_{E, S}(h) = \bigl\langle \langle y_1, faux \rangle, \dots, \langle y_m, faux \rangle \bigr\rangle
$

Dans le cas contraire, le processeur est dit actif.

C.2.5 Fonction d'exécution d'un dispositif

Comme nous l'avons vu en guise d'introduction, le comportement en exécution d'un dispositif est décrit par un processeur qui opère sur les signaux d'entrée et de sortie associés à ses slots d'entrée et de sortie (ces signaux valués sont créés lors du lancement de la configuration, nous le verrons dans la section suivante).

Le comportement en exécution dépend uniquement des valeurs prises par les paramètres du dispositif, ainsi que de ses types connectés s'il est mutable. À chaque paramétrage ( $ \rightarrow$ section B.2.3) d'un dispositif correspond par conséquent un processeur. La correspondance paramétrage/processeur est décrite par la fonction d'exécution $ \varepsilon$ du dispositif, qui à chacun de ses paramétrages possibles associe un processeur $ P$:

$ \varepsilon: \Pi(d) \mapsto P
$


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