1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs...

75
1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples

Transcript of 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs...

Page 1: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

1

Chapitre 2

Machines à états

w3.uqo.ca/luigiRemerciements au prof. Hasan Ural pour plusieurs exemples

Page 2: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 2

Exemple: un automate qui modèle le comportement d’un 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é

S’il 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 d’allumer On fait des erreurs de frappe pendant le login Etc.

Page 3: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 3

Concept d’étatLe concept d’état du système est une abstraction utile

Dans la réalité il n’y a pas d’états … Donc normalement, on peut choisir les états de manières différentes

Représente une instantanée (snapshot) du contenu de la machine à un moment donné Déterminé par ce qui s’est produit dans la machine avant Détermine ce qui peut se produire dans le futur État: local: état d’une entité dans le système global: état de tout le système dans son entièreté,

incluant donc toutes les entitésTransitions d’état: événements qui causent changements d’états

Page 4: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 4

Machines à étatsComportements 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.

L’état 1 est un état ‘initial’L’état 5 est un état ‘final’

! 4

état 1 état 2

état 3 état 4

! 1

? 2

? 3

? 5

état 5

? 2

Page 5: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 5

Tableaux de transition d’états

état 1 état 2

état 3 état 4

! 1

? 2

? 3

? 5! 4

!1 ?2 ?3 !4 ?51 3 22 43 4

4 5 2

Machine partiellement spécifiée:Les transitions impossibles ne sont passpécifiées.Nous pouvons interpréter ces transitions comme transitions à un état erreur

état 5

? 2

Page 6: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 6

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, ainsi que dans la conception de circuits, de logiciels, etc.

Page 7: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 7

Systèmes de transition

Le concept le plus généralNous avons un ensemble d’états (pas nécess. fini) et

une relation de successeur entre étatsExemple de s.d.t.:

état 1 état 2

état 3 état 4

Page 8: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 8

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

Page 9: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 9

Utilisation des étiquettes

Nous pouvons donner une signification aux étiquettes, p.ex. ?x Veut dire une entrée (input) d’une valeur x !y Veut dire une sortie (output) d’une valeur y

état 1 état 2

état 3 état 4

! 1

? 2

? 3

? 5! 4

Page 10: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 10

Notation

+ et – sont aussi utilisés pour indiquer la réception ou l’envoi d’un message, respectivement

? et ! sont plus utilisés récemment

Page 11: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 11

Machines de Mealy

Chaque arête est étiquetée par une paireEntré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/c4/b

Quand l’entité 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

Page 12: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

Exemple déjà vu de système téléphonique

INF6001 Chap 2 12

Idle

Dialing

OffHookDialTone

PathActive

DialDIgitsClicks

RingingOnHookClick

CallAlertStartRinging

OffHookStopRing

Page 13: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 13

Le service TCP décrit comme machine de Mealyhttp://www.ssfnet.org/Exchange/tcp/tcpTutorialNotes.html

Quelques transmissions n’ont pas de sortie

Page 14: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 14

Modèle architectural

Usager client

Usager serveurClient Serveur

ActiveOpen

SYN

SYN+ACK

ACK

Page 15: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

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: D’accord (SYN+ACK) Client: Allons-y donc (ACK) Le client et le serveur peuvent alors commencer à transférer des données

Invitation

Acceptation

Confirmation

SYN

SYN+ACK

ACK

Client ClientServeur Serveur

Page 16: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 16

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.

For more explanations: http://www.ssfnet.org/Exchange/tcp/tcpTutorialNotes.html

Attention: La situation réelle est plus compliquée et ce diagramme est une simplification Il n’y a pas de diagramme de transition d’état vraiment

fidèle pour TCP Notez qu’il n’est pas clair si ce diagramme représente

les états du client, du serveur, ou de la connexion

Page 17: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

Difficultés du modèle de transitions d’états

Cet exemple montre que pour pouvoir exprimer clairement des protocoles dans des modèles de transitions d’états concis, on fait parfois des simplifications

