Académique Documents
Professionnel Documents
Culture Documents
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
Machines tats
?2
tat 1 tat 2
!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
INF6001 Chap 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
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
a
tat 1 tat 2
tat 3
tat 4
INF6001 Chap 2
?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
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
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
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
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
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
C21
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
10
?3 !4 11 ?2 12 !1
20 !3 21 !2 22 ?1
3
C21
INF6001 Chap 2
22
(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
20 !3 21 ?1
!4
<10,22>,< 4, >
!1
<11,22>,<[4,1], >
!2 22
?4
12
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
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.
!a
canaux
?a
INF6001 Chap 2
26
Analyse daccessibilit
Le processus dobtenir la machine globale partir des machines locales sappelle
Graphe daccessibilit
INF6001 Chap 2
27
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
Ils ne sont pas infinis, mme si leur capacit peut tre trs grande
28
INF6001 Chap 2
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
Machine A
Machine B
INF6001 Chap 2
30
?1
?2
12
10,20
3 1
11,21
2 12,22 31
INF6001 Chap 2
INF6001 Chap 2
32
canaux
INF6001 Chap 2
33
!1 ?4
?2
!3 21 !2 22
?1
!6
11
10,20 3 11,21 2 1
12
INF6001 Chap 2
12,22
34
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
10
?d !a ?b C12 ?b C21 !d 12 23 ?a ?a !b
20
?c
11
?b !c
21
22
INF6001 Chap 2
36
!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
INF6001 Chap 2
37
10 ?d !a 11 ?b !c 12 23 ?a ?b C21 !d ?b C12
20
<12,21>,< c, >
?c
!b 21 ?a 22
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
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
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
Protocole
Protocole 43
INF6001 Chap 2
INF6001 Chap 2
45
INF6001 Chap 2
47
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
Un canal de dimension maximale 2 et avec p messages possibles peut tre vide, ou peut contenir un message, ou peut contenir 2 messages
INF6001 Chap 2
deux machines de M et N tats, deux canaux de longueur m et n, pouvant contenir respectivement p et q messages diffrents,
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
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
(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
20 !3 21 ?1
!4
<10,22>,< 4, >
!1
<11,22>,<[4,1], >
!2 22
?4
12
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
INF6001 Chap 2
53