TD1 SD 1819
TD1 SD 1819
TD1 SD 1819
Exercice n°1 :
L’objectif est de comparer deux évènements e1 et e2 qui se passent dans deux sites différents. Nous
supposerons que l’évènement e1 (resp. e2) est un évènement local du site 1 (resp. 2).
1. Supposons que les deux sites ont une horloge de Lamport comme système de datation. Comparer
les deux évènements e1 et e2 dans les deux situations suivantes :
a. la date de l’évènement e1 est 4 et celle de e2 est 3.
b. la date de l’évènement e1 est 4 et celle de e2 est 4.
2. Supposons que les deux sites ont une horloge vectorielle comme système de datation et que le
système distribué est composé de trois sites. Comparer les deux évènements e1 et e2 dans les
deux situations : suivantes
a. la date de l’évènement e1 est (4 3 2) et celle de e2 est (5 2 1).
b. la date de l’évènement e1 est (5 2 4) et celle de e2 est (4 3 6).
3. Complétez le chronogramme suivant :
Exercice n°2 :
1. Définir la notion de coupure cohérente.
2. Pour l’exécution d’une application répartie proposée dans la figure 1, identifier les coupures
cohérentes. Justifier votre réponse.
Figure 1
Exercice n°3 :
On considère trois processus coopérants qui réalisent un algorithme quelconque et s’échangent des
messages. On s’intéresse à l’exécution de la figure 2. Toutes les horloges sont initialisées à 0.
Figure 2
1. Donnez les horloges logiques (Lamport) associées à chacun des évènements, et les valeurs
d’horloge véhiculées par les messages.
2. Donnez les horloges vectorielles (Mattern) associées à chacun des évènements, et les valeurs
d’horloge véhiculées par les messages.
Exercice n°4 :
On s’intéresse à une application répartie composée de 3 processus échangeant des messages. On note
respectivement send(m) et receive(m) l’émission et la réception d’un message m. On dit que les
communications sont CO (pour Causally Ordered) si, pour tout message m et m’, on a :
send(m) send(m’) receive(m) receive(m’)
On considère l’exécution d’une application répartie représentée dans la figure 1. Cette exécution vérifie-t-
elle la propriété Causally Ordered (CO) ?
Figure 3
Exercice n°5 :
Soient deux protocoles de délivrance de messages lors de la communication entre les différents sites d’un
système distribué. Les primitives utilisées sont :
Emission (i, m, k) : signifie qu’un site i envoie un message m vers le site k,
Delivrance(m, k) : signifie la délivrance de message m sur le site k.
1. Quel est le type de délivrance assuré par chacun des protocoles ? Justifier.
2. Considérons le schéma suivant,
Pour chaque protocole, remplir le tableau ci-dessous par : (i) les paires de messages qui
correspondent à son application, si il respecte le schéma ou non et la justification.
Exercice n°6 :
Le schéma ci-dessous représente le déroulement du temps sur trois sites ; chaque ligne horizontale
correspond à un site, le temps s’écoule de la gauche vers la droite. Chaque point noir correspond à un
événement. Chaque flèche correspond à un message envoyé d’un site à l’autre.
e25
S2 e23 e24
e21 e22
S3
e31 e32 e33 e34 e35
1. Si les sites utilisent des horloges scalaires. Indiquer à côté de chaque événement la date de celui-
ci et à côté de chaque flèche l’estampille du message correspondant.
2. Même question pour des horloges vectorielles.
3. Que peut-on déduire ?
4. Si les sites utilisent maintenant des horloges matricielles où les événements e11, e21 et e31 ne
sont pas les premiers exécutés par les sites et ils sont datés respectivement par :
, et .
5. Indiquer à côté de chaque événement la date de celui-ci et à côté de chaque flèche l’estampille du
message correspondant. Que peut-on conclure ?