Vous êtes sur la page 1sur 50

Chapitre 2

Spcification des protocoles Machines tats

w3.uqo.ca/luigi
1

Exemple:
un automate qui modle le comportement dun ordinateur
Au dbut il est en tat teint Lvnement allumer le met en tat allum Lvnement CtrAltDel le met en tat login Lvnement login le fait passer un des deux tats: Login accept Login refus Sil accepte, lvnement clique sur icne Word le fait passer en tat: prt pour WordProcessing Noter: Ce qui prcde est une abstraction. Certaines choses ne sont pas dites: p.ex. quel sera le rsultat si

CtrAltDel ne sont pas frapps simultanment On frappe CtrAltDel avant dallumer On fait des erreurs de frappe pendant le login Etc.

INF6001 Chap 2

Concept dtat
Le concept dtat du systme est une abstraction utile Reprsente une instantane (snapshot) du contenu de la machine un moment donn Dtermin par ce qui sest produit dans la machine avant Dtermine ce qui peut se produire dans le futur tat:

global: tat de tout le systme dans son entiret local: tat dune entit dans le systme

Transitions dtat: vnements qui causent changements dtats


INF6001 Chap 2
3

Machines tats
?2
tat 1 tat 2

Comportements possibles de cette machine:

!1

?5

!4

tat 3

tat 4

?3 ?2

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 5

Ltat 5 est un tat final

INF6001 Chap 2

Tableaux de transition dtats


?2
tat 1 tat 2

!4 !1 ?5

1 2 3 4

!1 3

!4

?2 2

?3

?5
4

4
2 5

tat 3

tat 4

?3

?2

tat 5

Machine partiellement spcifie: Les transitions impossibles ne sont pas spcifies. Nous pouvons interprter ces transitions comme transitions un tat erreur
5

INF6001 Chap 2

Diffrents modles tats


Les machines tats, aussi appels automates, sont un concept trs utilis en informatique Un bon nombre de dfs existe, chacune avec sa propre thorie avec des lgres diffrences Tous les modles suivants sont utiliss dans la conception des protocoles, et aussi dans la conception de circuits

INF6001 Chap 2

Systmes de transition
Le concept le plus gnral Nous avons un ensemble dtats (pas ncess. fini) et une relation de successeur entre tats Exemple de s.d.t.:
tat 1 tat 2

tat 3

tat 4

INF6001 Chap 2

Systmes de transition tiquets (LTS, labeled transition systems)

Les transitions sont nommes

a
tat 1 tat 2

tat 3

tat 4

INF6001 Chap 2

Utilisation des tiquettes


Nous pouvons donner une signification aux tiquettes, p.ex.

?x Veut dire une entre (input) dune valeur x !y Veut dire une sortie (output) dune valeur y
?2
tat 1 tat 2

!4 !1 ?5

tat 3

tat 4

INF6001 Chap 2

Notation
+ et sont aussi utiliss pour indiquer la rception ou lenvoi dun message, respectivement ? et ! sont plus utiliss rcemment

INF6001 Chap 2

10

Machines de Mealy
Chaque arte est tiquete par une paire
Entre/Sortie

Voulant dire que quand une entre comme spcifi se vrifie, il y a la sortie spcifie et la transition dtat a aussi lieu
2/a
tat 1 tat 2

4/b 1/b 5/c

Quand lentit spcifie reoit un 2 en tat 1, elle fait sortir un a et le systme effectue une transition ltat 2

tat 3

tat 4

3/d

INF6001 Chap 2

11

Machines de Moore
Plus semblables aux systmes de transitions tiquets Chaque arte est associ un symbole, qui dnote un vnement abstrait (une entre,une sortie) qui cause la transition
a
tat 1 tat 2

b b c

tat 3

tat 4

INF6001 Chap 2

12

Le passage du temps dans les machines


En principe, les transitions sont instantanes Le temps passe quand le systme est dans un tat Cependant il y a plusieurs variations ce concept

Diffrents types de machines temporises

INF6001 Chap 2

13

Machines communicantes
Une machine tats peut dfinir un systme entier ou une partie de systme Si elle dfinit une partie dun systme, elle sera compose avec autres machines Plusieurs mthodes de communications ont t utilises Nous en discuterons ici deux:

Synchrones Asynchrones

INF6001 Chap 2

14

Communication asynchrone
Service Provider

