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

1 Chapitre 2 Machines à états Remerciements au prof. Hasan Ural pour plusieurs exemples Auteur des transparents: L. Logrippo w3.uqo.ca/luigi.

Présentations similaires


Présentation au sujet: "1 Chapitre 2 Machines à états Remerciements au prof. Hasan Ural pour plusieurs exemples Auteur des transparents: L. Logrippo w3.uqo.ca/luigi."— Transcription de la présentation:

1 1 Chapitre 2 Machines à états Remerciements au prof. Hasan Ural pour plusieurs exemples Auteur des transparents: L. Logrippo w3.uqo.ca/luigi

2 INF6001 Chap 2 2 Exemple: un automate qui modèle le comportement dun ordinateur Au début il est en état éteint Lévénement allumer le met en état allumé Lévénement CtrAltDel le met en état login Lévénement login le fait passer à un des deux états: Login accepté Login refusé Sil accepte, lévénement clique sur icône Word le fait passer en état: prêt pour WordProcessing Noter: Ce qui précède est une abstraction. Certaines choses ne sont pas dites: p.ex. quel sera le résultat si CtrAltDel ne sont pas frappés simultanément On frappe CtrAltDel avant dallumer On fait des erreurs de frappe pendant le login Etc.

3 INF6001 Chap 2 3 Concept détat Le concept détat du système est une abstraction utile Représente une instantanée (snapshot) du contenu de la machine à un moment donné Déterminé par ce qui sest produit dans la machine avant Détermine ce qui peut se produire dans le futur État: global: état de tout le système dans son entièreté local: état dune entité dans le système Transitions détat: événements qui causent changements détats

4 INF6001 Chap 2 4 Machines à états Comportements possibles de cette machine: Elle peut : Envoyer un message 1, Puis recevoir un message 3 Puis envoyer un 4 Recevoir un 5, etc. Ou Recevoir un message 2 Puis recevoir un message 5 Puis envoyer un message 4 et retourner à pouvoir recevoir 5, etc. ! 4 état 1 état 2 état 3 état 4 ! 1? 2 ? 3 ? 5

5 INF6001 Chap 2 5 Notation + et – sont aussi utilisés pour indiquer la réception ou lenvoi dun message, respectivement ? et ! sont plus utilisés récemment

6 INF6001 Chap 2 6 Tableaux de transition détats état 1 état 2 état 3 état 4 ! 1 ? 2 ? 3 ? 5 ! 4 !1!4?2?3? Machine partiellement spécifiée: Les transitions impossibles ne sont pas spécifiées. Nous pouvons interpréter ces transitions comme transitions à un état erreur

7 INF6001 Chap 2 7 Différents modèles à états Les machines à états, aussi appelés automates, sont un concept très utilisé en informatique Un bon nombre de défs différentes existe, chacun avec sa propre théorie avec des légères différences Tous les modèles suivants sont utilisés dans la conception des protocoles, et aussi dans la conception de circuits

8 INF6001 Chap 2 8 Systèmes de transition Le concept le plus général Nous avons un ensemble détats (pas nécess. fini) et une relation de successeur entre états Exemple de s.d.t.: état 1 état 2 état 3 état 4

9 INF6001 Chap 2 9 Systèmes de transition étiquetés (LTS, labeled transition systems) Les transitions sont nommées état 1 état 2 état 3 état 4 a b c d e

10 INF6001 Chap 2 10 Utilisation des étiquettes Nous pouvons donner une signification aux étiquettes, p.ex. ?x Veut dire une entrée (input) dune valeur x !y Veut dire une sortie (output) dune valeur y état 1 état 2 état 3 état 4 ! 1 ? 2 ? 3 ? 5 ! 4

11 INF6001 Chap 2 11 Machines de Mealy Chaque arête est étiquetée par une paire Entrée/Sortie Voulant dire que quand une entrée comme spécifié se vérifie, il y a la sortie spécifiée et la transition détat a aussi lieu état 1 état 2 état 3 état 4 1/b 2/a 3/d 5/c 4/b Quand lentité spécifiée reçoit un 2 en état 1, elle fait sortir un a et le système effectue une transition à létat 2

12 INF6001 Chap 2 12 Le service TCP décrit comme machine de Mealy

13 INF6001 Chap 2 13 Notes sur la diagramme de transition TCP The two transitions leading to the ESTABLISHED state correspond to the opening of a connection, and the two transitions leading from the ESTABLISHED state are for the termination of a connection. The ESTABLISHED state is where data transfer can occur between the two ends in both the directions. The client does an active open which causes its end of the connection to send a SYN segment to the server and to move to the SYN_SENT state. If a connection is in the LISTEN state and a SYN segment arrives, the connection makes a transition to the SYN_RCVD state and the server takes the action of replying with an SYN+ACK segment. The arrival of the SYN+ACK segment causes the client to move to the ESTABLISHED state and to send an ACK back to the server. When this ACK arrives the server finally moves to the ESTABLISHED state.

14 INF6001 Chap 2 14 Modèle architectural Usager client Usager serveur ClientServeur ActiveOpen SYN

15 INF6001 Chap 2 15 Ceci est une application du concept de: Établissement en trois étapes : Three-way handshake Client: Je suis prêt à envoyer (SYN) Serveur: Daccord (SYN+ACK) Client: Allons-y donc (ACK) Le client et le serveur peuvent alors commencer à transférer des données Invitation Acceptation (ou non) Confirmation

16 INF6001 Chap 2 16 Machines de Moore Plus semblables aux systèmes de transitions étiquetés (cependant elles sont normalement finies) Chaque arête est associé à un symbole, qui dénote un événement abstrait (une entrée,une sortie…) qui cause la transition état 1 état 2 état 3 état 4 b a d c b

17 INF6001 Chap 2 17 Service de la couche transport, Cas dusage

18 INF6001 Chap 2 18 Le service de transport OSI décrit comme machine de Moore Idle Incoming Connection Pending Outgoing Connection Pending Data Transfer Ready T-DiscReq T-DiscInd T-DiscReq T-DiscInd T-ConReqT-ConInd T-DiscReq T-DiscInd T-ConConf T-ConResp T-DatReq, T-DatInd T-ExpDatReq, T-ExpDatInd Ce diagramme ne décrit que des séquences possibles dévénements (nincluant pas des E/S)

19 INF6001 Chap 2 19 Service TCP (?)

20 INF6001 Chap 2 20 Comparaison OSI-TCP Il est intéressant de faire une comparaison de la description de service transport de OSI et TCP Laissée à vous comme exercice La description OSI est abstraite, laisse le travail au protocole Dans TCP, il ny a pas de distinction entre PDUs et SDUs TCP décrit déjà le protocole quand il décrit le service P.ex. notez comment la spec service TCP utilise les messages dACK. Dans l OSI, lacquittement est une fonction de protocole Pour OSI, 2-way handshake est suffisant car il suppose que les couches sous-jacentes sont fiables, TCP demande 3-way. Mélange de la notion détat de la connexion et détat du client- serveur P.ex. létat Established est un état global, des deux côtés qui savent que maintenant ils peuvent recevoir/envoyer Tandis que létat SYN_SENT est propre du client!

21 INF6001 Chap 2 21 Le passage 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

22 INF6001 Chap 2 22 Machines communicantes Une machine à états peut définir un système entier ou une partie de système Si elle définit une partie dun 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

23 INF6001 Chap 2 23 Communication asynchrone Dans la communication asynchrone, les machines communiquent par des canaux pouvant contenir des primitives de communication (PDUs ou SDUs) Normalement modélisés par des files FIFO infinies et sans pertes de données Ces canaux sont une abstraction pour le fournisseur de service sous- jacent Une machine peut donc mettre des données dans une file et continuer son travail, peut être mettant dautres données dans la même file plus tard Lautre machine prendra des données de la file quand elle le voudra. … … C 12 C 21 Machine A Machine B AB Service Provider

24 INF6001 Chap 2 24 Modèles de machines à états finis communicantes asynchrones (appelés aussi CSM ou CFSM, Communicating Finite-state Machines) Machines à états finis communicantes à moyen de files dattentes P.Ex un client et serveur. 1 requête daccès 2 permission daccès 3 refus daccès 4 terminaison daccès … … !1 ?3 ?2 ! ?1 !3 ! Files FIFO et sans pertes C 12 C 21 ?4

25 INF6001 Chap 2 25 Exécution du système Létat global initial est lensemble de tous les états initiaux des composants et lensemble de tous les contenus de files initiales Dans ce cas, ε file vide… Dans cet état, le seul événement qui peut se produire est lenvoi dun 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 ! ?1 !3 ! Files FIFO et sans pertes C 12 C 21 … … !1 ?3 ?2 ! ?1 !3 ! Files FIFO et sans pertes …… …… !1 ?3 ?2 ! ?1 !3 ! Files FIFO et sans pertes C 12 C 21 ?4