Malheureusement les modèles de transition résultants ne sont pas exacts et ne sont donc pas appropriés pour l’analyse discutée dans ce cours…

Des modèles plus complexes, plus exacts, peuvent être requis

INF6001 Chap 2 17

Page 18: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 18

Machines de Moore

Plus semblables aux systèmes de transitions étiquetésChaque 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

cb

Page 19: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 19

T-ConReq

T-ConConf

T-ConIndT-ConResp

A B

Connexion avec Succès AB

T-ConReq

T-DiscInd

T-ConIndT-DiscReq

A B

Connexion refusée par B

A B

Tentative deconnexion de A refuséepar le fourniss. de service

T-ConReq

T-DiscInd

T-DatReqT-DatInd

A B

Transfert DonnéesAB

T-DiscReqT-DiscInd

A B

A décide dedéconnecter

T-DiscReqT-DiscReq

A B

Les deux décidentde déconnecter(collision)

T-DiscIndT-DiscInd

A B

Service de la couche transport,Cas d’usage

Page 20: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 20

Le service de transport OSI décrit comme machine de Moore (un seul T-SAP)

Idle

IncomingConnection

Pending

OutgoingConnection

Pending

Data TransferReady

T-DiscReqT-DiscInd

T-DiscReqT-DiscInd

T-ConReq T-ConInd

T-DiscReqT-DiscInd

T-ConConfT-ConResp

T-DatReq, T-DatInd

Ce diagramme nedécrit que des séquencespossibles d’événements(n’incluant pas des E/S)

Simplifié!

Page 21: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

Scénarios possibles: deux T-SAP

INF6001 Chap 2 21

(Notes de cours du Prof. Bochmann)

Page 22: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

Le protocole Transport OSI décrit comme machine de Mealy

INF6001 Chap 2 22(Notes de cours du Prof. Bochmann)

Très simplifié!

Page 23: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

États et transitions (H. Ben Yedder, 2010)

INF6001 Chap 2 23

Montre en même temps le fonctionnement du service et du protocole

Page 24: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 24

Service TCP (Machine Mealy)

Page 25: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

Une présentation plus détaillée (wikipédia)

INF6001 Chap 2 25

Page 26: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 26

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-TS est abstraite, laisse le travail au protocole Dans TCP, il n’y 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 d’ACK. Dans l’ OSI, l’acquittement 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. OSI-TS décrit la communication entre deux pairs

Peuvent être clients-serveurs, n’importe Dans TCP les deux entités ne sont pas égales 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! Pour utiliser les notions discutées dans ce cours dans l’analyse de TCP il est

nécessaire de décomposer cette machine en : Machine du client Machine du serveur

Page 27: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 27

Le passage du temps dans les machines

En principe, les transitions sont instantanéesLe temps passe quand le système est dans un étatCependant il y a plusieurs variations à ce concept

Différents types de machines temporisées

Page 28: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 28

Machines 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

Page 29: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 29

Communication asynchrone

Dans la communication asynchrone, les machines communiquent par un ‘milieu’ souvent représenté 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 d’autres données dans la même file plus tard

L’autre machine prendra des données de la file quand elle le voudra.

…C12

C21

Machine A Machine B

A B

Service Provider

Page 30: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 30

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 d’attentes

P.Ex un client et serveur. 1 requête d’accès2 permission d’accès3 refus d’accès4 terminaison d’accès

!1?3

?2

!4

10

11

12

?1!3

!2

20

21

22

Files FIFO et sans pertes

C12

C21

?4

Page 31: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 31

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

C12

C21

!1?3

?2

!4

10

11

12

?1!3

!2

20

21

22

Files FIFO et sans pertes

……

……

!1?3

?2

!4

10

11

12

?1!3

!2

20

21

22

Files FIFO et sans pertes

C12

C21

?4

Page 32: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 32

Construction de la machine globale du système

Chaque état global du système spécifie: L’état de chacune 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 à <11,20>, avec un 3 dans la file de sortie du client ou un 2, ce qui change l’état global à <11,22>, avec un 2 dans la file de sortie du client