Dans la communication asynchrone, les machines communiquent par des canaux pouvant contenir des primitives de communication (PDUs ou SDUs) Normalement modliss par des files FIFO infinies et sans pertes de donnes Ces canaux sont une abstraction pour le fournisseur de service sousjacent Une machine peut donc mettre des donnes dans une file et continuer son travail, peut tre mettant dautres donnes dans la mme file plus tard Lautre machine prendra des donnes de la file quand elle le voudra.
CAB Machine A Machine B

CBA

INF6001 Chap 2

15

Modles de machines tats finis communicantes asynchrones


(appels aussi CSM ou CFSM, Communicating Finite-state Machines)

Machines tats finis communicantes moyen de files dattentes


10 ?3 !1 Files FIFO et sans pertes C12 ?4 ?2 12 P.Ex un client et serveur.
1 requte daccs 2 permission daccs 3 refus daccs 4 terminaison daccs

20 !3 21 !2 22 ?1

!4

11 C21

INF6001 Chap 2

16

Excution du systme
Ltat global initial est

lensemble de tous les tats initiaux des composants et lensemble de tous les contenus de files initiales

client
10 ?3 !4 11 ?2 12 C 21 !1 Files FIFO et sans pertes C 12 ?4

serveur
20 !3 21 !2 22 ?1

Dans ce cas <10,20>,<, >

file vide

Dans cet tat, le seul vnement qui peut se produire est lenvoi dun 1 par le client Il est mis dans la file, puis qui peut se produire est la rception de 1 de la part du serveur

INF6001 Chap 2

17

Construction de la machine globale du systme


Chaque tat global du systme spcifie:

Ltat des deux machines communicantes Le contenu des deux files

Par exemple, au dbut les deux machines sont dans leur tat initial Le seul premier vnement possible est que le client met 1 dans la file et passe ltat suivant, tandis que la deuxime machine reste sur son tat Le serveur peut puis recevoir Aprs a, le serveur peut envoyer

un 3, ce qui change ltat global <11,20>, avec un 3 dans la file de sortie du serveur ou un 2, ce qui change ltat global <11,22>, avec un 2 dans la file de sortie du serveur

Etc.
10 ?3 Files FIFO et sans pertes 20

!1

!4

C12

!3 ?4
21 !2 22

?1

11 ?2 12 C21

INF6001 Chap 2

18

Transitions possibles ltat initial?


10
?3 !4 11 ?2 12 !1 Files FIFO et sans pertes C12 ?4 20 !3 21 !2 22 ?1

C21

Transitions possibles ltat initial?

INF6001 Chap 2

19

Transitions possibles?
10
?3 !4 11 ?2 12 !1 Files FIFO et sans pertes C12 20 !3 ?1

?4

21 !2 22

C21

INF6001 Chap 2

20

Transitions possibles?
10
?3 !4 11 ?2 12 !1 Files FIFO et sans pertes C12 ?4 20 !3 21 !2 22 ?1

C21

INF6001 Chap 2

21

Retrouver un tat prcdent


Aprs la trace: !1, ?1, !3 nous nous retrouvons ltat global suivant:

10
?3 !4 11 ?2 12 !1

Files FIFO et sans pertes C12 ?4

20 !3 21 !2 22 ?1

3
C21

La seule transition possible nous ramne un tat dj vu.

INF6001 Chap 2

22

La machine globale du systme


<10,20>,<, >

(composition asynchrone)

: canal vide
!1
<11,20>,<1, >

?3

?1
<11,21>,< , >

?4 !2
<11,22>,< , 2>

?4

!3
<11,20>,< , 3>

?2
<12,22>,< , >

10 ?3 !4 11 !1

Files FIFO et sans pertes C12 ?2 C21

20 !3 21 ?1

!4
<10,22>,< 4, >

!1
<11,22>,<[4,1], >
!2 22

?4

12

[4,1] :canal contenant 4 puis 1 23

INF6001 Chap 2

quivalence dtats
Pourquoi sommes-nous retourns un tat prcdent aprs certaines transitions? Car nous avons dtect que le nouveau tat tait quivalent un tat dj trouv avant Car les deux machines sont dans les mmes tats et le contenu des canaux est le mme Plus en gnral, deux tats sont quivalents sils permettent les mmes squences dvnements futurs

INF6001 Chap 2

24

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 systme nest pas ncessairement finie Nous pouvons avoir un nombre infini dtats si les files peuvent grandir longueurs arbitrairement grandes Le fait quune file puisse tre infinie est une caractristique prendre en considration (nous verrons)

INF6001 Chap 2

25