26 INF6001 Chap 2 26 Construction de la 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 puis recevoir Après ça, le client peut envoyer un 3, ce qui change létat global à, avec un 3 dans la file de sortie du client ou un 2, ce qui change létat global à, avec un 2 dans la file de sortie du client Etc. … … !1 ?3 ?2 ! ?1 !3 ! Files FIFO et sans pertes C 12 C 21 …… …… !1 ?3 ?2 ! ?1 !3 ! Files FIFO et sans pertes C 12 C 21 C 12 C 21 ?4

27 INF6001 Chap 2 27 La machine globale du système (produit asynchrone), !1 ?1 !3 !2 ?2 !4 !1 ?4 ε : canal vide [4,1] :canal contenant 4 puis 1 ?4 ?3

28 INF6001 Chap 2 28 Équivalence détats Pourquoi sommes-nous retournés à un état précédent après certaines transitions? Car nous avons détecté que le nouveau état était équivalent à un état déjà trouvé avant Car les deux machines sont dans les mêmes états et le contenu des canaux est le même Plus en général, deux états sont équivalents sils permettent les mêmes séquences dévénements futurs

29 INF6001 Chap 2 29 Machines globales finies et infinies On voit que C12 naura jamais plus de 2 messages et C21 jamais plus d1 Nous avons ici une machine globale qui est finie La machine globale dun système nest pas nécessairement finie Nous pouvons avoir un nombre infini détats si les files peuvent grandir à longueurs arbitrairement grandes Le fait quune file puisse être infinie est une caractéristique à prendre en considération (nous verrons…)

30 INF6001 Chap 2 30 Analyse daccessibilité Le processus dobtenir la machine globale à partir des machines locales sappelle Analyse daccessibilité, reachability analysis Le graphe obtenu faisant lanalyse daccessibilité sappelle Graphe daccessibilité

31 INF6001 Chap 2 31 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 nexistent 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 connections Ils ne sont pas infinis, même si leur capacité peut être très grande

32 INF6001 Chap 2 32 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: Ou sinon définir les canaux avec un troisième processus, voir modèle synchrone ?perte ?réception Dans ce cas le message est ignoré

33 INF6001 Chap 2 33 Modèle de communication synchrone Dans le modèle synchrone, nous navons pas de canaux prédéfinis Les entités communiques directement par un mécanisme de communication partagé La communication entre deux entités est un fait qui implique les deux simultanément Une entrée et une sortie deviennent une seule action Mécani sme de commu nication Machine A Machine B

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

35 INF6001 Chap 2 35 Critique du modèle synchrone Lenvoyeur et le récepteur sont bloqués ensemble pendant lexécution dune 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 Utilisé dans les algèbres de processus: CCS, CSP, LOTOS

36 INF6001 Chap 2 36 Rélation entre les deux modèles Le modèle synchrone peut modéliser le modèle asynchrone par lutilisation dentités canaux intermédiaires Le modèle asynchrone avec files de longueur 0 correspond au modèle synchrone canaux A B

37 INF6001 Chap 2 37 Conditions derreur dans les systèmes synchrones Dans les systèmes synchrones, il y a essentiellement une seule possibilité derreur, l impasse (deadlock), le fait que il ny a pas façon de sortir dun état global Étant donné que normalement un système réparti est censé être toujours en fonctionnement, une impasse est considérée un problème !1 ?3 ?2 ! ?1 !3 ! ? ,20 11,21 12,22 Impasse, pas détat successeur

38 INF6001 Chap 2 38 Conditions derreur dans les systèmes asynchrones Dans le cas asynch, il y a plusieurs cas derreur 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 dun canal qui ne peut pas être reçu car il ny 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 symptome dun problème de conception

39 INF6001 Chap 2 39 Un CFSM très malade… !a?d ?b!c ?b … … C 12 C ?c !b ?a !d ?a

40 INF6001 Chap 2 40 Arbre daccessibilité partiel, !a !b etc. !c !b ?b ?a ?b !c Impasse Canaux vides, Aucune action possible Réceptions non specifiées: a ne peut pas être reçu, mais il y a dautres actions possibles Impasse,Réception non spec bloquante: c ne peut pas être reçu et il ny a pas dautres actions possibles a!

41 INF6001 Chap 2 41 Dans une seule feuille…,<ε,ε>,,<ε,b>,,,<ε,ε>,,< c,ε>,<ε,ε> !a !b etc. !c !b ?b ?a ?b !c Impasse Réceptions nonspecs Réceptions nonspec bloquante,<ε,ε>,,<ε,b>,,,<ε,ε>,,< c,ε>,<ε,ε> !a !b etc. !c !b ?b ?a ?b !c Impasse Réceptions nonspecs Réceptions nonspec bloquante

