La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Conception des protocoles

Présentations similaires


Présentation au sujet: "Conception des protocoles"— Transcription de la présentation:

1 Conception des protocoles

2 Machines à états finis (MEF)
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. Un automate est constitué d'états et de transitions. Son comportement est dirigé par un mot fourni en entrée  Un automate fini possède un nombre fini d'états distincts : il ne dispose donc que d'une mémoire bornée.

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

4 MEF- États État courant États prochain État initial État final
Événements en entrée État courant Fonction de transition sortie suivant État courant État déterminant le comportement courant de la machine États prochain É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 État de la machine une fois crée État final État dans lequel aucune règle de transition n’est exécutable

5 MEF- Transition Événements en entrée État courant Fonction de transition sortie suivant 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 La fonction de transition produit la sortie et l’état prochain suivant l’état actuel et les événements en entrée Si à un état particulier la machine n’est pas active c’est quelle attend à ce qu’une entrée réalise l’activité prochaine

6 MEF : représentation graphique
Sémantique d’exécution t est tirable si, dans l'état initial q1, 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 q2= T(q1,i) indéterminisme si deux transitions concurrentes sont tirables. Extensions 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.

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

8 MEF déterministe Formellement, une MEF déterministe (DFA) est un quintuplet : (Q, Σ, T, q0, A) un alphabet (Σ) un ensemble d'états (Q) une fonction de transition (T : Q× Σ → Q). un état de départ (q0  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.

9 MEF non déterministe Une MEF non déterministe est un quintuplet: M = (Q, Σ, T, q0, A) un alphabet (Σ) un ensemble d'états (Q) une fonction de transition (T : Q × (Σ {ε}) → P(Q)). un état de départ (q0  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.

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

11 Diagrammes d’états de transition
Représentation visuelle d’une MEF Identifier les états et les transitions possibles Les cercles représentent les états Les flèches représentent les transitions 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 = {q1, q2, ..., qn) : ensemble de sommets représentant l’ensemble des états Q dans M Une arête orientée représente une transition d’un état qi à l’état qj q0 q1 e1/s2 e1/s1 e2/s4 e2/s3

12 Table d’une MEF e1 q1 q2 s1 s2 e2 s3 s4
Événements en entrée État courant État prochain Événements en sortie e1 q1 q2 s1 s2 e2 s3 s4 Chaque ligne de la table est une combinaison unique des événements en entrée et l’état courant Pour une définition complète d’une MEF toutes les combinaisons événement/état doivent être fournies La table est une autre manière de représenter une MEF

13 Table d’une MEF : forme compacte
1ére ligne de la table : liste de touts les états 1ére colonne de la table : liste de touts les événements en entrée q1 q2 e1 s1 , q2 s2 ,q2 e2 s3 ,q1 s4 q1 état événement

14 Catégories des MEF MEF complète MEF complètement spécifiée
Le domaine de spécification est l’espace en entier DA = Qx Σ MEF partielle MEF partiellement spécifiée domaine de spécification est une partie de l’espace 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)

15 MEF, MEFC 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. 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).

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

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

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

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

20 MEF de communication un état particulier :
Pas de règle de transition exécutable  la machine est en état de fin. Une seule règle de transition exécutable, la machine a fait un changement déterministe pour passer à nouveau état de contrôle 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)

21 Exemple : machine non déterministe
2 règles de transition sont définies pour l’état de contrôle q1 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 q0 ou q3

22 Diagramme de transition d’états
Cercle : état de contrôle Arête : règle de transition 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)

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

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

25 MEFs communicantes Construction des systèmes permettant l’interaction de plusieurs machines Connecter les signaux en sortie d’une machine au signaux en entrée d’une autre Les machines doivent partager la même horloge pour leur algorithme sinon elles seront pas synchronisées. 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

26 MEFs communicantes Ce problème 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 Exemple : les opération d’émission/ réception définies par PROMELA

27 MEFs communicantes La machine exécute un algorithme :
Étape 1 : les valeurs du signal en entrée sont visitées et une règle de transition exécutable est choisie. É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.

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

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

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

31 Communication asynchrone
Une machine peut mettre des données dans une file et continuer son travail, L’autre machine prendra des données de la file quand elle le voudra C12 C21 Machine A Machine B

32 Modèles de machines à états finis communicantes asynchrones
(appelés aussi CSM ou CFSM, Communicating Finite-state Machines) Machines à états finis communicantes au moyen de files d’attentes Files FIFO et sans pertes 20 10 !3 ?1 ?3 !1 C12 C21 !4 ?4 21 11 !2 ?2 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

33 Exécution du système L’état global initial est
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 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 client serveur !1 ?3 ?2 !4 10 11 12 ?1 !3 !2 20 21 22 Files FIFO et sans pertes C ?4

34 Machine globale du système
Chaque état global du système spécifie: L’état des deux machines communicantes Le contenu des deux files 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 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.

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

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

37 Équivalence d’états Le concept d’équivalence d’états peut être défini formellement, mais sa déf exacte dépend du modèle utilisé. 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

38 Machines globales finies et infinies
C12 n’aura jamais plus de 2 messages et C21 jamais plus d’un message Quand les 2 canaux sont vides, les deux processus reviendront à leur état initial Nous avons ici une machine globale finie 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

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

40 Critique du modèle de communication asynchrone
Le modèle de communication asynchrone représente bien la façon de penser des ingénieurs de protocoles Envoyer et continuer Plusieurs langages et outils de spec et V&V utilisent ce modèle Notamment SDL Cependant il simplifie la réalité: Il force à mettre des files partout, même quand la communication devrait être directe 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

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

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

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

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

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

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

47 Conditions d’erreur dans les systèmes asynchrones
Dans le cas asynch, il y a plusieurs cas d’erreur 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

48 Conception des protocoles : Couplage asynchrone
MEF modélise le phénomène en un système informatique distribué Deux manières : Modèle de communication asynchrone : machines reliées à travers des files de messages FIFO 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

49 Conception des protocoles : Couplage synchrone
Nous allons nous restreindre aux modèles caractérisés par un seule événement synchrone par règle de transition; Une seule règle peut spécifier une entrée ou une sortie mais pas les deux; Deux raisons: 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) 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 Dans la plupart des systèmes distribués une seule opération d’émission ou réception est un événement atomique

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

51 Exemple : extension du protocole avec bit alterné
comportement de deux processus, A et B. Les étiquettes des arêtes  les échanges des messages É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, Les actions d’envoie sont soulignés

52 Exemple : extension du protocole avec bit alterné
Les doubles flèches orientés indiquent des états où l'entrée doit être acceptée dans le récepteur un nouveau message est cherché pour la transmission dans l'emetteur. Les entrées incorrectes, c.-à-d., les messages qui portent des faux numéros de séquence, incitent une retransmission du dernier message envoyé. 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.

53 Exemple : extension du protocole avec bit alterné

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

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

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

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

58 Couplage synchrone Les conditions de transition sont les « sélections » que la machine peut faire pour la communication. un seul événement de synchronisation par règle de transition. 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. 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). 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.

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

60 MEF synchroniquement couplées
Si nous combinons deux machines de type client/ serveur, les deux premières machines ne peuvent pas être à l'état q1 en même temps. 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. Dans ce qui suit, nous nous concentrons sur le cas plus général d'un accouplement entièrement asynchrone des MEF

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

62 Description formelle Dans le cas de plusieurs files d’attentes, les vocabulaires doivent êtres disjoints M l’ensemble des files d’attentes m M, l’indice d’une file d’attente, 0mM 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 

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

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

65 MEF non déterministe généralisée
Un automate fini non déterministe généralisé (GNFA) est un quintuplet: (Q, Σ, T, q0, q1) Q est un ensemble fini d'états Σ est un ensemble fini de symboles T : (Q -{q0}) × (Q - {q1}) → R q0  Q est l'état de départ q1  Q est l'état d'acceptation Où R est la collection de toutes les expressions rationnelles sur l'alphabet Σ. 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 = {q0, q1}.

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

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

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

69 Minimisation des MEF

70 Minimisation des MEF 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  d(a)  T / T(qi, d(a) ) = T(qj, d(a) )  les états équivalents sont non distinguables Une MEF est réduite (minimale) si elle n’admet pas d’états équivalents 2 MEFs sont équivalentes si 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

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

72 Minimisation des MEF avec une table de vérification
Construction d’un tableau de vérification (inclusion) Une case pour chaque combinaison de deux états si les sorties des états sont différentes, marquez la case avec "1" 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" si "1"  alors cette case est "1"   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

73 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

74 Algorithme de minimisation des MEF
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 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

75 Algorithme de minimisation des MEF
La procédure termine toujours car la taille du tableau E est finie, À l’étape 2, chaque élément ne peut changer qu’une seule fois de 1 à 0 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 Optimisation : E est symétrique E[i,j]=E[j,i] Chaque état est équivalant à lui même

76 Exemple  (q0, q3), (q1, q5) et (q2, q4) sont équivalents

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

78 Une variante pratique de ce problème
Supposez que nous avons des spécifications formelles de protocole, sous la forme de MEF et une implémentation de ces spécifications. 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 Nous ne pouvons rien savoir avec certitude au sujet de la véritable structure interne de l‘implantation

79 Une variante pratique de ce problème
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 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 Ce problème est connu dans la théorie des MEF comme problème de fausse détection ou de test de conformité.

80 Combinaison des MEFs 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 Méthodes de validation des protocoles incrémentales Méthodes d'abstraction par étapes Le problème est de trouver le quadruplet (Q, q0, M,T) de la machine combinée à partir des 2 machines (Q1, q10, M1,T1) et (Q2, q20, M2,T2)

81 Combinaison des MEF Définir l'ensemble de produit des deux ensembles d'états des deux MEFs. Si la première machine a |Q1| états et la deuxième machine a |Q2| états, le produit contient |Q2|x|Q1| é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 q0 de la nouvelle machine est la combinaison q01 q0 2. L'ensemble M de files d'attente est M1  M2 Le vocabulaire V est le vocabulaire combiné de M1 et M2, l'ensemble d'actions a est l'union de toutes les actions que les différentes machines peuvent effectuer Pour chaque état q1q2  Q, pour chaque action a, T est un choix non déterministe des relations correspondantes de M1 et M2 séparément, une fois placé aux états individuels q1 et q2.

82 Combinaison des MEF Simplifier des comportements complexes Dans les validations des protocoles  combiner deux machines en une seule élimination des interactions internes, c.-à-d., l'interface originale entre les deux machines 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. le modèle de MEF que nous avons développé jusqu'ici ne peut pas facilement représenter des modèles de PROMELA. 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.

83 Extension d’une MEF 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 Conditions : affectation des valeurs aux variables, opérateurs logiques et arithmétique 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

84 Extension d’une MEF Deux contraintes:
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 : Introduction d’une primitive : variable sous forme d’une file (nom symbolique, objet abstrait) 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

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

86 Extension d’une MEF MEFE : définie par (Q, q0, M, A, T)
A est l'ensemble des noms des variables. 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 Dans le langue de validation PROMELA : une condition est exécutable si seulement si elle est évalué vrais 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.

87 Actions input/output Les actions I/O définies en tant qu'ensembles ordonnés finis de valeurs. Les valeurs sont des constantes ou des expressions sur des variables de A. Par définition la première valeur d'un tel ensemble est la file d'attente de destination pour I/O. 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. La sémantique de l‘exécutabilité peut être aussi définie en PROMELA.

88 Exemple division euclidienne
MEFE 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 } 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

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

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

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

92 Table d’états

93 Table d’états équivalente

94 Autre exemple de MEFE (1/2)
Soit l’automate à états finis défini comme suite : L’ensemble en entrée X = (a, b} Le langage de cet automate est : Une séquence de b symboles est suivie d’un a Chaque symbole a est suivi d’au moins un symbole b Solution : MEF q1 q0 q2 q3 q4 q5 q6 q7 a b

95 Autre exemple de MEFE (2/2)
Solution MEFE: variable B_CNT (compteur b) Opérations sur les variables : &, ++, =, == b & (B_CNT==5) ERREUR b B_CNT=1 a B_CNT++ q2 q3 q1 q0

96 Généralisation et validation des protocoles
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 : simplifier le comportement dans B, (combinaison, fusion, généralisation, minimisation) des MEF. 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),

97 Généralisation et validation des protocoles
si on s’intéresse à prouver une propriété du module A on simplifie son environnement, B. sans changer A le comportement modifié de B ne permet pas au module A de passer son test. 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. La validation, nous donne le meilleur résultat 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.

98 Généralisation et validation des protocoles
Méthode de réduction d’un proctype PROMELA 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 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,

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

100 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 }

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

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

103 Conclusion RDP : simplicité conceptuelle basée sur la représentation graphique du mécanisme de l'interaction de processus clarté descriptive est perdu quand la taille du problème dépasse une limite modeste. 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. Les protocoles ont typiquement des grands nombres d'états au delà desquels un réseau de Pétri devient inutilisable.


Télécharger ppt "Conception des protocoles"

Présentations similaires


Annonces Google