Etc.

!1?3

?2

!4

10

11

12

?1!3

!2

20

21

22

Files FIFO et sans pertes

C12

C21

……

……

!1?3

?2

!4

10

11

12

?1!3

!2

20

21

22

Files FIFO et sans pertes

C12

C21

C12

C21

?4

Page 33: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

Transitions possibles à l’état initial?

INF6001 Chap 2 33

!1?3

?2

!4

10

11

12

?1!3

!2

20

21

22

Files FIFO et sans pertes

C12

C21

?4

Transitions possibles à l’état initial?

Page 34: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

Transitions possibles?

INF6001 Chap 2 34

!1?3

?2

!4

10

11

12

?1!3

!2

20

21

22

Files FIFO et sans pertes

C12

C21

?41

Page 35: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

Transitions possibles?

INF6001 Chap 2 35

!1?3

?2

!4

10

11

12

?1!3

!2

20

21

22

Files FIFO et sans pertes

C12

C21

?4

Page 36: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

Retrouver un état précédent

INF6001 Chap 2 36

!1?3

?2

!4

10

11

12

?1!3

!2

20

21

22

Files FIFO et sans pertes

C12

C21

?4

Après la trace: !1, !1, !3 nous nous retrouvons à l’état global suivant:

3

La seule transition possible nous ramène à un état déjà vu.

Page 37: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 37

La machine globale du système (composition asynchrone)

<10,20>,<ε, ε>

<11,20>,<1, ε>

<11,21>,< ε, ε>

<11,20>,< ε, 3>

<11,22>,< ε, 2>

<12,22>,< ε, ε >

<10,22>,< 4, ε >

<11,22>,<[4,1], ε >…

!1?3

?2

!4

10

11

12

?1!3

!2

20

21

22

Files FIFO et sans pertes

C12

C21

……

……

!1?3

?2

!4

10

11

12

?1!3

!2

20

21

22

Files FIFO et sans pertes

C12

C21

C12

C21

!1

?1

!3!2

?2

!4

!1

?4

?4

ε : canal vide

[4,1] :canal contenant 4 puis 1

?4

?3

Page 38: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 38

É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 s’ils permettent les mêmes séquences d’événements futurs

Page 39: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 39

Machines globales finies et infinies

On voit que C12 n’aura jamais plus de 2 messages et C21 jamais plus d’1

Nous avons ici une machine globale qui est finie La machine globale d’un système n’est pas nécessairement

finie Nous pouvons avoir un nombre infini d’états si les files

peuvent grandir à longueurs arbitrairement grandes Le fait qu’une file puisse être infinie est une caractéristique à

prendre en considération (nous verrons…)

Page 40: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 40INF6001 Chap 2

Machines infinies

Une file peut grandir ‘à jamais’ Dans ce cas, il y aura (au moins) un chemin dans l’arbre

d’accessibilité dans lequel la machine pourra avoir un nombre toujours 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 n’est pas obligée à prendre tout de suite

canaux

Page 41: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 41

Analyse d’accessibilité

Le processus d’obtenir la machine globale à partir des machines locales s’appelle Analyse d’accessibilité, reachability analysis

Le graphe obtenu faisant l’analyse d’accessibilité s’appelle Graphe d’accessibilité

Page 42: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 42

Critique du modèle de communication asynchroneLe 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 peut fausser 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 connections

Ils ne sont pas infinis, même si leur capacité peut être très grande

Page 43: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 43

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 comme troisième processus, voir modèle synchrone

?perte

?réception

Dans ce cas le message est ignoré

Page 44: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 44

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é 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écanisme de communication

Machine A Machine B

Page 45: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 45

Machine globale pour le cas synchrone(aussi appelée composition synchrone)

!1?3

?2

!4

10

11

12

?1!3

!2

20

21

22

?4

La combinaison de !1 et ?1 donne une seule action 1

13

2

10,20

11,21

12,22

4

Page 46: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 46

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

Utilisé dans les algèbres de processus: CCS, CSP, LOTOS