42 INF6001 Chap 2 42 Exercice (pas à rendre au prof cette année) Compléter le graphe daccessibilité de ce dernier exemple: la solution devrait comprendre 34 transitions et 25 états Trouverez-vous dautres erreurs? Vous trouverez aussi des transitions non- exécutables et des états non-atteignables Calculez aussi le produit synchrone: Allez-vous loin? Modifiez donc la machine de gauche comme ça: Écrivez vos réflexion au sujet des deux modèles, du point de vue danalyse daccessibilité, détection derreurs, etc. !a?d ?b!c ?b a!

43 INF6001 Chap 2 43 Sources Le protocole client-serveur fut introduit dans: P. Zafiropulo et al. Towards Analyzing and Synthetizing Protocols. IEEE Trans. Comm. COM-28(4) , 1980 Le protocole que nous venons de voir est présenté dans: Ce chapitre de thèse contient aussi dautres infos sur lanalyse daccessibilité

44 INF6001 Chap 2 44 Généralisation au cas de plusieurs machines Jusquà présent, nous avons discuté le cas de 2 machines communicantes Les mêmes idées peuvent être généralisées au cas de 3, 4, … machines communicantes Tant dans le cas de composition synchrone, que asynchrone Et effectivement, tout système de protocoles a besoin dau moins 4 machines pour pouvoir être exprimé complètement: Usager A Protocole Usager B Les machines pour les usagers pourraient être extrêmement simples: Prendre des données, les utiliser, prendre, utiliser…

45 INF6001 Chap 2 45 Processus environnement On postule souvent lexistence dun processus externe non défini qui reçoit ou envoie des événements: lenvironnement

46 INF6001 Chap 2 46 Problèmes fondamentaux dans lanalyse des protocoles Problèmes dindécidabilité Problèmes dexplosion détats

47 INF6001 Chap 2 47 Problèmes dindécidabilité Une des conséquences de linsolvabilité du problème de larrêt de machines de Turing est que déterminer si un canal est borné ou non est indécidable On peut chercher à construire la machine globale, si cette construction sachève nous saurons mais cette construction pourrait continuer à jamais Malheureusement, le problème de décider limpasse, etc. pour les protocoles dont les canaux ne sont pas bornés est aussi indécidable Nous pouvons toujours faire lanalyse en faisant l hypothèse quaucun canal ne contienne jamais plus de n éléments, pour un n donné Cette analyse ne sera pas complètement valable si un canal peut en fait excéder cette borne

48 INF6001 Chap 2 48 Entrelacement dévénements et explosion détats Malheureusement, même dans le cas de canaux bornés, nous aurons toujours lexplosion détats, à cause du besoin de considérer toutes les possibilités d entrelacement dévénements qui ne sont pas directement reliés P. ex. considérer toutes les possibilités dentrelacement dexécution de 2 machines de 2 états chaque peut demander de considérer jusquà 5 états globaux. Et ce nombre monte de façon exponentielle! A B X Supposons que ces deux entités communiquent vers lexterne (lenvironnement), sans communiquer entre elles Y !m !n A,X B,X B,Y A,Y !m !n Deux scénarios possibles

49 INF6001 Chap 2 49 Calcul du nombre détat globaux (Cas Asynchrone) Si nous composons deux machines de M et N états, nous pourrions avoir pour ce fait MxN états Ceci se trouve augmenté par le nombre de configurations possibles des deux canaux Pour calculer ce dernier, il faut faire une hypothèse concernant leur longueur maximale Un canal de dimension maximale 1 et avec p messages possibles peut être ou bien vide ou bien contenir un des messages Ceci fait p 0 +p 1 possibilités Un canal de dimension maximale 2 et avec p messages possibles peut être vide, ou peut contenir un message, ou peut contenir 2 messages Ceci fait p 0 +p 1 +p 2 possibilités

50 INF6001 Chap 2 50 Formule générale de calcul Donc pour deux machines de M et N états, deux canaux de longueur m et n, pouvant contenir respectivement p et q messages différents, le nombre maximal détats possibles est: Ceci implique que la construction de la machine globale en principe est un problème de complexité exponentielle M x N x (p 0 +p p m ) x (q 0 +q q n )

