1
22/10/09 ARA: Protocoel de Diffusion 1
Protocoles de Diffusion
Luciana Arantes
Algorithmique répartie avancée - ARA
Master2
22/10/09 ARA: Protocoel de Diffusion 2
Motivation (1)
Application de calcul parallèle Serveur répliqué
Dans certaines situations, les processus d'un système réparti (ou un sous-
ensemble de ces processus) doivent être adressés comme un tout.
P1
P3
P5
P2
P4
résultat
S1
S3
S5
S2
S4
C
mise
à jour
2
22/10/09 ARA: Protocoel de Diffusion 3
Motivation (2)
P1
P2
P3
Application de calcul parallèle : si un message est perdu, le calcul s'arrête.
calcul
calcul
calcul
calcul
calcul
calcul
calcul
calcul
(attente résultat P3)
(attente résultat P2)
(attente résultat P2)
P1
P2
P3
Serveur répliqué : si les messages ne sont pas reçus dans le même ordre sur tous les processus, ils
sont incohérents.
C1
C2
erreur détectée
mise à jour v = 1
v = 2
v = 2
v = 2
v = 1
22/10/09 ARA: Protocoel de Diffusion 4
Diffusion : Définition
Un processus émetteur envoie un message à un
groupe de processus.
Groupe : ensemble de processus (les membres du groupe)
auxquels on s'adresse par des diffusions, et non par des
envois point à point.
3
22/10/09 ARA: Protocoel de Diffusion 5
Diffusion : primitives
Primitives de diffusion utilisées par le processus
p:
broadcast (m) : le processus pdiffuse le message mau
groupe.
deliver (m) : le message mest délivré au processus p.
La diffusion est réalisée au dessus d'un système
de communication existant.
22/10/09 ARA: Protocoel de Diffusion 6
Architecture
processus application
broadcast(m) deliver(m)
Communication de groupe
send(m) recv(m)
processus application
broadcast(m) deliver(m)
Communication de groupe
send(m) recv(m)
réseau communication
4
22/10/09 ARA: Protocoel de Diffusion 7
Modèle d'implémentation
processus
code applicatif librairie
message diffusé reçu
file d'attente
deliver(m)
broadcast(m)
message diffusé émis
send(m, p
1
)
recv(m)
send(m, p
n
)
• Les messages sont diffusés par broadcast(m) qui n'est pas
atomique en pratique : elle s'appuie sur la primitive d'envoi
point à point send(m, p).
• Les messages ne sont pas directement reçus par
l'application : ils sont reçus par recv(m), mis en
attente, traités puis délivrés à l'application par
deliver(m).
Objectif : implémenter des
primitives boradcastX() et deliverX()
qui garantissent la propriété X.
22/10/09 ARA: Protocoel de Diffusion 8
Diffusion: primitives (2)
Le message envoyé à chaque processus est le même, mais le nombre et
l'identité des destinataires est masqué à l'émetteur, qui les désigne par
leur groupe d'appartenance. On assure ainsi la transparence de
réplication.
P1
P3
P5
P2
P4
P5 exécute broadcast (m)
mmm
m
G
m
5
22/10/09 ARA: Protocoel de Diffusion 9
Groupe (1)
Un groupe peut être :
fermé : broadcast(m) ne peut être appelé que par un membre du groupe
ouvert : broadcast(m) peut être appelé par un processus extérieur au groupe
P1 P3
P5
P2
P4
G
Groupe fermé
Pinterdit
P1 P3
P5
P2
P4
G
Groupe ouvert
P
possible
possible
22/10/09 ARA: Protocoel de Diffusion 10
Groupe (2)
Un groupe peut être :
statique : la liste des membres du groupe est fixe et déterminée au départ
dynamique : les processus peuvent rejoindre ou quitter le groupe volontairement par
l'intermédiaire d'un service de gestion de groupe
P1 P3
P5
P2
P4
G
Groupe dynamique
quitter()
P3
P5
rejoindre(G)
1 / 32 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !