• Aucun résultat trouvé

3.3 Vers un mécanisme Dynamiquement Extensible

3.3.3 Résolution d’interférences par modélisation comportementale

3.3.3.2 Les éléments du modèle utilisé

Pour pouvoir gérer les interférences apparues à l’issue de l’utilisation des nouveaux connecteurs, nous avons besoin d’une description de leur modélisation comportementale. Un connecteur reçoit des évènements de ses port d’entrées et produit un résultat par l’envoi d’un événement sur ses ports de sortie. Un connecteur dispose d’un état interne qui évolue en fonction des évènements présentées sur ses ports d’entrée. Une séquence d’événements appliquée à l’entrée d’un connecteur conduit celui-ci à évoluer au sein d’un espace fini d’états. Ainsi, à tout moment, l’état interne du connecteur reflète un historique des événements qui se sont présentés précédemment. C’est ce mécanisme qui permet à un connecteur de produire des états de sortie différents en réponse à un même événement dont les occurrences se situent dans des moments différents. Dans notre approche, nous utilisons le modèle d’automates à états finis (AEF) qui est adapté à notre problématique. Nous avons déjà évoqué dans l’étude de l’état de l’art l’importance du modèle d’automate qui a été utilisé dans [MSA06]. Le choix de ce modèle est justifié aussi par [Arn92]. Ce modèle permet d’exprimer les relations d’ordre entre les opérations qui consistent à définir à quel moment ils peuvent s’effectuer. Ce moment correspond à un état dans l’automate. Un cas particulier d’automate est celui des automates communicants qui est

très utilisé dans les systèmes parallèles et/ou distribués. Les automates communiquent par échange de messages. Des étiquettes sont utilisées sur les transitions pour marquer l’envoi et la réception des messages. Le message peut être le nom d’un signal ; nous parlons dans ce cas de message de contrôle. Il peut spécifier aussi des paramètres, on parle alors de message de données.

Les choix d’architecture Le comportement d’un AEF peut être défini par un graphe d’états. La représentation de ce graphe dépend de l’architecture du modèle choisi : Machine de Mealy ou Machine de Moore. À titre de comparaison, la figure 3.16 présente l’architecture de ces deux modèles. Dans une machine de Mealy (figure 3.16.a) la sortie dépend de l’état courant et des entrées (la fonction F dans la figure). Une machine de Moore (partie b de la figure) est un système de transition dont les sorties ne dépendent que de l’état. Cette figure montre bien qu’une machine de Moore n’est qu’une restriction de la machine de Mealy puisque la fonction de sortie F ne reçoit plus le vecteur d’entrée E. De ce faite, les valeurs de sortie ne sont plus directement liées aux entrées et elles ne dépendent que de l’état interne de la machine. Au plan comportemental, cette restriction implique qu’il n’est plus possible, comme dans le cas de l’automate de Mealy, de conditionner directement les valeurs de sortie à celles des entrées de l’automate. Pour une machine de Mealy, la fonction G sert à calculer l’état futur en se basant sur E et l’état courant. L’état futur est enregistré dans un registre (flip flop). Pour tenir compte de l’action immédiate des entrées sur les sorties, dans une machine de Mealy, on complète parfois le diagramme de transitions de la machine en faisant figurer, en plus de la condition de transition, la valeur associée des sorties du type Mealy. Malgré cette différence entre les deux modèles, il est toujours possible de transformer un automate d’un modèle à un autre (tout problème peut être résolu par une machine de type Mealy ou Moore, indifféremment). Normalement, pour un même problème, une machine de Moore demande plus d’états que la machine de Mealy équivalente. La machine de Moore est donc potentiellement moins rapide que la machine de Mealy. Nous utilisons alors une représentation des automates selon le modèle Mealy. Le graphe d’états selon ce modèle spécifie les événements régissant les transitions entre les différents états internes de l’automate. Chaque transition est matérialisée par un arc étiqueté par deux types d’attributs binaires : d’une part, les valeurs des entrées de l’automate associées à la transition, et d’autre part, les valeurs des sorties associées à cette même transition.

FIGURE3.16 – (a) Architecture de machine de Mealy (b) Architecture d’une machine de Moore

La machine de Mealy évolue généralement selon le modèle asynchrone. Cela présente un risque d’ambiguïté dans le résultat de sortie du connecteur puisque les entrées et la sortie de ce dernier ne suivent pas la même dynamique. Ce problème est résolu par l’utilisation du modèle synchrone qui permet de maîtriser plus aisément le comportement et l’exploitation du connecteur. Le principe de la synchronisation consiste à utiliser un signal, en général périodique, appelé horloge, pour rythmer

l’évolution du système (ceci justifie l’ajout du signale ck dans la figure 3.16.a). Une machine de Mealy peut aussi présenter un comportement synchrone si on ajoute une entrée horloge. Le rôle d’une horloge dans une réalisation synchrone, est de supprimer toute possibilité d’aléas dans l’évolution de l’état. Idéalement, entre deux transitions actives de l’horloge le système est figé, en position mémoire, son état ne peut pas changer. Dans ce modèle, chaque réaction est atomique et définit un instant. Une réaction n’a pas de durée puisque sa durée réelle est retardée pour le prochain cycle d’horloge ou l’instant suivant du système. Autrement dit, les sorties sont considérées comme simultanées aux entrées qui les provoquent.

Le comportement d’un connecteur est défini par la machine de Mealy suivante : Con=≺ Q, q0, F, I, O,

T

,

L

, où Q est un ensemble fini d’états ; q0 l’état initial, F est l’en- semble des états finaux (F ⊂ Q), I est un ensemble fini d’événements d’entrée, O est l’ensemble fini d’événements de sortie.

T

⊆ Q × Q est une relation de transition et

L

est la fonction d’étique- tage des transitions. Les transitions ont la forme suivante : q−−−−−−→ qf/o1,...,On 1, où f est une fonction booléenne qui utilise uniquement les événements d’entrée et oi sont des événements de sortie.

f ::= x| f ∨ f | f ∧ f | ¯f x∈ I.

Chaque machine de Mealy peut être représentée par un graphe dirigé : les sommets du graphe sont les états de la machine, et on dessine une flèche de l’état q à l’état p étiquetée par e/s si et seulement si il existe une transition q−→ p danse/s

T

. Le comportement de nos connecteurs doit être déterministe ce qui signifie que pour tout couple < qi, qj > le choix de la transition est unique (il est indéterministe s’il existe un état qui a au moins deux transitions possibles pour un même événement d’entrée qui mènent vers deux états différents). Si q−i−−1/o→ q1 1et q−i−−1/o→ q2 2alors, q1= q2et o1= o2.

Ce modèle comportementale de connecteur va servir pour l’extension de notre mécanisme de gestion des interférences.