2. 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.
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 s’est 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 d’une 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.
L’état 5 est un état ‘final’
! 4
état 1 état 2
état 3 état 4
! 1
? 2
? 3
? 5
état 5
? 2
5. INF6001 Chap 2 5
Tableaux de transition d’é tats
état 1 état 2
état 3 état 4
! 1
? 2
? 3
? 5
! 4
!1 !4 ?2 ?3 ?5
1 3 2
2 4
3 4
4 2 5
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
état 5
? 2
6. 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 existe, chacune 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
7. INF6001 Chap 2 7
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
8. 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
9. 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
? 5
! 4
10. 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
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 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
12. INF6001 Chap 2 12
Machines de Moore
Plus semblables aux systèmes de transitions étiquetés
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
13. INF6001 Chap 2 13
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
14. INF6001 Chap 2 14
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
15. INF6001 Chap 2 15
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 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.
…
…
CAB
CBA
Machine A Machine B
A B
Service Provider
16. INF6001 Chap 2 16
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ès
2 permission d’accès
3 refus d’accès
4 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
17. INF6001 Chap 2 17
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 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
18. INF6001 Chap 2 18
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 serveur peut envoyer
un 3, ce qui change l’état global à <11,20>, avec un 3 dans la file de sortie du serveur
ou un 2, ce qui change l’état global à <11,22>, avec un 2 dans la file de sortie du serveur
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
19. Transitions possibles à l’é tat initial?
INF6001 Chap 2 19
…
…
!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?
22. Retrouver un é tat pré cé dent
INF6001 Chap 2 22
…
…
!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.
23. INF6001 Chap 2 23
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
24. INF6001 Chap 2 24
É 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
25. INF6001 Chap 2 25
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…)
26. INF6001 Chap 2 26INF6001 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
27. INF6001 Chap 2 27
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é
28. INF6001 Chap 2 28
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 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
29. INF6001 Chap 2 29
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é
30. INF6001 Chap 2 30
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écani
sme de
commu
nication
Machine A Machine B
31. INF6001 Chap 2 31
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
32. INF6001 Chap 2 32
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
33. INF6001 Chap 2 33
Ré lation 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
Le modèle asynchrone avec files de longueur 0
correspond au modèle synchrone
canaux
A
B
34. INF6001 Chap 2 34
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
35. INF6001 Chap 2 35
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
Etats non-exécutables: pas une erreur bloquante, mais
pourrait être un symptome d’un problème de conception
37. INF6001 Chap 2 37
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
Impasse
Canaux vides,
Aucune action possible
Réceptions
non specifiées:
a ne peut pas
être reçu, mais il y
a d’autres actions
possibles
Réception non specifiée
bloquante: c ne peut pas être
reçu et il n’y a pas d’autres
actions possibles
a!
38. Ré ception non-spé cifié e bloquante
Après la trace !b, ?b, !c
INF6001 Chap 2 38
!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 c
Machine 1 ne peut rien envoyer, ni
recevoir
c
39. Impasse - deadlock
INF6001 Chap 2 39
<12,22>,< ε, ε >
Les deux machines ne peuvent
rien envoyer
Et 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
40. Ré ception non spé cifié e non bloquante
INF6001 Chap 2 40
!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 les
deux machines peuvent envoyer des
messages
Possibilité d’erreur, cas à étudier
ac
42. INF6001 Chap 2 43
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…
43. INF6001 Chap 2 45
Problè mes fondamentaux dans
l’analyse des protocoles
Problèmes d’indécidabilité
Problèmes d’explosion d’états
44. INF6001 Chap 2 47
Entrelacement d’é vé nements et
explosion 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.
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
45. INF6001 Chap 2 48
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 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
46. INF6001 Chap 2 49
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 (p0
+p1
+...+pm
) x (q0
+q1
+...+qn
)
47. INF6001 Chap 2 50
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.
48. INF6001 Chap 2 51INF6001 Chap 2 51
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
49. INF6001 Chap 2 52
Analyse d’accessibilité
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
canaux
A
B
50. INF6001 Chap 2 53
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