next up previous contents
suivant: Résumé monter: C. Exécution d'une configuration précédent: C.4 Algorithme d'exécution   Table des matières

Sous-sections

C.5 L'environnement

Le modèle d'exécution que nous avons décrit est particulièrement bien adapté à la description de traitements de données déterministes. Cependant, un système interactif comporte souvent une part de non-déterminisme, en particulier du non-déterminisme temporel résultant de processus asynchrones, qui « prennent du temps ». En outre, il est évident que notre système nécessite d'être alimenté en informations, en particulier celles provenant des dispositifs d'entrée, et doit également « agir » à l'extérieur du système, soit sur l'application contrôlée, soit pour générer un retour utilisateur (feedback). Tous ces mécanismes ne peuvent être pris en compte sans inclure dans le modèle la notion d'environnement, système externe à la machine réactive.

Nous évoquerons dans cette partie comment nous pouvons, dans notre modèle et dans une éventuelle implémentation, prendre en compte cette communication, puis nous aborderons un autre problème lié à l'environnement, celui de l'hypothèse réactive.


C.5.1 Communication avec l'environnement: non-déterminisme et effets de bord

Lorsqu'un dispositif ne possède pas d'entrées ou de sorties implicites, son comportement lors de l'exécution est entièrement déterminé par un processeur opérant uniquement sur les signaux d'entrée et de sortie liés aux slots du dispositif. Dans le cas contraire, le dispositif communique avec l'environnement, et ce processeur ne peut décrire intégralement son comportement.

Figure: Communication entre un processeur et un système extérieur à la configuration, appelé environnement.
\begin{figure}
\begin{center}
\includegraphics[scale=0.6]{proc_env}
\end{center}
\end{figure}

Nous pouvons cependant généraliser notre modèle déterministe en supposant que l'environnement est accessible à travers deux signaux valués (dont les types peuvent bien sûr être complexes): le signal valué $ e_{ext}$ et le signal valué $ s_{ext}$. Le dispositif interagit alors avec l'environnement en lisant $ e_{ext}$ (s'il comporte des entrées implicites) et en écrivant dans $ s_{ext}$ (s'il comporte des sorties implicites). Le comportement d'un tel dispositif peut alors être décrit avec un processeur $ P_{E, S}$ défini sur les signaux valués relatifs aux slots auxquels on ajoute les signaux valués de l'environnement (figure C.5):

$ E = E_{slots} \cup \{e_{ext}\} \\
S = S_{slots} \cup \{s_{ext}\}$

Notre modèle d'exécution décrit le comportement des configurations d'entrée, mais non le comportement de l'environnement (qui, par définition, ne fait pas partie de notre système), ni les mécanismes de communication avec cet environnement. En particulier, les variables associées à $ e_{ext}$ et $ s_{ext}$ ne sont pas explicites et ni leur type ni leur valeur ne sont connues: elles permettent uniquement d'évoquer, dans notre modèle, la présence de non-déterminisme (pour le premier) et d'effets de bord (pour le second).

Dans une implémentation concrète, la communication avec l'environnement (librairies et parties du code externes à la machine réactive) sera implémentée librement dans la fonction de mise à jour, mais devront cependant être explicitement déclarés par la présence d'entrées et de sorties implicites. La présence d'entrées implicites implique souvent un dispositif actif, qui a besoin de lire l'environnement même en l'absence de signaux en entrée: il y a donc un sens à ce qu'un dispositif à entrées implicites soit actif par défaut. La présence de sorties implicites n'a quant à lui pas d'influence sur les mécanismes d'exécution, mais peut apporter (tout comme les entrées implicites) une information utile sur la sémantique du dispositif dans une éventuelle représentation graphique.

C.5.2 Ouverture non-déterministe des dispositifs

Nous avons décrit la phase d'ouverture des dispositifs comme un mécanisme permettant de créer des processeurs de manière déterministe. Cependant, les dispositifs comportant des entrées ou des sorties implicites ont souvent besoin d'allouer au sein de l'environnement des ressources pour préparer leur exécution. Ces mécanismes d'initialisation peuvent, de manière non-déterministe, réussir ou échouer (dans le cas des dispositifs sans entrées ou sorties implicites, nous supposerons qu'elle réussit toujours).

Lorsque l'ouverture d'un dispositif $ d$ a réussi, celui-ci retourne, comme décrit précédemment, un Processeur construit à partir de sa fonction d'exécution $ P = \varepsilon(\Pi(d))$. Dans le cas contraire, il retourne le Processeur nul décrit par la fonction $ P_\varnothing$:

$ P_\varnothing: h^t(E) \mapsto \varnothing
$


C.5.3 L'hypothèse réactive dans ICoM

Dans une implémentation concrète, il est évident que le traitement de l'information (effectué par l'ensemble des processeurs) prend un certain temps, ainsi que la communication entre ces processeurs (pris en charge par la machine réactive). En pratique, cette dernière est souvent négligeable par rapport aux traitements de données. La durée d'un tick dans une machine réactive est par conséquent au moins égale à la somme des durées des traitements effectués par les processeurs. En outre, le temps de réponse d'une machine réactive augmente linéairement avec la taille d'une configuration d'entrée.

Un modèle réactif ne reste valide que tant que l'hypothèse du synchronisme parfait est vérifiée, c'est-à-dire si la machine réactive réagit plus vite que l'environnement. Dans notre modèle, le signal valué $ e_{ext}$ est synchronisé sur l'horloge de la machine réactive. En supposant que $ e_{ext}$ « lit » des signaux que l'environnement lui envoie selon son horloge propre, l'hypothèse réactive est vérifiée si durant chaque tick, au plus un signal est émis par l'environnement.

$ e_{ext}$ décrit en général l'information provenant d'un dispositif d'entrée concret. En supposant, pour simplifier, que ce dispositif concret émet des informations à fréquence constante, la machine réactive doit réagir au moins à la même fréquenceC.1. Pour une configuration d'entrée comportant plusieurs de ces dispositifs, la fréquence de réaction de la machine réactive doit être au moins égale à celle du dispositif émettant à la plus haute fréquence.

 


UN MODÈLE D'INTERACTION EN ENTRÉE POUR DES SYSTÈMES


INTERACTIFS MULTI-DISPOSITIFS HAUTEMENT CONFIGURABLES


Pierre DRAGICEVIC


Doctorat de l'Université de NANTES








next up previous contents
suivant: Résumé monter: C. Exécution d'une configuration précédent: C.4 Algorithme d'exécution   Table des matières
Pierre Dragicevic 2005-07-22