Professional Documents
Culture Documents
Ch4 AlgoReparti
Ch4 AlgoReparti
Chapitre 4
Algorithmiques et Exécutions
Réparties
Première Partie
1
Cours Informatique Répartie
• Solutions matérielles:
• Désactiver les interruptions
(signaux des périphériques)
• Solutions logicielles:
• Sémaphores
2
Cours Informatique Répartie
3
Cours Informatique Répartie
4
Cours Informatique Répartie
10
5
Cours Informatique Répartie
• Contraintes supplémentaires:
• Équité (fairness) entre les
processus
6
Cours Informatique Répartie
13
14
7
Cours Informatique Répartie
15
16
8
Cours Informatique Répartie
• Avantages:
• Pas de famine
9
Cours Informatique Répartie
10
Cours Informatique Répartie
11
Cours Informatique Répartie
23
12
Cours Informatique Répartie
25
13
Cours Informatique Répartie
27
14
Cours Informatique Répartie
29
30
15
Cours Informatique Répartie
Exemple 1:
P0 entre en SC
FILE0={[8,0],[12,2]} FILE0={[12,2]}
FILE0={[8,0]} REPONSE0={0,1,2} REPONSE0={}
0 0 0
REQUETE (8,0) 12,2 REPONSE
REPONSE LIBERATION
8,0
REPONSE
1 2 1 2 1 2
12,2 REPONSE
FILE2={[12,2]} FILE2={[8,0],[12,2]} FILE2={[12,2]}
REPONSE2={0,1,2} REPONSE2={0,1,2}
P2 entre en SC
31
• Nécessite 3(N-1)
? messages
32
16
Cours Informatique Répartie
Exemple 2:
Les sites S1 et
S2veulent
entrer en
section critique
alors que leurs
horloges
scalaires ont
resp. 3 et 2
comme valeur.
S1 S2 S3 33
17
Cours Informatique Répartie
35
18
Cours Informatique Répartie
37
19
Cours Informatique Répartie
20
Cours Informatique Répartie
Exemple:
8,0
FILE0={[12,2]} Sortie de section critique
Entrée en section critique FILE0={}
0 0 0
8,0 12,2 OK OK OK
8,0
1 2 1 2 1 2
12,2 OK
Entrée en section
12,2 Pas d’OK de critique
P0 à P2
41
42
21
Cours Informatique Répartie
22
Cours Informatique Répartie
Avantages:
• Pas de famine, pas d’interblocage
45
• Charge du réseau 46
23
Cours Informatique Répartie
47
48
24
Cours Informatique Répartie
49
Initialisation:
• Créer l’anneau virtuel
50
25
Cours Informatique Répartie
52
26
Cours Informatique Répartie
54
27
Cours Informatique Répartie
55
56
28
Cours Informatique Répartie
• Hypothèses:
• Réseau fortement connecté et voies de
communication fiables
58
29
Cours Informatique Répartie
• Principe:
• Initialement le jeton est affecté à un
processus quelconque
59
• Principe:(suite)
• Le processus en section critique possède un
privilège matérialisé par un jeton
30
Cours Informatique Répartie
• Matérialisation du jeton:
• Jeton: tableau dont le kième élément
mémorise l’estampille de la dernière
visite qu’il a effectuée au processus Pk
61
• Principe:
• Lorsqu’un processus Pj qui possède le jeton, ne
désire plus accéder à la section critique, il cherche
dans le tableau qui matérialise le jeton le premier
processus Pl (l choisi dans l’ordre j+1, …, n, 1, j-1) tel
que l’estampille de la dernière requête de Pl soit
supérieure à l’estampille mémorisée par le jeton lors
de sa dernière visite à Pl.
• Pj envoie alors le jeton à Pl 62
31
Cours Informatique Répartie
Début
63
dedans vrai ;
<section critique>
64
32
Cours Informatique Répartie
Avantages:
• équité: un seul processus peut avoir le
jeton à un moment donné
33
Cours Informatique Répartie
Inconvénients:
• Perte de jeton => régénération =>
Assurer l’existence et l’unicité du jeton
• Si un des processus se plante (mais la
reprise est plus simple ici)
67
Deuxième Partie
Algorithmes d’Election
34
Cours Informatique Répartie
Problématique
Plusieurs algorithmes distribués demandent
à un des processus de jouer le rôle de:
◦ Coordinateur
◦ Initiateur
◦ Séquenceur
◦ Etc.
69
70
35
Cours Informatique Répartie
MAIS:
71
72
36
Cours Informatique Répartie
73
37
Cours Informatique Répartie
75
76
38
Cours Informatique Répartie
1 1 1
2 2 2 2 2 2
4 ELECTION 4 OK 4
5 5 5
ELECTION
0 6 0 6 0 6
7 3 7 3 7 3
7 ancien Coord
1 1
2 2 2 2
4 4
5 5
0 6 0 6
COORDINATEUR
7 3 7 3 77
Si aucune réponse
TTrans.n’arrive durant ce temps T, le
processus déduit que le processus en question est
en panne TTrans.
TProcess.
78
39
Cours Informatique Répartie
40
Cours Informatique Répartie
Hypothèses
Processus physiquement ou logiquement ordonnés de
façon que chacun connaisse l’identité de son
successeur
L’identité des sites est unique
Pas de pannes
Les messages circulent dans un seul sens
(uniquement pour l’élection)
81
41
Cours Informatique Répartie
83
1 [2,3,4,5,6,0,1]
0 2 1
0 2
[2]
[6]
7 Transformés en messages
3 7
3 de désignation du coordinateur
[2,3] Puis remis en circulation
6 4 6 4 jusqu’à nouveau tour
5
5
Messages d’élection
◦ Nombre de messages: 2N où N est le nombre de
processus actifs
◦ Simplicité MAIS Gaspillage de la bande passante
(gros messages) surtout si plusieurs élections
simultanées
84
42
Cours Informatique Répartie
86
43
Cours Informatique Répartie
44
Cours Informatique Répartie
90
45
Cours Informatique Répartie
91
93
46
Cours Informatique Répartie
7 8
4 6
1
1 2 3 4 5 6 7 8
(candidature, 5, 0, 1)
(candidature, 5, 0, 1)
(réponse, vrai, 5)
temps 95
47
Cours Informatique Répartie
48
Cours Informatique Répartie
98
49
Cours Informatique Répartie
Troisième Partie
Détection de la terminaison
La problématique
p1 p2
101
50
Cours Informatique Répartie
La problématique
2 méthodes:
◦ Sans jeton: constitution d’un état global
◦ Avec jeton
102
Rappel:
◦ Un processus Q reçoit le marqueur demandant l’état global
pour la première fois, il considère le processus qui lui a
envoyé le marqueur comme son prédécesseur.
◦ Lorsque Q a fini sa part de l’algo (enregistrer son état et l’état
de ses voies de communication jusqu’à prochain marqueur),
il envoie à son prédécesseur un message DONE.
◦ Par récursivité, lorsque l’initiateur de l’algo de Chandy et
Lamport reçoit un message DONE de tous ses successeurs,
il sait que l’état global est construit (que la « photo » est
prise)
103
51
Cours Informatique Répartie
Le problème:
◦ L’état global définit aussi les messages en transit sur
les voies de communication
◦ Messages susceptibles d’activer des processus
passifs
◦ => on ne peut pas conclure de la terminaison de
l’exécution de l’application répartie si messages en
transit =>
52
Cours Informatique Répartie
106
53
Cours Informatique Répartie
108
109
54
Cours Informatique Répartie
110
111
55
Cours Informatique Répartie
Détection de la Terminaison
(pas d’anneau)
Le jeton doit:
1. d’une part visiter tous les processus et
2. d’autre part s’assurer qu’il n’a plus de messages en
transit
113
56
Cours Informatique Répartie
Détection de la Terminaison
(pas d’anneau)
114
Détection de la Terminaison
(pas d’anneau)
Le jeton véhicule une valeur j qui indique que les
processus visités lors des j dernières traversées des
voies de communication (arcs de C) sont restés en
permanence passifs (i.e. ces processus étaient blancs
lorsque le jeton les a atteint).
On suppose que sur le circuit C précalculé et que les
deux fonctions suivantes sont prédéfinies:
◦ Fonction taille(C: circuit ) resultat entier => donne la
taille du circuit
◦ Fonction successeur (C:circuit, i:1..n) resultat 1..n =>
pour le processus Pi qui l’execute le nom du successeur
sur le circuit
57
Cours Informatique Répartie
Détection de la Terminaison
(pas d’anneau)
Declaration des variables pour chaque processus:
L’algorithme
lors de
réception de (message, m) faire
état actif;
couleur noir; fait;
attente de (message, m) faire
état passif; fait;
réception de (jeton, j) faire
nb j; jetonpresent vrai;
si nb = taille(C ) et couleur = blanc; alors
terminaison détectée;
fsi;
fait;
117
58
Cours Informatique Répartie
L’algorithme
118
59