Correction Rattr
Correction Rattr
Correction Rattr
Correction du Rattrapage
Exercice 1:
Q. Expliquez la différence entre les horloges logiques et physiques. (1 pt)
Réponse: Les horloges physiques mesurent l'heure locale. Les horloges logiques sont utilisées pour
marquer les relations entre les événements dans un système distribué.
Q. Quel problème avec les horloges scalaires est résolu par les horloges vectorielles? (1 pt)
Réponse: Avec les horloges scalaires, vous ne pouvez pas dire si deux événements sont liés de façon
causale ou simultanés en comparons les dates. Tout simplement parce que H (a) <<H (b) ne signifie pas
que a-> b. Les horloges vectorielles vous permettent de comparer deux dates vectorielles pour déterminer
si les événements sont concurrents ou non.
Q. On considère les échanges de messages entre 3 sites A; B; C représentés par le chronogramme suivant:
a. Calculer l'horloge vectorielle portée par chaque message. (1.5 pt)
Réponse:
M0 M1 M2 M3 M4
(1 0 0) (3 0 0) (1 2 0) (1 0 2) (1 0 4)
b. Si la coupure C est cohérente, y inclure un unique événement du calcul la rendant incohérente; si elle
est incohérente, en exclure un unique évènement du calcul la rendant cohérente. (1.5 pt)
Réponse: Par exemple, ajouter a4.
d. Si les délivrances a4; a5 respectent la causalité, ajouter un unique message pour qu’elles ne
respectent plus la causalité; en cas inverse, enlever un unique message pour qu’elles deviennent bien
ordonnées. (1.5 pt)
Réponse: Ajouter un message de B vers C, émis après b2 et reçu avant c4.
Exercice n° 2
On considère un système distribué constitué de deux processus P1 et P2 situés sur deux sites
différents qui sont respectivement Site1 et Site2. P1 produit et envoie cycliquement un message « info »
vers P2 à travers le réseau. Le processus P2 effectue lui aussi un travail cyclique qui consiste à
consommer (délivrer) les messages parvenus à son buffer. Cependant, on impose la règle suivante: P2
doit consommer les messages dans le même ordre que leur envoi par P1.
On suppose que les canaux de communication sont fiables, c'est-à-dire qu’il n’y a pas de perte de
messages, cependant les canaux de communication ne sont pas FIFO autrement dit, les messages délivrés
ne sont pas forcément dans l’ordre FIFO.
1. Montrer le problème qu’on doit traiter dans ce cas. Définir-le et donner sa représentation
formelle.
Réponse: Il s’agit du problème de délivrance causale de messages FIFO. (1 point)
Définition: Soient deux messages m1et m2 envoyés par P1 (même émetteur) vers P2 (même
récepteur) m1 et m2 doivent être délivrés dans le même ordre de l’émission. (0.5 point)
Représentation formelle:
émission(m1,P1,P2)émission(m2,P1,P2) Délivrance(m1,P2)Délivrance(m2,P2) (0.5 point)
2. Pour respecter la règle énoncée, une solution est proposée dans les codes des deux processus
P1 et P2.
a. Expliquer clairement le principe de cette solution. (1 point)
Réponse: On doit bloquer P1 tant que sa dernière information qui a été envoyée n’a pas été consommée par P2.
3. On utilise le principe des horloges scalaires: chaque information envoyée par P1 est
estampillée avec la valeur d’horloge H1. Du côté de P2, on utilise aussi une horloge logique
H2 qui s’incrémente entre deux consommations. On ne consomme une information que si
H1=H2.
b. Décrire précisément vos déclarations et écrire les codes des processus P1 et P2.
• (5) Si en 3 ’, processus B avait relaché R, machine 0 envoie un message au coordinateur, qui ll’obtient en
5.
• Si en 3 ’ ’ processus B avait alors demandé T, machine 1 envoie un message au coordinateur qui
l’obtient en 4.
• => détection de faux interblocages pouvant entrainer « mort injuste » pour sa guérison
guérison.