Conception des protocoles Machines tats finis MEF l

  • Slides: 103
Download presentation
Conception des protocoles

Conception des protocoles

Machines à états finis (MEF) l Une machine à états finis (on dit parfois

Machines à états finis (MEF) l Une machine à états finis (on dit parfois automate fini), est une machine abstraite utilisée en théorie de la calculabilité et dans l'étude des langages formels. l Un automate est constitué d'états et de transitions. Son comportement est dirigé par un mot fourni en entrée l Un automate fini possède un nombre fini d'états distincts : il ne dispose donc que d'une mémoire bornée.

MEF l Une machine à états finis est constituée des : l états l

MEF l Une machine à états finis est constituée des : l états l Événements en entrée (signaux, messages) l Fonctions de Transition l Événements en sortie Événement en entrée sortie Fonction de transition État courant État suivant État

MEF- États Événements en entrée État courant l l État déterminant le comportement courant

MEF- États Événements en entrée État courant l l État déterminant le comportement courant de la machine État qu’aura la machine après le traitement d’un événement en entrée L’état suivant peut être le même que l’état courant État initial l l État suivant États prochain l l Fonction de transition État courant l l sortie État de la machine une fois crée État final l État dans lequel aucune règle de transition n’est exécutable

MEF- Transition Événements en entrée État courant sortie Fonction de transition État suivant État

MEF- Transition Événements en entrée État courant sortie Fonction de transition État suivant État l Stimulée par les événements en entrée, la MEF passe d’un état à un autre en se basant sur la fonction de transition l La fonction de transition produit la sortie et l’état prochain suivant l’état actuel et les événements en entrée l Si à un état particulier la machine n’est pas active c’est quelle attend à ce qu’une entrée réalise l’activité prochaine

MEF : représentation graphique l Sémantique d’exécution l l t est tirable si, dans

MEF : représentation graphique l Sémantique d’exécution l l t est tirable si, dans l'état initial q 1, on reçoit l'événement i, on tire la transition t, ce qui a pour effet de faire passer le système à l'état q 2= T(q 1, i) indéterminisme si deux transitions concurrentes sont tirables. Extensions l on peut étendre les automates par des variables locales, qui peuvent conditionner les franchissements de transitions. On peut également associer des délais aux transitions.

MEF déterministes et non déterministes l MEF déterministes : sont ceux où, pour chaque

MEF déterministes et non déterministes l MEF déterministes : sont ceux où, pour chaque état, il y a au plus une transition pour chaque étiquette possible. l MEF non déterministes : il peut y avoir plus d'une transition à partir d'un état donné pour une étiquette donnée. l MEF non déterministes sont habituellement utilisés en les convertissant au préalable en MEF déterministes

MEF déterministe l Formellement, une MEF déterministe (DFA) est un quintuplet : (Q, Σ,

MEF déterministe l Formellement, une MEF déterministe (DFA) est un quintuplet : (Q, Σ, T, q 0, A) l l l l un alphabet (Σ) un ensemble d'états (Q) une fonction de transition (T : Q× Σ → Q). un état de départ (q 0 Q) un ensemble d'états acceptant (A Q) La machine démarre dans l'état de départ et une séquence de symboles de son alphabet. Elle emploie la fonction de transition T pour déterminer le prochain état en utilisant l'état actuel et le symbole venant d'être lu. Si, quand elle a fini la lecture, elle est dans un état acceptant, on dit qu'elle accepte l'entrée, autrement on dit qu'elle la rejette.

MEF non déterministe l Une MEF non déterministe est un quintuplet: M = (Q,

MEF non déterministe l Une MEF non déterministe est un quintuplet: M = (Q, Σ, T, q 0, A) l l l l l un alphabet (Σ) un ensemble d'états (Q) une fonction de transition (T : Q × (Σ {ε}) → P(Q)). un état de départ (q 0 Q) un ensemble d'états acceptant (A Q) Où P(Q) est l'ensemble des parties de Q et ε, la séquence de taille nulle. La machine M démarre dans l'état de départ et reçoit en entrée une séquence w de symboles de son alphabet. Elle emploie la relation de transition T pour déterminer le ou les prochains états atteignables en utilisant les états actuellement atteignables et le symbole venant d'être lu. On dit que MEF non-déterministe M accepte l'entrée w si un des états acceptants est atteignable au terme de la lecture de l'entrée. Sinon, M rejette w.

Catégories des MEF l La machine de Mealy définie la fonction de transition et

Catégories des MEF l La machine de Mealy définie la fonction de transition et la fonction de sortie l MEF produit une sortie pour chaque transition l la sortie est déterminée par l’événement (X) et l’état (Q) l entrée/sorties sont reliées par des transitions l la machine Moore est un cas particulier de la machine de Mealy l MEF produit une sortie pour chaque état l la fonction de sortie est déterminée par l’ensemble des états, Q l états/sorties sont reliés aux états à la place des transitions

Diagrammes d’états de transition l l l Représentation visuelle d’une MEF l Identifier les

Diagrammes d’états de transition l l l Représentation visuelle d’une MEF l Identifier les états et les transitions possibles l Les cercles représentent les états l Les flèches représentent les transitions l ei sont les entrées, Si sont les sorties, (“/”) : entrée/sortie Représentation d’une MEF M par un graphe orienté G=(Q, E) Q = {q 1, q 2, . . . , qn) : ensemble de sommets représentant l’ensemble des états Q dans M e 2/s 3 q 0 e 1/s 1 e 2/s 4 q 1 e 1/s 2 l Une arête orientée représente une transition d’un état qi à l’état qj

Table d’une MEF Événements État courant en entrée État prochain Événement s en sortie

Table d’une MEF Événements État courant en entrée État prochain Événement s en sortie e 1 q 2 s 1 e 1 q 2 s 2 e 2 q 1 s 3 e 2 q 1 s 4 l Chaque ligne de la table est une combinaison unique des événements en entrée et l’état courant l Pour une définition complète d’une MEF toutes les combinaisons événement/état doivent être fournies l La table est une autre manière de représenter une MEF

Table d’une MEF : forme compacte l 1ére ligne de la table : liste

Table d’une MEF : forme compacte l 1ére ligne de la table : liste de touts les états l 1ére colonne de la table : liste de touts les événements en entrée q 1 q 2 e 1 s 1 , q 2 s 2 , q 2 e 2 s 3 , q 1 s 4 q 1 état événement

Catégories des MEF l l l MEF complètement spécifiée l Le domaine de spécification

Catégories des MEF l l l MEF complètement spécifiée l Le domaine de spécification est l’espace en entier l DA = Qx Σ MEF partielle l MEF partiellement spécifiée l domaine de spécification est une partie de l’espace l DA Qx Σ Les implémentations sont généralement modélisées par MEFC, les spécifications peuvent être des MEFC ou des MEFP (vue partielle sur le système)

MEF, MEFC l Un processus est décrit par une MEF • Les transitions associées

MEF, MEFC l Un processus est décrit par une MEF • Les transitions associées aux procédures d'échange entre processus, sont étiquetées par les messages émis ou reçus. l Le graphe des états globaux est obtenu par combinaison • des états des processus • et des files d’attente pour les communications de type FIFO, ou par fusion sur les transitions, si l’on considère des rendez-vous (rdv).

MEF, MEFC l de nombreux langages implémantent le modèle MEFC l exemple PROMELA

MEF, MEFC l de nombreux langages implémantent le modèle MEFC l exemple PROMELA

MEF de communication l Au niveau d’abstraction le plus bas, le protocole est souvent

MEF de communication l Au niveau d’abstraction le plus bas, le protocole est souvent défini comme une MEF l Le critère de conception est définie en terme d’états et transitions d’états désirables ou non désirables l L’état du protocole l symbolise les hypothèses fixées par un processus du système par rapport aux autres processus l Il défini les actions tolérés à un processus, les événements attendus et comment y répondre.

MEF de communication l Le modèle formel d’une MEF de communication joue un rôle

MEF de communication l Le modèle formel d’une MEF de communication joue un rôle important dans 3 phases de la conception des protocoles l Validation formelle, synthèse des protocoles, et test de conformité l Extension d’une MEF basique à un modèle de MEF de communication l Choix d’un modèle et formalisation sous forme de MEF de communication généralisée l Le modèle peut être appliqué pour représenter les spécifications de PROMELA et construire un automate de validation

Descriptions informelles l Conditions (2 premières colonnes) : l l l L’état actuel Condition

Descriptions informelles l Conditions (2 premières colonnes) : l l l L’état actuel Condition sur l’environnement valeur du signal en entrée Effet (2 dernières colonnes) : l l Changement de l’environnement changement du signal en entré Le nouvel état atteignable lorsque la règle de transition est appliquée

MEF de communication l un état particulier : l Pas de règle de transition

MEF de communication l un état particulier : l Pas de règle de transition exécutable la machine est en état de fin. l Une seule règle de transition exécutable, la machine a fait un changement déterministe pour passer à nouveau état de contrôle l Plus qu’une seule règle de transition est exécutable, un choix non déterministe est réalisé pour sélectionner une règle de transition • Un choix non déterministe : le critère de sélection n’est pas défini. Sans information supplémentaire les options sont semblables (machine non déterministe)

Exemple : machine non déterministe l 2 règles de transition sont définies pour l’état

Exemple : machine non déterministe l 2 règles de transition sont définies pour l’état de contrôle q 1 l l Si le signal en entrée est 1, la première règle est exécutée Si le signal en entrée est 0, les deux règles sont exécutées et la machine passe soit à l’état q 0 ou q 3

Diagramme de transition d’états l Cercle : état de contrôle l Arête : règle

Diagramme de transition d’états l Cercle : état de contrôle l Arête : règle de transition l Les indices des arêtes sont du type c/e, avec c spécifie la condition de transition (e. g. , l’ensemble des valeurs en entrée) et e l’effet correspondant (e. g. , une nouvelle affectation des valeurs en sortie)

L’écoulement du temps dans les machines l En principe, les transitions sont instantanées l

L’écoulement du temps dans les machines l En principe, les transitions sont instantanées l Le temps passe quand le système est dans un état l Cependant il y a plusieurs variations à ce concept l Différents types de machines temporisées

MEFs communicantes l Une machine à états peut définir un système entier ou une

MEFs communicantes l Une machine à états peut définir un système entier ou une partie de système l Si elle définit une partie d’un système, elle sera composée avec autres machines l Plusieurs méthodes de communications ont été utilisées l Nous en discuterons ici deux: l l Synchrones Asynchrones

MEFs communicantes l Construction des systèmes permettant l’interaction de plusieurs machines l Connecter les

MEFs communicantes l Construction des systèmes permettant l’interaction de plusieurs machines l Connecter les signaux en sortie d’une machine au signaux en entrée d’une autre l Les machines doivent partager la même horloge pour leur algorithme sinon elles seront pas synchronisées. l Si la synchronisation est nécessaire, elle est réalisée avec un système d’établissement d’une liaison sur les signaux permettant la connexion des machines

MEFs communicantes l Ce problème l l est difficile, Il a été résolu, du

MEFs communicantes l Ce problème l l est difficile, Il a été résolu, du point de vu conception des protocoles, il est non pertinent Les systèmes fournissent à un concepteur des primitives de plus haut niveau de synchronisation pour établir un protocole l Exemple : les opération d’émission/ réception définies par PROMELA

MEFs communicantes l La machine exécute un algorithme : l Étape 1 : les

MEFs communicantes l La machine exécute un algorithme : l Étape 1 : les valeurs du signal en entrée sont visitées et une règle de transition exécutable est choisie. l l l Étape 2 : la machine change d’état en fonction de cette règle et met à jour ses signaux en sortie. Ces deux étapes se répètent continuellement. S’il n’y a pas de règle de transition exécutable, la machine exécute les deux étapes continuellement sans changer d’état, jusqu’à ce qu’il y aura changement dans les valeurs du signal en entrée effectué par une autre MEF, afin de rendre la transition possible.

MEFs communicantes l Un signal admet un état une variable affectée à des moments

MEFs communicantes l Un signal admet un état une variable affectée à des moments précis et définis l Le fonctionnement de la machine se limite uniquement au états q 0, q 1 et q 2 l A chaque étape la machine lit la valeur de la sortie suite à la transition précédente. l Le comportement est indépendant de la valeur initiale du signal en entrée.

Mécanismes de communication l MEF modélise le phénomène en un système informatique distribué processus

Mécanismes de communication l MEF modélise le phénomène en un système informatique distribué processus émission l canal La mémoire partagée est commune aux 2 processus écrire Mémoire partagée processus l réception les 2 processus sont équivalents lire processus

Communication asynchrone l Communication asynchrone, les machines communiquent par des canaux pouvant contenir des

Communication asynchrone l Communication asynchrone, les machines communiquent par des canaux pouvant contenir des primitives de communication (PDUs ou SDUs) A B Service Provider l Ces canaux sont modélisés par des files FIFO infinies et sans pertes de données l Ces canaux sont des concepts pour le fournisseur de service sous-jacent

Communication asynchrone l Une machine peut mettre des données dans une file et continuer

Communication asynchrone l Une machine peut mettre des données dans une file et continuer son travail, l L’autre machine prendra des données de la file quand elle le voudra C 12 … Machine B Machine A … C 21

Modèles de machines à états finis communicantes asynchrones (appelés aussi CSM ou CFSM, Communicating

Modèles de machines à états finis communicantes asynchrones (appelés aussi CSM ou CFSM, Communicating Finite-state Machines) l Machines à états finis communicantes au moyen de files d’attentes Files FIFO et sans pertes 10 ? 3 !4 !1 !3 C 12 … ? 4 11 ? 2 20 21 … !2 C 21 22 12 P. Ex un client et serveur. 1 requête d’accès 2 permission d’accès 3 refus d’accès 4 terminaison d’accès ? 1

Exécution du système l L’état global initial est l l’ensemble de tous les états

Exécution du système l L’état global initial est l l’ensemble de tous les états initiaux des composants et l’ensemble de tous les contenus de files initiales • Dans ce cas <10, 20>, <ε, ε> • ε file vide… Dans cet état, le seul événement qui peut se produire est l’envoi d’un 1 par le client serveur client Files FIFO et 10 sans pertes ? 3 !1 C !3 Il est mis dans la file, puis la seule chose qui peut se produire est la réception de 1 de la part du serveur ? 1 12 … !4 ? 4 11 l 20 21 … ? 2 12 C !2 21 22

Machine globale du système l Chaque état global du système spécifie: l l l

Machine globale du système l Chaque état global du système spécifie: l l l Par exemple, au début les deux machines sont dans leur état initial Le seul premier événement possible est que le client met 1 dans la file et passe à l’état suivant, tandis que la deuxième machine reste sur son état Le serveur peut alors recevoir Après , le client peut recevoir l l l L’état des deux machines communicantes Le contenu des deux files un 3, ce qui change l’état global à <10, 20>, avec un 3 dans la file de sortie du client ou un 2, ce qui change l’état global à <12, 22>, avec un 2 dans la file de sortie du client Etc.

Machine globale du système Files FIFO et sans pertes 10 ? 3 !4 !1

Machine globale du système Files FIFO et sans pertes 10 ? 3 !4 !1 !3 C 12 … ? 4 11 ? 2 12 20 ? 1 21 … !2 C 21 22

La machine globale du système ε : canal vide (produit asynchrone) <10, 20>, <ε,

La machine globale du système ε : canal vide (produit asynchrone) <10, 20>, <ε, ε> !1 <11, 20>, <1, ε> ? 1 ? 3 <11, 21>, < ε, ε> ? 4 !2 ? 4 !3 <11, 22>, < ε, 2> ? 2 <11, 20>, < ε, 3> <12, 22>, < ε, ε > !4 <10, 22>, < 4, ε > !1 ? 4 <11, 22>, <[4, 1], ε > [4, 1] : canal contenant 4 puis 1

Équivalence d’états l Le concept d’équivalence d’états peut être défini formellement, mais sa déf

Équivalence d’états l Le concept d’équivalence d’états peut être défini formellement, mais sa déf exacte dépend du modèle utilisé. l Les états issus d’une même machine sont dits équivalents si la machine peut démarrer à n’importe quel état et génère le même ensemble de séquences en sortie si on lui fourni n’importe séquence d’entrée

Machines globales finies et infinies l C 12 n’aura jamais plus de 2 messages

Machines globales finies et infinies l C 12 n’aura jamais plus de 2 messages et C 21 jamais plus d’un message l Quand les 2 canaux sont vides, les deux processus reviendront à leur état initial l Nous avons ici une machine globale finie l l La machine globale d’un système n’est pas nécessairement finie Le nombre d’états est infini si les files s’élargissent de façon arbitraire

Analyse d’atteignabilité l Le processus d’obtenir la machine globale à partir des machines locales

Analyse d’atteignabilité l Le processus d’obtenir la machine globale à partir des machines locales s’appelle l l Analyse d’atteignabilité Le graphe obtenu en faisant l’analyse d’atteignabilité s’appelle : graphe d’atteignabilité l Ce graphe peut être fini, si chaque branche peut se terminer à un état déjà visité

Critique du modèle de communication asynchrone l Le modèle de communication asynchrone représente bien

Critique du modèle de communication asynchrone l Le modèle de communication asynchrone représente bien la façon de penser des ingénieurs de protocoles l Envoyer et continuer l Plusieurs langages et outils de spec et V&V utilisent ce modèle l Notamment SDL l Cependant il simplifie la réalité: l Il force à mettre des files partout, même quand la communication devrait être directe l Les files FIFO infinies et parfaites n’existent pas en réalité: • Les médias de communication peuvent perdre des données et peuvent permettre aux données de se chevaucher • Surtout dans le cas de transmission sans connection • Ils ne sont pas infinis, même si leur capacité peut être très grande

Représentation de canaux avec files non-FIFO l Deux manières: l Représenter la perte ou

Représentation de canaux avec files non-FIFO l Deux manières: l Représenter la perte ou autres dans une des deux machines communicantes, p. ex. dans le récepteur: ? perte Dans ce cas le message est ignoré ? réception l sinon définir les canaux avec un troisième processus, voir modèle synchrone

Modèle de communication synchrone l Dans le modèle synchrone, nous n’avons pas de canaux

Modèle de communication synchrone l Dans le modèle synchrone, nous n’avons pas de canaux prédéfinis l Les entités communiques directement par un mécanisme de communication partagé l Une entrée et une sortie deviennent une seule action Machine A Mécanisme de communicati on Machine B

Machine globale pour le cas synchrone (appelée produit synchrone) 10 20 ? 3 !4

Machine globale pour le cas synchrone (appelée produit synchrone) 10 20 ? 3 !4 !1 !3 ? 4 11 21 ? 2 12 ? 1 !2 10, 20 22 3 4 La combinaison de !1 et ? 1 donne une seule action 1 1 11, 21 2 12, 22

Critique du modèle synchrone l L’envoyeur et le récepteur sont bloqués ensemble pendant l’exécution

Critique du modèle synchrone l L’envoyeur et le récepteur sont bloqués ensemble pendant l’exécution d’une opération en commun l Peu apprécié par les ingénieurs de télécom car ils sont plutôt habitués à penser en termes de envoyer -continuer

Relation entre les deux modèles l Le modèle synchrone peut modéliser le modèle asynchrone

Relation entre les deux modèles l Le modèle synchrone peut modéliser le modèle asynchrone par l’utilisation d’entités ‘canaux’ intermédiaires l Cependant ces canaux pourraient avoir un nombre infini d’états A canaux l B Le modèle asynchrone avec files de longueur 0 correspond au modèle synchrone

Conditions d’erreur dans les systèmes synchrones l Dans les systèmes synchrones, il y a

Conditions d’erreur dans les systèmes synchrones l Dans les systèmes synchrones, il y a une seule possibilité d’erreur, l’impasse (deadlock), l un système réparti est toujours en fonctionnement, une impasse est alors considérée comme un problème 10 20 ? 3 !6 !1 !3 ? 4 11 ? 1 21 ? 2 12 !2 22 10, 20 3 1 11, 21 2 Impasse, pas d’état successeur 12, 22

Conditions d’erreur dans les systèmes asynchrones l Dans le cas asynch, il y a

Conditions d’erreur dans les systèmes asynchrones l Dans le cas asynch, il y a plusieurs cas d’erreur l l Impasse = deadlock: un état accessible dans lequel tous les canaux sont vides et aucun processus ne peut envoyer Réception non spécifiée: il y a un message au début d’un canal qui ne peut pas être reçu car il n’y a pas de transition appropriée (spec incomplète) Réception non-spécifiée bloquante: il y a une réception non spécifiée et à cause de ça le système se trouve en impasse Transitions non-exécutables: pas une erreur bloquante, mais pourrait être un symptôme d’un problème de conception

Conception des protocoles : Couplage asynchrone l MEF modélise le phénomène en un système

Conception des protocoles : Couplage asynchrone l MEF modélise le phénomène en un système informatique distribué l Deux manières : l Modèle de communication asynchrone : machines reliées à travers des files de messages FIFO l Modèle de communication synchrone : les signaux en entrée et en sortie dépendent des états des files de messages • File d’entrée vide : pas de signal d’entrée valable et les règles de transition qui en nécessitent un sont inexécutables • File de sortie pleine : aucun signal en sortie ne peut être généré pour cette file et les règles de transition qui en produisent sont inexécutables

Conception des protocoles : Couplage synchrone l Nous allons nous restreindre aux modèles caractérisés

Conception des protocoles : Couplage synchrone l Nous allons nous restreindre aux modèles caractérisés par un seule événement synchrone par règle de transition; l l l Une seule règle peut spécifier une entrée ou une sortie mais pas les deux; Deux raisons: l Simplifier le modèle, ne pas considérer la sémantique d’une composition compliquée des événements synchrones (e. g. , deux sorties pour la même file de sortie qui peut accepter qu’une seule des deux) l Modéliser strictement le comportement réel du processus en un système distribué L’exécution d’une règle de transition est un événement atomique du système l Dans la plupart des systèmes distribués une seule opération d’émission ou réception est un événement atomique

Exemple : extension du protocole avec bit alterné l Le protocole repose sur une

Exemple : extension du protocole avec bit alterné l Le protocole repose sur une alternance stricte entre émission d'un paquet et réception d'un acquittement ; l un seul bit transmis suffit donc à acquitter le paquet émis dans le slot précédent ; l L'absence d'acquittement est considérée par l'émetteur comme un acquittement négatif, et le paquet est donc retransmis ; l si cette retransmission survient suite à la perte de l'acquittement, le récepteur doit pouvoir détecter un paquet dupliqué : l les paquets ne peuvent donc pas être entièrement dépourvus de numéro, mais un bit suffit (numérotation modulo 2).

Exemple : extension du protocole avec bit alterné l l comportement de deux processus,

Exemple : extension du protocole avec bit alterné l l comportement de deux processus, A et B. Les étiquettes des arêtes les échanges des messages l Étiquette : deux caractères. Le premier indique l'origine du message reçu ou envoyé, et le second indique le numéro de séquence, l Les actions d’envoie sont soulignés

Exemple : extension du protocole avec bit alterné l Les doubles flèches orientés indiquent

Exemple : extension du protocole avec bit alterné l Les doubles flèches orientés indiquent des états où l l'entrée doit être acceptée dans le récepteur l un nouveau message est cherché pour la transmission dans l'emetteur. l Les entrées incorrectes, c. -à-d. , les messages qui portent des faux numéros de séquence, incitent une retransmission du dernier message envoyé. l Il est relativement facile d’étendre le protocole avec des arrêts forcés pour permettre le rétablissement après une perte de message.

Exemple : extension du protocole avec bit alterné

Exemple : extension du protocole avec bit alterné

Exemple : extension du protocole avec bit alterné l l deux types de messages,

Exemple : extension du protocole avec bit alterné l l deux types de messages, mesg et ACK : l {mesg, données, numéro de séquence} l {ACK, numéro de séquence} mesg: o: s un message mesg avec o : champ de données et s : champ num de séquence l quatre variables du type binaire : a, e, r, et s. l du niveau émetteur : l s est utilisé pour stoker le dernier numéro de séquence envoyé l r représente le dernier numéro de séquence reçu du niveau récepteur l e : utilisé pour maintenir le prochain numéro attendu à l’arrivée l a : pour stocker le dernier numéro de séquence actuellement reçu. Toutes les variables ont une valeur initiale zéro l l

Modèle de tables de transition émetteur récepteur Modélisation de transmission après un délai d’attente

Modèle de tables de transition émetteur récepteur Modélisation de transmission après un délai d’attente

Diagramme de transition d’états émetteur récepteur

Diagramme de transition d’états émetteur récepteur

Diagramme de transition d’états l Dernier message reçu est correct dans les états q

Diagramme de transition d’états l Dernier message reçu est correct dans les états q 1 et q 4 l L’option du délai d’attente au niveau de l’émetteur produira une boucle sur les états q 1 et q 3 l Dans ce modèle la valeur du bit d’alternance est étiquetée sur le nom de chaque message.

Couplage synchrone l Les conditions de transition sont les « sélections » que la

Couplage synchrone l Les conditions de transition sont les « sélections » que la machine peut faire pour la communication. l un seul événement de synchronisation par règle de transition. l La machine peut choisir un signal d’entrée ou un signal de sortie pour lesquels une règle de transition est spécifiée. l Pour faire un déplacement, un signal doit être sélectionné simultanément et avec précision par deux machines (dans une machine comme sortie et dans l'autre comme entrée). l Si une telle correspondance sur un signal se produit, les deux machines font la transition correspondante simultanément et changent leurs choix selon les nouveaux états qu'elles atteignent.

MEFs synchroniquement couplées Client Serveur Les deux machines sont identiques mais les entrées et

MEFs synchroniquement couplées Client Serveur Les deux machines sont identiques mais les entrées et les sorties sont permutées

MEF synchroniquement couplées l Si nous combinons deux machines de type client/ serveur, les

MEF synchroniquement couplées l Si nous combinons deux machines de type client/ serveur, les deux premières machines ne peuvent pas être à l'état q 1 en même temps. l la communication synchrone est binaire : deux machines doivent participer, une avec un choix donné d'entrée et l'autre avec le choix de couplement en sortie. l Dans ce qui suit, nous concentrons sur le cas plus général d'un accouplement entièrement asynchrone des MEF

Description formelle l Une MEF communique à travers des files d’attentes FIFO qui établissent

Description formelle l Une MEF communique à travers des files d’attentes FIFO qui établissent la sortie d’une machine sur l’entrée d’une autre. l Une file d’attente d’un message est le triplet (S, N, C), où : l l S : est un ensemble fini appelé vocabulaire l N : un entier définissent le nombre des champs dans la file d’attente l C : est le contenu de la file d’attente, un ensemble ordonné d’éléments de S Les éléments de S et C sont appelés messages

Description formelle l l Dans le cas de plusieurs files d’attentes, les vocabulaires doivent

Description formelle l l Dans le cas de plusieurs files d’attentes, les vocabulaires doivent êtres disjoints l M l’ensemble des files d’attentes l m M, l’indice d’une file d’attente, 0 m M l n, 0 n N, l’indice d’un champ dans la file d’attente Le vocabulaire du système est une conjonction des vocabulaires de toutes les files d’attente plus l’élément neutre

Description formelle l Formellement, une MEF de communication est un quadruplet : (Q, q

Description formelle l Formellement, une MEF de communication est un quadruplet : (Q, q 0, M, T) l un alphabet (M) ensemble de files d’attente l un ensemble d'états (Q) l une fonction de transition (T : Q× M → Q). l un état de départ (q 0 Q) l T (q, a) : q état courant et a action l Trois actions possibles : input, output et action nulle l Si T (q, a) n’est pas définie explicitement T (q, a) = l T (q, ) : transition : une condition suffisante pour qu’elle soit exécutable est que la machine soit à l’état q

Minimisation d’une MEF : récepteur Diagramme d’états de transition

Minimisation d’une MEF : récepteur Diagramme d’états de transition

MEF non déterministe généralisée l Un automate fini non déterministe généralisé (GNFA) est un

MEF non déterministe généralisée l Un automate fini non déterministe généralisé (GNFA) est un quintuplet: (Q, Σ, T, q 0, q 1) l Q est un ensemble fini d'états l Σ est un ensemble fini de symboles l T : (Q -{q 0}) × (Q - {q 1}) → R l q 0 Q est l'état de départ l q 1 Q est l'état d'acceptation l Où R est la collection de toutes les expressions rationnelles sur l'alphabet Σ. l Une MEFD ou une MEFND peut être converti en MEFNG, alors la MEFNG peut être converti en expression rationnelle en réduisant le nombre d'états jusqu’à ce que S = {q 0, q 1}.

Exécution des MEF l Le systèmes des MEF de communication est exécuter en utilisant

Exécution des MEF l Le systèmes des MEF de communication est exécuter en utilisant les règles suivantes: l Seul le couplage asynchrone est pris en compte l Soit un système à P MEF, les éléments d’une MEF i sont désignés par i

Exécution des MEF 1. Mettre les machines à leur état initial, les files d’attente

Exécution des MEF 1. Mettre les machines à leur état initial, les files d’attente sont initialement vide 2. Sélectionner une machine arbitraire i et une règle de transition arbitraire Ti avec 3. s’il ne reste plus de règles de transition exécutables, l’algorithme se termine

Exécution des MEF l Soit 1 d(a) |M| la file d’attente destination d’une action

Exécution des MEF l Soit 1 d(a) |M| la file d’attente destination d’une action a et m(a) le message émit ou reçu l Ni : le nombre de trames dans la file d’attente i l Une action a est exécutable si l’une des trois règles suivantes est vérifiée

Minimisation des MEF

Minimisation des MEF

Minimisation des MEF l l Soit une séquence de messages en entrée d(a) acceptée

Minimisation des MEF l l Soit une séquence de messages en entrée d(a) acceptée à l’état q Ci* : l’ensemble des séquences en entrée acceptables à l’état qi Cj* : l’ensemble des séquences en entrée acceptables à l’état qj Les états qi et qj sont équivalents si Ci* = Cj* , et l d(a) T / T(qi, d(a) ) = T(qj, d(a) ) les états équivalents sont non distinguables l l l Une MEF est réduite (minimale) si elle n’admet pas d’états équivalents 2 MEFs sont équivalentes si l l l leurs états initiaux sont équivalents génèrent la même séquence en sortie quand on leur fourni la même séquence de symboles en entrée (can) deux machines réduites équivalentes sont isomorphismes

Algorithme de minimisation des MEF l Visiter toutes les paires l’états (i, j) dans

Algorithme de minimisation des MEF l Visiter toutes les paires l’états (i, j) dans la MEF l Si i produit des sorties différentes de j pour n'importe quelle entrée, marquez-les non équivalents l Pour chaque paire d'état (i, j) pas encore marquée, pour chaque entrée a, trouvez la paire d’états (T (i, a), T(j, a)) l Si (T (i, a), T(j, a)) sont non équivalents pour a, marquez (i, j) non équivalent l Réitérez jusqu'à ce qu’il y aura plus de marquage possible l Les paires d'états non marquées sont équivalentes, elles simplifient la MEF en conséquence

Minimisation des MEF avec une table de vérification 1. Construction d’un tableau de vérification

Minimisation des MEF avec une table de vérification 1. Construction d’un tableau de vérification (inclusion) l 2. si les sorties des états sont différentes, marquez la case avec "1" l 3. 4. 6. c. à. d les états ne peuvent pas êtres équivalents Sinon, remplir la case les prochaines pairs d’états pour toutes les combinaisons d’entrée avancez systématiquement à travers les cases, pour chacune des paires d'états suivante dans la case, examinez les cases avec "1" l si "1" alors cette case est "1" l 5. Une case pour chaque combinaison de deux états c. -à-d. , si les états prochains ne sont pas équivalents, alors les états actuels ne le sont pas réitérez jusqu'à ce qu’il y aura plus de changement les cases non marquées restantes représentent les états équivalents

Algorithme de minimisation des MEF 1. définir un tableau |Q|x|Q| de valeurs binaires, initialement

Algorithme de minimisation des MEF 1. définir un tableau |Q|x|Q| de valeurs binaires, initialement chaque élément E[i, j]=1 si la condition suivante est satisfaite pour toutes les actions T(i, a) T( j, a) deux états ne sont pas équivalents tant que les relations d’états ne sont pas définies pour les mêmes actions 2. si la machine considérée contient que des choix déterministes, T défini un état successeur unique pour toutes les entrées mise à 1 du tableau E, changer les valeurs de ces entrées E[i, j] à la valeur de (a) , E[T(i, a) , T( j, a) ] Les états ne sont pas équivalents tant que leurs successeurs ne le sont pas

Algorithme de minimisation des MEF l Si T(i, a) et T( j, a) peuvent

Algorithme de minimisation des MEF l Si T(i, a) et T( j, a) peuvent avoir plus qu’un seul élément, la relation devient : E[i, j] = 0 si l’une des deux conditions suivantes est fausse l’action a • (p) , p T(i, a) (q) , q T( j, a) et E[p, q]=1 • (q) , q T( j, a) (p) , p T(i, a) et E[q, p]=1 l l Les états i et j ne sont pas équivalents tant que la condition suivante n’est pas vérifiée : Pour tout état successeur possible p de i il existe un état successeur q de j équivalant et vice versa 3. répéter étape 2 jusqu’à ce que le nombre des zéros dans E ne peut plus augmenter

Algorithme de minimisation des MEF l La procédure termine toujours car l la taille

Algorithme de minimisation des MEF l La procédure termine toujours car l la taille du tableau E est finie, l À l’étape 2, chaque élément ne peut changer qu’une seule fois de 1 à 0 l Une fois la procédure terminée, les éléments de E définissent une partition de |Q| en classes équivalentes, tel que : • L’état i , 1 i |Q| est équivalant à touts les états j, 1 j |Q| avec E[i, j]=1 l Optimisation : l l E est symétrique E[i, j]=E[j, i] Chaque état est équivalant à lui même

Exemple (q 0, q 3), (q 1, q 5) et (q 2, q 4)

Exemple (q 0, q 3), (q 1, q 5) et (q 2, q 4) sont équivalents

Problème de test de conformité l La procédure de test de l’équivalence des états

Problème de test de conformité l La procédure de test de l’équivalence des états peut être également appliquée pour déterminer l'équivalence de deux machines l Le problème : montrer que chaque état dans une machine a un équivalent dans l'autre machine, et vice versa l Naturellement, les machines n'ont pas besoin d'être égales pour être équivalentes.

Une variante pratique de ce problème l Supposez que nous avons des spécifications formelles

Une variante pratique de ce problème l Supposez que nous avons des spécifications formelles de protocole, sous la forme de MEF et une implémentation de ces spécifications. l Les deux machines doivent être équivalentes, l’implémentation, vue comme une boîte noire, devraient répondre aux signaux d'entrée exactement comme la machine de référence l Nous ne pouvons rien savoir avec certitude au sujet de la véritable structure interne de l‘implantation

Une variante pratique de ce problème l Nous pouvons essayer d'établir l'équivalence en vérifiant

Une variante pratique de ce problème l Nous pouvons essayer d'établir l'équivalence en vérifiant systématiquement l‘implantation avec des séquences d’essai en entrée et en comparant les réponses à ceux de la machine de référence l Le problème est maintenant de trouver le bon ensemble des séquences d'essai pour établir l'équivalence ou la non équivalence des deux machines l Ce problème est connu dans la théorie des MEF comme problème de fausse détection ou de test de conformité.

Combinaison des MEFs l Réduire la complexité des validations formelles basées sur des modèles

Combinaison des MEFs l Réduire la complexité des validations formelles basées sur des modèles de MEF Encapsuler deux MEF séparées en une machine simple l l Méthodes de validation des protocoles incrémentales l Méthodes d'abstraction par étapes Le problème est de trouver le quadruplet (Q, q 0, M, T) de la machine combinée à partir des 2 machines (Q 1, q 10, M 1, T 1) et (Q 2, q 20, M 2, T 2)

Combinaison des MEF 1. Définir l'ensemble de produit des deux ensembles d'états deux MEFs.

Combinaison des MEF 1. Définir l'ensemble de produit des deux ensembles d'états deux MEFs. l l 2. L'ensemble M de files d'attente est M 1 M 2 l l 3. Si la première machine a |Q 1| états et la deuxième machine a |Q 2| états, le produit contient |Q 2|x|Q 1| états. Initialement, les états de la nouvelle machine sont nommés en concaténant les noms des états des machines originales selon un ordre fixe. • L'état initial q 0 de la nouvelle machine est la combinaison q 01 q 0 2. Le vocabulaire V est le vocabulaire combiné de M 1 et M 2, l'ensemble d'actions a est l'union de toutes les actions que les différentes machines peuvent effectuer Pour chaque état q 1 q 2 Q, pour chaque action a, T est un choix non déterministe des relations correspondantes de M 1 et M 2 séparément, une fois placé aux états individuels q 1 et q 2.

Combinaison des MEF l l l Simplifier des comportements complexes Dans les validations des

Combinaison des MEF l l l Simplifier des comportements complexes Dans les validations des protocoles combiner deux machines en une seule l élimination des interactions internes, c. -à-d. , l'interface originale entre les deux machines l minimiser la machine résultante Deux blocs manquants dans le dispositif de MEF étudié pour appliquer des compositions et des réductions de cette façon. 1. le modèle de MEF que nous avons développé jusqu'ici ne peut pas facilement représenter des modèles de PROMELA. • 2. le modèle de base de MEF doit être suffisamment étendue pour modéliser des modèles de PROMELA d'une manière fiable. Pas de méthode pour enlever des actions internes d'une machine sans perturber son comportement externe.

Extension d’une MEF l l l Problèmes complexes : explosion du nombre d’états Solution

Extension d’une MEF l l l Problèmes complexes : explosion du nombre d’états Solution réduire le nombre d’états par introduction des variables locales Cacher l’information la moins pertinente L’etat global de la MEFE dépend de l’état explicite et les valeurs courantes des variables La MEFE introduit la notion de l Conditions : affectation des valeurs aux variables, opérateurs logiques et arithmétique l Effets : actions (output, nouvel état) dépend des valeurs des variables Déclenchement et arrêt des temporisateurs représentent des conditions dans la MEF

Extension d’une MEF l Deux contraintes: l l L’aptitude de modéliser la manipulation des

Extension d’une MEF l Deux contraintes: l l L’aptitude de modéliser la manipulation des variables L’aptitude de modéliser le transfert des valeurs arbitraires MEF précédentes : fonctionnent avec des objets abstraits (insertion et extraction à partir d’une file d’attente, synchronisés uniquement à l’accès) 3 changements : 1. Introduction d’une primitive : variable sous forme d’une file (nom symbolique, objet abstrait) • 2. 3. 1 valeur par unité du temps, n'importe qu’elle nombre de valeurs peut être affecté à une variable (seule la dernière val insérée peut être extraite) Utilisation de la file d’attente pour le transfert des variables du type entier Opérations logiques et arithmétique pour la manipulation des variables

Extension d’une MEF l l l Une variable ayant un ensemble fini de valeurs

Extension d’une MEF l l l Une variable ayant un ensemble fini de valeurs est simulée par une MEF Ex : variable à 3 valeurs {s 0, s 1, s 2} l Messages acceptés {s 0, s 1, s 2, rv} l rv : tester la valeur courante de la variable Règles de transition =condition+effet l Condition : expressions booliennes sur les valeurs des variables l Effet : affectation sur les variables

Extension d’une MEF l MEFE : définie par (Q, q 0, M, A, T)

Extension d’une MEF l MEFE : définie par (Q, q 0, M, A, T) l A est l'ensemble des noms des variables. l La relation T de transition d'état est inchangée • Deux types d'actions supplémentaires : conditions booléennes et affectation des valeurs aux variables de l'ensemble A l l Dans le langue de validation PROMELA : l une condition est exécutable si seulement si elle est évalué vrais l une affectation est toujours exécutable. le modèle des MEFCE est un modèle fini d'états, et presque tous les résultats qui s’appliquent aux MEF s'appliquent également à ce modèle.

Actions input/output l Les actions I/O définies en tant qu'ensembles ordonnés finis de valeurs.

Actions input/output l Les actions I/O définies en tant qu'ensembles ordonnés finis de valeurs. l Les valeurs sont des constantes ou des expressions sur des variables de A. l Par définition la première valeur d'un tel ensemble est la file d'attente de destination pour I/O. l Les valeurs restantes définissent une structure de données insérée à ou extraite de, la file d'attente quand l'action d'I/O est réalisée. l La sémantique de l‘exécutabilité peut être aussi définie en PROMELA.

Exemple division euclidienne proctype Euclid { pvar x, y; In? x, y; do :

Exemple division euclidienne proctype Euclid { pvar x, y; In? x, y; do : : (x > y) -> x = x –y : : (x < y) -> y = y –x : : (x == y) -> break od; Out!x } MEFE Le processus reçoit 2 valeurs en x et y et fourni le pgcd entre x et y à la file d’attente en sortie • A={x, y} • Les conditions et les opérations d’affectation et les I/O sont combinés dans la même colonne

Exemple de MEFE (1/3) l Les protocoles de communications sont basés sur un mécanisme

Exemple de MEFE (1/3) l Les protocoles de communications sont basés sur un mécanisme d’acquittement pour indiquer la transmission avec succès du message

Exemple de MEFE (2/3) l Si le message n’est pas acquitté alors il sera

Exemple de MEFE (2/3) l Si le message n’est pas acquitté alors il sera retransmit

Exemple de MEFE (3/3) l Coté émetteur l Identification des états – IDLE no

Exemple de MEFE (3/3) l Coté émetteur l Identification des états – IDLE no acknowledge pending, prêt à envoyer le message suivant – W 4_ACK attente d’une réponse sur le message suivant l Identification des événements en entrée – msg de la part de l’utilisateur – Msg_Ack de la part du récepteur l Identification des événements en sortie – Msg vers le récepteur – error Ind vers l’émetteur

Table d’états

Table d’états

Table d’états équivalente

Table d’états équivalente

Autre exemple de MEFE (1/2) l Soit l’automate à états finis défini comme suite

Autre exemple de MEFE (1/2) l Soit l’automate à états finis défini comme suite : l L’ensemble en entrée X = (a, b} l Le langage de cet automate est : l l Une séquence de b symboles est suivie d’un a l Chaque symbole a est suivi d’au moins un symbole b Solution : MEF b q 0 b b a q 1 b q 2 a a q 7 a a q 6 a a b q 3 b a q 4 b b q 5

Autre exemple de MEFE (2/2) l Solution MEFE: variable B_CNT (compteur b) l Opérations

Autre exemple de MEFE (2/2) l Solution MEFE: variable B_CNT (compteur b) l Opérations sur les variables : &, ++, =, == b B_CNT=1 q 0 q 1 b & (B_CNT==5) ERREUR b a B_CNT++ B_CNT=1 a B_CNT=1 q 2 ERREUR q 3

Généralisation et validation des protocoles l l Soient 2 modules de protocoles A et

Généralisation et validation des protocoles l l Soient 2 modules de protocoles A et B, leur comportement combiné et très compliquer à analyser directement. Objectif : valider la justesse du processus dans le module A Solution : l simplifier le comportement dans B, (combinaison, fusion, généralisation, minimisation) des MEF. l Si le comportement du module B est généralisé, le nouveau module est capable de se comporter exactement comme le premier, tout en fournissant plus d’options. Si la condition de justesse est vérifiée pour le module A et B généralisé, ( plus facile), le résultat se tiendra nécessairement pour le module B original (plus complexe),

Généralisation et validation des protocoles l si on s’intéresse à prouver une propriété du

Généralisation et validation des protocoles l si on s’intéresse à prouver une propriété du module A on simplifie son environnement, B. sans changer A l le comportement modifié de B ne permet pas au module A de passer son test. l le module généralisé B continue à adhérer à toutes les contraintes qui peuvent être imposées par A, par l'intermédiaire des objets globaux, tels que des canaux de message et des variables. l La validation, nous donne le meilleur résultat l Elle réalise un test plus puissant • Il valide des propriétés pour des conditions plus générales, • il est plus facile à exécuter, puisqu'un processus généralisé est plus petit que son original.

Généralisation et validation des protocoles l Méthode de réduction d’un proctype PROMELA l Identifiez

Généralisation et validation des protocoles l Méthode de réduction d’un proctype PROMELA l Identifiez les structures de sélection et de répétition : • toutes les gardes sont des conditions sur les variables locales • l'union de toutes les gardes est vrai l l l Remplacez chacune des gardes identifiées dans la première étape avec l’instruction SKIP de PROMELA Remplacez toutes les affectations aux variables locales qui ne font plus partie d’aucune condition, avec SKIP Enlevez toutes les déclarations redondantes et réduisez au minimum le nouveau corps de proctype,

Généralisation et validation des protocoles : exemple proctype generalize_me(chan ans; byte p) { chan

Généralisation et validation des protocoles : exemple proctype generalize_me(chan ans; byte p) { chan internal[1] of { byte }; int r, q; : : (q == r) -> break internal!cookie; r = p/2; do : : (r <= 0) -> break : : (r > 0) -> q = (r*r + p)/(2*r); if : : (q != r) -> skip od; fi; r = q internal? cookie; if : : (q < p/3) -> ans!small : : (q >= p/3) -> ans!great fi }

Généralisation et validation des protocoles : exemple proctype generalized(chan ans; byte p) { if

Généralisation et validation des protocoles : exemple proctype generalized(chan ans; byte p) { if : : (0) : : ans!small : : ans!great fi } proctype generalized_2(chan ans; byte p) { do : : break : : skip od; if : : ans!small : : ans!great fi }

Variantes des MEFs l Versions restreints puissance analytique l Versions étendues puissance de modélisation

Variantes des MEFs l Versions restreints puissance analytique l Versions étendues puissance de modélisation

Conclusion l Conception des protocoles = formalisme de modélisation des primitives d’interactions des processus

Conclusion l Conception des protocoles = formalisme de modélisation des primitives d’interactions des processus l Modèle de MEF étendue l l Modélise le transfert des messages l Manipulation des variables l sémantique étroitement liée à la sémantique de PROMELA Trois critères pour évaluer l'adéquation des outils de modélisation formelle l puissance de la modélisation l puissance de l’analyse l Clarté de la description

Conclusion l RDP : simplicité conceptuelle basée sur la représentation graphique du mécanisme de

Conclusion l RDP : simplicité conceptuelle basée sur la représentation graphique du mécanisme de l'interaction de processus l clarté descriptive est perdu quand la taille du problème dépasse une limite modeste. l difficile de distinguer les aspects de synchronisation des aspects de contrôle de flux. • Tous les deux sont modelés avec le même outil : le jeton. l Les protocoles ont typiquement des grands nombres d'états au delà desquels un réseau de Pétri devient inutilisable.