Page 47: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 47

Rélation entre les deux modèles

Le modèle synchrone peut simuler le modèle asynchrone par l’utilisation d’entités ‘canaux’ intermédiaires

Le modèle asynchrone avec files de longueur 0 correspond au modèle synchrone

canaux

AB

Page 48: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 48

Conditions d’erreur dans les systèmes synchrones

Dans les systèmes synchrones, il y a essentiellement une seule possibilité d’erreur, l’impasse (deadlock), le fait que il n’y a pas façon de sortir d’un é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

!6

10

11

12

?1!3

!2

20

21

22

?4

13

2

10,20

11,21

12,22Impasse, pas d’état successeur

Page 49: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 49

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 symptome d’un problème de conception

Page 50: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 50

Un CFSM très malade…

!a?d

10

11

12

?b !c

?b

?b…

…C12

C21

20

21

22

23

?c

!b

?a

!d

?a

Page 51: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 51

Arbre d’accessibilité partiel

<10,20>,< ε, ε >

<11,20>,<a, ε> <10,21>,< ε,b>

<12,20>,<ac,ε> <11,21>,<a, b> <11,21>,< ε, ε >

<12,21>,<a, ε > <12,21>,< c, ε >

<12,22>,< ε, ε >

!a !b

etc. etc.

!c !b

?b

?a

?b

!c

ImpasseCanaux vides,Aucune action possible

Réceptionsnon specifiées:a ne peut pasêtre reçu, mais il y a d’autres actions

possibles

Impasse,Réceptionnon spec bloquante: c ne peut pas être reçu et il n’y a pas d’autres actions possibles

a!

Page 52: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

Réception non-spécifiée bloquante

Après la trace !b, ?b, !c

INF6001 Chap 2 52

!a?d

10

11

12

?b !c

?b

?b…

…C12

C21

20

21

22

23

?c

!b

?a

!d

?a

!a?d

10

11

12

?b !c

?b

?b……

……C12

C21

C12

C21

20

21

22

23

?c

!b

?a

!d

?a

<12,21>,< c, ε >

Machine 2 ne peut pas recevoir le cMachine 1 ne peut rien envoyer, ni recevoir

c

Page 53: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

Impasse - deadlock

INF6001 Chap 2 53

<12,22>,< ε, ε >Les deux machines ne peuvent rien envoyerEt il n’y a rien à recevoir dans les files!

!a?d

10

11

12

?b !c

?b

?b…

…C12

C21

20

21

22

23

?c

!b

?a

!d

?a

!a?d

10

11

12

?b !c

?b

?b……

……C12

C21

C12

C21

20

21

22

23

?c

!b

?a

!d

?a

Page 54: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

Réception non spécifiée non bloquante

INF6001 Chap 2 54

!a?d

10

11

12

?b !c

?b

?b…

…C12

C21

20

21

22

23

?c

!b

?a

!d

?a

!a?d

10

11

12

?b !c

?b

?b……

……C12

C21

C12

C21

20

21

22

23

?c

!b

?a

!d

?a

<12,20>,<ac,ε>La file C12 contient a au début mais la machine 2 est dans son état 20 et ne peut pas le recevoir Ceci ne bloque pas le système car la machine 2 peut envoyer un message et prendre a plus tardPossibilité d’erreur, cas à étudier

ac

Page 55: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 55

Dans une seule feuille…

<10,20>,< ε, ε >

<11,20>,<a, ε> <10,21>,< ε,b>

<12,20>,< ac,ε> <11,21>,<a, b> <11,21>,< ε, ε >

<12,21>,<a, ε > <12,21>,< c, ε >

<12,22>,< ε, ε >

!a !b

etc. etc.

!c !b

?b

?a

?b

!c

Impasse

Réceptionsnon specs Réceptions

non specbloquante

<10,20>,< ε, ε >

<11,20>,<a, ε> <10,21>,< ε,b>

<12,20>,< ac,ε> <11,21>,<a, b> <11,21>,< ε, ε >