Machines infinies
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 toujours grandissant dtats. Dans ce chemin, la machine globale ne retournera jamais un tat dj vu Donc, machine globale infinie.

La machine de droite nest pas oblige prendre tout de suite

!a

canaux

?a

INF6001 Chap 2

26

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

INF6001 Chap 2

27

Critique du modle de communication asynchrone


Le modle de communication asynchrone reprsente bien la faon de penser des ingnieurs de protocoles

Envoyer et continuer
Notamment SDL Il force mettre des files partout, mme quand la communication devrait tre directe Les files FIFO infinies et parfaites nexistent pas en ralit: Les mdias de communication peuvent perdre des donnes et peuvent permettre aux donnes de se chevaucher

Plusieurs langages et outils de spec et V&V utilisent ce modle

Cependant il peut fausser la ralit:

Surtout dans le cas de transmission sans connections

Ils ne sont pas infinis, mme si leur capacit peut tre trs grande
28

INF6001 Chap 2

Reprsentation de canaux avec files non-FIFO

Deux manires:

Reprsenter la perte ou autres dans une des deux machines communicantes, p.ex. dans le rcepteur:
?perte ?rception Dans ce cas le message est ignor

Ou sinon dfinir les canaux avec un troisime processus, voir modle synchrone
29

INF6001 Chap 2

Modle de communication synchrone


Dans le modle synchrone, nous navons pas de canaux prdfinis Les entits communiques directement par un mcanisme de communication partag La communication entre deux entits est un fait qui implique les deux simultanment Une entre et une sortie deviennent une seule action

Machine A

Mcani sme de commu nication

Machine B

INF6001 Chap 2

30

Machine globale pour le cas synchrone


(aussi appele composition synchrone)
10 ?3 !4 11 !1 ?4 20 !3 21 !2 22 4 La combinaison de !1 et ?1 donne une seule action 1

?1

?2
12

10,20
3 1

11,21
2 12,22 31

INF6001 Chap 2

Critique du modle synchrone


Lenvoyeur et le rcepteur sont bloqus ensemble pendant lexcution dune opration en commun Peu apprci par les ingnieurs de tlcom car ils sont plutt habitus penser en termes de envoyercontinuer
Utilis dans les algbres de processus: CCS, CSP, LOTOS

INF6001 Chap 2

32

Rlation entre les deux modles


Le modle synchrone peut modliser le modle asynchrone par lutilisation dentits canaux intermdiaires
A B

canaux

Le modle asynchrone avec files de longueur 0 correspond au modle synchrone

INF6001 Chap 2

33

Conditions derreur dans les systmes synchrones


Dans les systmes synchrones, il y a essentiellement une seule possibilit derreur, limpasse (deadlock), le fait que il ny a pas faon de sortir dun tat global tant donn que normalement un systme rparti est cens tre toujours en fonctionnement, une impasse est considre un problme
10 ?3 20

!1 ?4
?2

!3 21 !2 22

?1

!6

11

10,20 3 11,21 2 1

12

INF6001 Chap 2

Impasse, pas dtat successeur

12,22

34

Conditions derreur dans les systmes 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 Rception non spcifie: il y a un message au dbut dun canal qui ne peut pas tre reu car il ny a pas de transition approprie (spec incomplte) Rception non-spcifie bloquante: il y a une rception non spcifie et cause de a le systme se trouve en impasse Transitions non-excutables: pas une erreur bloquante, mais pourrait tre un symptome dun problme de conception Etats non-excutables: pas une erreur bloquante, mais pourrait tre un symptome dun problme de conception
35

INF6001 Chap 2

Un CFSM trs malade

10
?d !a ?b C12 ?b C21 !d 12 23 ?a ?a !b

20

?c

11
?b !c

21

22

INF6001 Chap 2

36

Arbre daccessibilit partiel


<10,20>,< , > !a <11,20>,<a, > !c <12,20>,<ac,> etc. Rceptions non specifies:
a ne peut pas tre reu, mais il y a dautres actions possibles

!b <10,21>,< ,b> !b

a!

?b
<11,21>,< , > !c <12,21>,< c, > Rception non specifie bloquante: c ne peut pas tre
reu et il ny a pas dautres actions possibles

<11,21>,<a, b> etc. ?b <12,21>,<a, > ?a <12,22>,< , > Impasse

INF6001 Chap 2

Canaux vides, Aucune action possible

37

Rception non-spcifie bloquante


Aprs la trace !b, ?b, !c