51 INF6001 Chap 2 51 Cas pratique Dans le cas du protocole client-serveur déjà discuté, nous avons: M=N=3 p=2 (les deux messages sont 1 et 4) q=2 (les deux messages sont 3 et 2) Supposant quon sache que (impossible à savoir auparavant!): Le canal C 12 ne sera jamais plus long de2 Le canal C 21 ne sera jamais plus long de 1 Le nombre maximum total détats est: 3 x 3 x ( ) x ( ) = 9 x 7 x 3 = 189 Dont seulement 8 sont accessibles comme nous avons vu.

52 INF6001 Chap 2 52 Analyse daccessibilité Cas synchrone Dans le cas synchrone, le nombre max détats est le produit des nombre des états des machines communicantes Cependant il faudra avoir plus de machines, car il faudra représenter les canaux en utilisant des machines additionnelles

53 INF6001 Chap 2 53 États accessibles Les concepts détat global et état accessible sont importants Certains logiciels construisent avant tout lespace global de tous les états possibles, faisant lhypothèse de certaines tailles maximales de canaux, et puis calculent la relation daccessibilité Dautres logiciels construisent les états accessibles au fur et à mesure À la volée, ou On the fly est une troisième manière de procéder. Lalgorithme ne garde pas en mémoire tout larbre, mais seulement la partie sur laquelle il est en train de travailler. Lalgorithme est beaucoup plus complexe et ne se prête pas à certains types de analyse

54 INF6001 Chap 2 54 En pratique Malgré la complexité élevée du problème de lanalyse daccessibilité, des logiciels optimisés disponibles aujourdhui permettent de construire le graphe daccessibilité de protocoles réels

55 INF6001 Chap 2 55 Techniques pour réduire lexplosion détats La réduction de lexplosion détats est un domaine de recherche très développé Quelques techniques sont: Chercher à établir des classes déquivalence entre états (p.ex. états symétriques) Chercher à spécifier les machines à composer avec le plus petit nombre détats possible (ignorer les détails moins importants, comme les transitions internes) Recherche aléatoire (random search): au lieu de chercher à explorer tous les états, en explorer un sous-ensemble choisi aléatoirement Recherche ciblée: au lieu de chercher à explorer tout le graphe, explorer seulement les parties dans lesquels nous sommes intéressés (celles dans lesquels une erreur pourrait se cacher) Explorer avant tout les transitions les plus probables Limiter la profondeur de larbre daccessibilité Nous pouvons aussi chercher à réduire lespace demandé par la représentation dun état en mémoire Un seul bit par état, v. SPIN

56 INF6001 Chap 2 56 Critique du concept détat Bien que les concepts détat et transition soient la base de toutes les recherches sur lingénierie de protocoles, il faut savoir que dans la réalité les états et les transitions nexistent pas! P.ex. quand je lis lécran il est utile de penser que lécran reste dans un certain état, puis fait une transition quand je pèse sur une touche En réalité, ce que je vois est le résultat dun flux continu de courants Cest partiellement à cause de ce fait quil y a beaucoup de variations dans les concepts détats et transitions utilisés Et que la vérification faite sur la base du concept détat nest pas infaillible Cependant le concept détat est très utile pour la conception, et pour éviter et dévoiler un grand nombre de possibilités derreur

57 INF6001 Chap 2 57 Questions 1 Dans le modèle asynchrone, pouvons-nous admettre que deux événements, cest-à dire deux transitions détats, soient simultanés? Le modèle asynchrone discuté dans ce cours admet quune seul événement, une seule transition détats se produise à la fois dans le système. En informatique, celle-ci est une hypothèse commune. Cette hypothèse est justifiée par le fait que deux événements exactement simultanés sont rares ou non-existants en nature (il y en aura normalement un qui se produit ou commence un peu avant lautre). On étudie cependant parfois des modèles de parallélisme dits de simultanéité véritable (true parallelism), où ceci est possible, mais ceci nest pas le sujet de ce cours.

58 INF6001 Chap 2 58 Question 2 Quarrive si une file peut grandir à jamais? Dans ce cas, il y aura (au moins) un chemin dans larbre daccessibilité dans lequel la machine pourra avoir un nombre grandissant détats. Dans ce chemin, la machine globale ne retournera jamais à un état déjà vu Donc, machine globale infinie. !a ?a La machine de droite nest pas obligée à prendre tout de suite


Télécharger ppt "1 Chapitre 2 Machines à états Remerciements au prof. Hasan Ural pour plusieurs exemples Auteur des transparents: L. Logrippo w3.uqo.ca/luigi."

Présentations similaires


Annonces Google