<12,21>,<a, ε > <12,21>,< c, ε >

<12,22>,< ε, ε >

!a !b

etc. etc.

!c !b

?b

?a

?b

!c

Impasse

Réceptionsnon specs Réceptions

non specbloquante

!a?d

10

11

12

?b !c

?b

?b…

…C12

C21

20

21

22

23

?c

!b

?a

!d

?a

!a?d

10

11

12

?b !c

?b

?b……

……C12

C21

C12

C21

20

21

22

23

?c

!b

?a

!d

?a

Page 56: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 56

Exercice (pas un devoir)

Compléter le graphe d’accessibilité de ce dernier exemple: la solution devrait comprendre 34 transitions et 25 états Trouverez-vous d’autres erreurs? Vous trouverez aussi des transitions non-

exécutables et des états non-atteignables Calculez aussi la composition synchrone:

Allez-vous loin? Modifiez la machine de gauche comme

montré ici: Quelles sont vos réflexion au sujet des deux

modèles, du point de vue d’analyse d’accessibilité, détection d’erreurs, etc.

!a?d

10

11

12

?b !c

?b

?ba!

Page 57: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 57

Sources

Le protocole client-serveur fut introduit dans: P. Zafiropulo et al. Towards Analyzing and Synthetizing

Protocols. IEEE Trans. Comm. COM-28(4) 651-661, 1980Le protocole que nous venons de voir est présenté

dans: http://lotos.site.uottawa.ca/ftp/pub/Lotos/Theses/hvds_phd/chapter_2.pdf Ce chapitre de thèse contient aussi d’autres infos sur

l’analyse d’accessibilité

Page 58: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 58

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 d’au moins 4

machines pour pouvoir être exprimé complètement:

Usager A

ProtocoleProtocole

Usager B Les machines pour les usagers pourraient être extrêmement simples:

Prendre des données, les utiliser, prendre, utiliser…

Page 59: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 59

Processus ‘environnement’

On postule souvent l’existence d’un processus externe non défini qui reçoit ou envoie des événements: l’environnement

Page 60: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 60

Problèmes fondamentaux dans l’analyse des protocoles

Problèmes d’indécidabilité

Problèmes d’explosion d’états

Page 61: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 61

Problèmes d’indécidabilité

Une des conséquences de l’insolvabilité du problème de l’arrê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 s’achève nous saurons, mais cette construction pourrait continuer à jamais

Malheureusement, le problème de décider l’impasse, etc. pour les protocoles dont les canaux ne sont pas bornés est aussi indécidable

Nous pouvons toujours faire l’analyse en faisant l’hypothèse qu’aucun 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

Page 62: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 62

Entrelacement d’événements etexplosion d’états

Malheureusement, même dans le cas de canaux bornés, nous aurons toujours l’explosion 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 d’entrelacement d’exé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

Y

!m !n

A,X

B,X

B,Y

A,Y

!m

!m

!n

!n

Deux scénarios possibles

Page 63: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 63

Calcul du nombre d’état globaux(Cas Synchrone)

Dans le cas synchrone pour deux machines, les états globaux sont de la forme <X,Y> où X est l’état d’une machine et Y est l’état de l’autre

Donc le nombre max d’états globaux 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

canaux

AB

Page 64: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 64

Calcul du nombre d’état globaux(Cas Asynchrone)

Si nous composons deux machines de M et N états, nous pourrions avoir pour ce fait un max de 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 maximaleUn canal de dimension maximale 1 et avec p messages

possibles peut être ou bien vide ou bien contenir un des messages Ceci fait p0+p1 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 p0+p1+p2 possibilités

Page 65: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 65

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 Les longueurs des canaux se trouvent à l’exposant

M x N x (p0+p1+...+pm) x (q0+q1+...+qn)

Page 66: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 66

Exemple – diapo suivante

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 qu’on sache que :

Le canal C12 ne sera jamais plus long de2 Le canal C21 ne sera jamais plus long de 1

Le nombre maximum total d’états est: 3 x 3 x (20+21+22) x (20+21) = 9 x 7 x 3 = 189 Dont seulement 8 sont accessibles comme nous avons vu.

Page 67: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 67INF6001 Chap 2 67

La machine globale du système (composition asynchrone)

<10,20>,<ε, ε>

<11,20>,<1, ε>

<11,21>,< ε, ε>

<11,20>,< ε, 3>

<11,22>,< ε, 2>

<12,22>,< ε, ε >

<10,22>,< 4, ε >

<11,22>,<[4,1], ε >…

!1?3

?2

!4

10

11

12

?1!3

!2

20

21

22

Files FIFO et sans pertes

C12

C21

……

……

!1?3

?2

!4

10

11

12

?1!3

!2

20

21

22

Files FIFO et sans pertes

C12

C21

C12

C21

!1

?1

!3!2

?2

!4

!1

?4

?4

ε : canal vide

[4,1] :canal contenant 4 puis 1

?4

?3

Page 68: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 68

États accessibles

Les concepts d’état global et état accessible sont importantsCertains logiciels construisent avant tout l’espace global de tous

les états possibles, faisant l’hypothèse de certaines tailles maximales de canaux, et puis calculent la relation d’accessibilité

D’autres 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. L’algorithme ne garde pas en mémoire tout l’arbre, mais seulement la partie sur laquelle il est en train de travailler. L’algorithme est beaucoup plus complexe et ne se prête pas à certains

types de analyse

Page 69: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 69

En pratique

Malgré la complexité élevée du problème de l’analyse d’accessibilité, des logiciels optimisés disponibles aujourd’hui permettent de construire le graphe d’accessibilité de protocoles réels

Centaines de millions d’états

Page 70: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 70

Techniques pour réduire l’explosion d’états La réduction de l’explosion 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 l’arbre d’accessibilité Nous pouvons aussi chercher à réduire l’espace demandé par la

représentation d’un état en mémoire Un seul bit par état, v. SPIN

Page 71: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 71

Critique du concept d’état

Bien que les concepts d’état et transition soient la base de toutes les recherches sur l’ingénierie de protocoles, il faut savoir que dans la réalité les états et les transitions n’existent 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 d’un flux continu de courants

C’est partiellement à cause de ce fait qu’il 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 n’est 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 d’erreur

Page 72: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

INF6001 Chap 2 72

Question

Dans le modèle asynchrone, pouvons-nous admettre que deux événements, c’est-à dire deux transitions d’états, soient simultanés? Le modèle asynchrone discuté dans ce cours admet qu’une 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’ l’autre).

On étudie cependant parfois des modèles de parallélisme dits de ‘simultanéité véritable’ (true parallelism), où ceci est possible, mais ceci n’est pas le sujet de ce cours.

Page 73: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

Pour en savoir plus …

Vous trouverez beaucoup d’informations faisant une recherche web sur: Analyse d’accessibilité – protocoles Protocol reachability analysis Model checking

Cependant ces sources discutent souvent des techniques qui seront présentées plus tard dans le cours

INF6001 Chap 2 73

Page 74: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

Concepts importants de ce cours

États et représentation de machines d’étatsLes protocoles comme machines d’états

communicantesCompositions synchrone et asynchroneComment les calculerMachine globales et comment les obtenirDifférents types d’erreurs:

Impasses, réceptions non-spécifiéesLimites pratiques et théoriques pour ces techniques

INF6001 Chap 2 74

Page 75: 1 Chapitre 2 Machines à états w3.uqo.ca/luigi Remerciements au prof. Hasan Ural pour plusieurs exemples.

L’acquittement et le déni de serviceSource: http://en.wikipedia.org/wiki/SYN_flood

INF6001 Chap 2 75

Séquence normaleSéquence d’attaque

L’attaquant envoie une longue séquence de SYN et le récepteur naïf alloue des ressources à chaque connexion potentielle. Il sera puis incapable de desservir des usagers réguliers.Cependant cette attaque est bien connue et elle est prévue par les pare-feu d’aujourd’hui.