10 ?d !a 11 ?b !c 12 23 ?a ?b C21 !d ?b C12

20

<12,21>,< c, >
?c

!b 21 ?a 22

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

INF6001 Chap 2

38

Impasse - deadlock
10 ?d !a 11 ?b !c 12 23 ?a ?b C21 !d ?b C12 ?a 22 !b ?c 21 20

<12,22>,< , > Les deux machines ne peuvent rien envoyer Et il ny a rien recevoir dans les files!

INF6001 Chap 2

39

Rception non spcifie non bloquante


10 ?d !a 11 ?b !c 12 23 ?a ?b C21 !d ?b C12 20

c a

!b ?c 21 ?a 22

<12,20>,<ac,> La file C12 contient a au dbut mais la machine 2 est dans son tat 20 et ne peut pas le recevoir Ceci ne bloque pas le systme car les deux machines peuvent envoyer des messages Possibilit derreur, cas tudier

INF6001 Chap 2

40

Dans une seule feuille


10 ?d !a 11 ?b !c 12 23 ?a
!a <11,20>,<a, > !c <12,20>,< ac , > etc. Rceptions non specs !b <11,21>,<a, b> etc. ?b <12,21>,<a, > ?a <12,22>,< , >

20 ?b C12 ?b C21 !d ?a 22
<10,20>,< , > !b <10,21>,< ,b> ?b <11,21>,< , > !c <12,21>,< c, > Rceptions non spec bloquante

!b ?c 21

INF6001 Chap 2

Impasse

41

Gnralisation au cas de plusieurs machines


Jusqu prsent, nous avons discut le cas de 2 machines communicantes Les mmes ides peuvent tre gnralises au cas de 3, 4, machines communicantes Tant dans le cas de composition synchrone, que asynchrone Et effectivement, tout systme de protocoles a besoin dau moins 4 machines pour pouvoir tre exprim compltement:
Usager A Usager B

Les machines pour les usagers pourraient tre extrmement simples:


Prendre des donnes, les utiliser, prendre, utiliser

Protocole

Protocole 43

INF6001 Chap 2

Problmes fondamentaux dans lanalyse des protocoles


Problmes dindcidabilit Problmes dexplosion dtats

INF6001 Chap 2

45

Entrelacement dvnements et explosion dtats


Malheureusement, mme dans le cas de canaux borns, nous aurons toujours lexplosion dtats, cause du besoin de considrer toutes les possibilits dentrelacement dvnements qui ne sont pas directement relis P. ex. considrer toutes les possibilits dentrelacement dexcution de 2 machines de 2 tats. Et ce nombre monte de faon exponentielle!
!m A !m B Y X !n !n B,Y Deux scnarios possibles !m B,X A,X !n A,Y

INF6001 Chap 2

47

Calcul du nombre dtat 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 hypothse 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 p0+p1 possibilits

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 possibilits


48

INF6001 Chap 2

Formule gnrale 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 diffrents,

le nombre maximal dtats possibles est:

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

Ceci implique que la construction de la machine globale en principe est un problme de complexit exponentielle
INF6001 Chap 2
49

Exemple diapo suivante


Dans le cas du protocole client-serveur dj 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 : Le canal C12 ne sera jamais plus long de2 Le canal C21 ne sera jamais plus long de 1

Le nombre maximum total dtats 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.
INF6001 Chap 2

50

La machine globale du systme


<10,20>,<, >

(composition asynchrone)

: canal vide
!1
<11,20>,<1, >

?3

?1
<11,21>,< , >

?4 !2
<11,22>,< , 2>

?4

!3
<11,20>,< , 3>

?2
<12,22>,< , >

10 ?3 !4 11 !1

Files FIFO et sans pertes C12 ?2 C21

20 !3 21 ?1

!4
<10,22>,< 4, >

!1
<11,22>,<[4,1], >
!2 22

?4

12

[4,1] :canal contenant 4 puis 1 51

INF6001 Chap 2

Analyse daccessibilit
Cas synchrone

Dans le cas synchrone, le nombre max dtats est le produit des nombre des tats des machines communicantes Cependant il faudra avoir plus de machines, car il faudra reprsenter les canaux en utilisant des machines additionnelles
A canaux

INF6001 Chap 2

52

En pratique

Malgr la complexit leve du problme de lanalyse daccessibilit, des logiciels optimiss disponibles aujourdhui permettent de construire le graphe daccessibilit de protocoles rels

Centaines de millions dtats

INF6001 Chap 2

53