Modélisation des Systèmes Répartis par Automates
Modélisation des Systèmes Répartis par Automates
1 Problématique
5 Exercices
Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 1 / 33 Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 2 / 33
Problématique Problématique
Propriété de sûreté
Processus ou threads Le système ne peut pas produire de comportement “défaillant”.
Deux processus en exclusion mutuelle n’accéderont jamais simultanément à la
algorithme séquentiel : automates (systèmes de transitions) ressource critique.
Le système ne peut pas se bloquer totalement.
Medium de communication
Décidable en examinant tous les états du système (nombre fini d’états).
variables globales
files de messages Propriété de vivacité
Le système évolue inévitablement vers “un progrès”.
Mode de synchronisation Tout message émis finira par être acquitté.
synchrone L’émetteur pourra toujours émettre de nouveaux messages.
asynchrone Le système repasse inévitablement par l’état initial.
Décidable en examinant les connexions entre les états du système
(automates finis).
Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 3 / 33 Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 4 / 33
Systèmes de transitions Systèmes de transitions
Un compteur sur N
Définition
Q = N, T = {hx, x + 1i | x ∈ N}, q0 = 0
Un système de transitions est un triplet S = hQ, T , q0 i où :
Q est un ensemble d’états,
T ⊆ Q × Q est un ensemble de transitions reliant les états deux à deux,
q0 ∈ Q est l’état initial. 0 1 2 i
Un compteur modulo n
Q = {0, · · · , n − 1}, T = {hx, (x + 1) mod ni | x ∈ Q}, q0 = 0
Q = {v , w, x, y , z}
T = {hv , wi, hw, wi, hw, xi, hx, wi,
v w x
hw, y i, hy , zi, hz, xi}
0 1 2 i n−1
q0 = v
y z
Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 5 / 33 Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 6 / 33
Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 9 / 33 Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 10 / 33
Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 11 / 33 Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 12 / 33
Systèmes de transitions étiquetés Exemples Systèmes de transitions étiquetés Exemples
x←1 x
co = while, x = 1, i = 1
i←1
[i < 3]
x←2∗x co = while
co = while, x = 2, i = 2 i←i+1
[i ≥ 3] i
co = while, x = 4, i = 3 co = end
x←1
début
x ← 1; i ←?
lire(i);
co = if
si (i < 3) alors
tant que (i < 3) faire
x ← 2 ∗ x; [i < 3] x
i ← i + 1; [i < 3]
fin [i ≥ 3]
x←2∗x co = while
sinon x←3∗x
i←i+1
x ← 3 ∗ x;
fin [i ≥ 3] i
fin
co = end
Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 15 / 33 Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 16 / 33
Systèmes de transitions étiquetés Exemples Systèmes de transitions étiquetés Exemples
co = begin
Les abstractions de données
peuvent être nécessaires mais Soit un digicode déclenchant l’ouverture d’une porte lorsque le code saisi est
elles doivent être faites sur les correct.
données n’ayant pas La saisie du code n’a lieu que lorsque la porte est fermée.
co = if d’influence sur le contrôle.
Le code est composé de trois digits.
co = while Cet automate produit plus de Une touche spéciale (clear) permet la réinitialisation de la saisie.
séquences que les précédents
(notamment une divergence Un capteur détecte la fermeture de la porte.
dans la boucle).
co = end
Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 17 / 33 Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 18 / 33
d0
Entrées (symbolisées par “ ?” sur les transitions) : ?digit1_KO ou ?clear
?digit1_OK
Les touches (digit, clear) tapées, ?digit2_KO ou ?clear
d1
l’état de la porte. ?digit2_OK
?digit3_KO ou ?clear
d2
?digit3_OK
Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 19 / 33 Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 20 / 33
Systèmes de transitions étiquetés Exemples Systèmes de transitions étiquetés Exemples
Sorties :
L’état de la porte.
Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 21 / 33 Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 22 / 33
Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 23 / 33 Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 24 / 33
Composition de systèmes Composition asynchrone Composition de systèmes Composition asynchrone
Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 27 / 33 Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 28 / 33
Composition de systèmes Exemples Composition de systèmes Exemples
h-, ?cléi
h ?digit2_KO, -i ou
d1 , p0 h-, ?fermer_portei d1 , p1
h ?digit2_KO, -i ou Modélisation du contrôle essentiellement : manipulation des données à
h ?clear, -i h ?clear, -i
h ?digit2_OK, -i
h-, ?cléi
h ?digit2_OK, -i l’extérieur.
h ?digit3_KO, -i ou h ?digit3_KO, -i ou
h ?clear, -i
d2 , p0 h-, ?fermer_portei d2 , p1 h ?clear, -i
h ?digit3_OK, -i h ?digit3_OK, -i Synchronisation extérieure au modèle.
h-, ?cléi
d3 , p0 h-, ?fermer_portei d3 , p1
h !bip, -i h !bip, -i
Collection de processus avec mécanismes de synchronisation à définir
h-, ?cléi
d4 , p0 h-, ?fermer_portei d4 , p1 (synchrone / asynchrone / messages).
h !ouvrir_porte, ?ouvrir_portei
h ?porte_ouverte, !porte_ouvertei
Exercices Exercices
Soit une table circulaire qui comporte cinq assiettes et cinq baguettes
pense
entre les assiettes.
Cinq philosophes assis à cette table mangent et pensent alternativement.
Pour manger les philosophes doivent s’emparer des deux baguettes de attend
part et d’autre de leur assiette. !prend droite !prend gauche
Lorsqu’ils se remettent à penser ils reposent leurs deux baguettes. attend gauche attend droite disponible
Les philosophes prennent et reposent leurs baguettes l’une après l’autre, !prend gauche !prend droite
?prend ?rend
dans un ordre indifférent. mange
Initialement tous les philosophes pensent. occupée
repose
!rend droite !rend gauche
1 Modélisez chaque philosophe par un automate distinct.
repose gauche repose droite
2 Comment modéliser les baguettes ?
!rend gauche !rend droite
3 Montrez que le système comprend des blocages.
Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 31 / 33 Emmanuelle Encrenaz-Tiphène (LIP6) Modélisation par automates M2-SAR-MSR 32 / 33
Exercices
vide
ajoute retire
1 message
ajoute retire
ajoute 2 messages
retire
ajoute retire
3 messages
ajoute retire
4 messages
ajoute retire