Sujet 2 Correction
Sujet 2 Correction
Sujet 2 Correction
proc acquerir
debut
etati:= demandeur;
hi := hi+1 ; lasti := hi ;
nbatti := card(Ri);
pourtout j de Ri
envoyer requete(lasti, i) a Cj
fpourtout ;
attendre nbatti = 0 ;
etati:=dedans
fin
proc liberer
debut
pourtout j de differei
envoyer permission a Cj
fpourtout ;
differei={}
compteuri=0 /// 1.5pts
etati := dehors
fin
1/6
si prioritei
alors
si etati=dedans ∧ compteuri<n-4
alors envoyer permission a Cj
compteuri = compteuri +1
sinon
differei := differei ∪ {j}
fsi
sinon envoyer permission a Cj
fsi
fin
1. Pourquoi les détecteurs de défaillances proposés par Chandra et Toueg sont considérés
comme un mécanisme de détection de défaillances non fiable ?
Puisque ils peuvent faire des erreurs au sujet de défaillances, c.à.d suspecter un
processus correct et ne pas détecter le crash d’un processus défaillant. 1 points
Complétude faible : tous les processus défaillants finiront par être suspectés par au
moins un processus correct. 0.75 points
2/6
4. Quel est la classe de détecteur de défaillances la plus faible pour résoudre le Consensus ?
Pourquoi ?
Puisque elle est la plus générale, c'est-à-dire un algorithme qui se base sur <>W peut
utiliser n’importe autre classe, non équivalente, de détecteurs de défaillances mais le
contraires n’est pas correct. 0.75 points
La diffusion atomique peut être définie par les cinq propriétés suivantes :
Terminaison : Si un processus correct diffuse un message m, alors tous les
processus corrects délivrent ce message. 0.25 points
Validité : Si un processus délivre un message m, alors m a été diffusé par au
moins un processus. 0.25 points
Intégrité : un processus remis un message m au plus une fois ; 0.25 points
Accord : Si un processus correct délivre un message m alors tous les processus
corrects délivrent m ; 0.25 points
Ordre : Si un processus correct délivre un message m avant un message m’, alors
tous les processus corrects délivrent m avant m’. 0.25 points
Oui, il est possible de résoudre le consensus en se basant sur la diffusion Atomique 0.25
points
Pour résoudre le consensus nous pouvons utiliser la diffusion atomique de la façon
suivante : pour décider d’une valeur, un processus la diffuse de façon atomique. Pour
décider d’une valeur un processus prend la valeur du premier message qu’il a délivré. Par la
propriété d’ordre total de la diffusion atomique tous les processus corrects vont délivrer le
même message. 0.5 points
3/6
3. Quelle est la différence entre les deux protocoles 2PC (Two-Phase Commit) et le
3PC (Three-Phase Commit) ?
Car les délais de transmission des messages et les vitesses relatives des processus sont
5. ?
arbitraires. Donc, il est possible de décider d’attendre un message qui n’arrivera jamais et
on reste bloquer indéfiniment ou décider de ne pas attendre un message et finalement on le
reçoit. Par conséquence, on ne pas distinguer entre les deux situations et on ne pas savoir si
on prêt la bonne décision. 0.75 points
A)
1)
4/6
2) la coupure C1 est cohérente car EV(c1)= = EVsup(c1)=
3) oui, les horloges de Mattern (vectorielles) suffisent pour vérifier la cohérence des coupures.
B)
Solution 1
si e ∈ C4∩ C5 et e' -> e, alors : e' ∈ C4, car C4 cohérente et e' ∈ C5, car C5 cohérente donc
e'∈ C4∩C5 (1pt)
ou solution 2
on suppose que l'intersection C3 entre C1 et C2 (C3= C1 ∩ C2) n'est pas une coupure
cohérente, formellement ∃e ∈ C3 : ∃e0 : e0 ≺ e ⇒ e0 ∉ C3.
sachant que :
5/6
Si e ∈ C3 alors e ∈ C1 et e ∈ C2 donc ∀e0 : e0 ≺ e ⇒ e0 ∈ C2 et e0 ∈ C1 donc e0 ∈ C3
contradiction
union: on suppose que l'union C3=C1 ∪ C2 n'est pas une coupure cohérente,
sachant que :
6/6