La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 1 P. SWEID S1 S2 S3 e11e12 e31 e21e22 e32 e23e24e25.

Présentations similaires


Présentation au sujet: "Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 1 P. SWEID S1 S2 S3 e11e12 e31 e21e22 e32 e23e24e25."— Transcription de la présentation:

1 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 1 P. SWEID S1 S2 S3 e11e12 e31 e21e22 e32 e23e24e25 e13e14 algorithme de Lamport - Exercice N° 2 Solution

2 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 2 P. SWEID Remarques 1.H( E 1 ) E 2 H( E 1 ) E 2 Exemple : H( Q 1 ) < H( P 2 ) < H( P 3 ) H( Q 1 ) < H( Q 2 ) Mais P 3 Q 2 et Q 2 P 3 P 1P 2P 3 Q 1 Q 2 2.La relation définit un ordre partiel sur les événements dun calcul réparti.

3 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 3 P. SWEID Définitions Passé de l'événement A ensemble des événements B tel que B A Passé de l'événement exemple :Passé historique de l'événement e : hist(e) = {ensemble des e' tels que e' e} hist(e33) = {e11 e21 e22 e23 e24 e25 e31 e32 e33} Passé

4 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 4 P. SWEID exemple :Passé historique de l'événement e hist(e) = {ensemble des e' tels que e' e} hist (e33) = {e11 e21 e22 e23 e24 e25 e31 e32 e33} (projection de hist(e) sur P i ) Définition : Passé de l'événement - exemple

5 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 5 P. SWEID e11e12e13e14e15e16e17e18e19 e21 e22e23 e24 e25 e26 e27 e28e29 e31 e32 e33e34e35e36e37 e38 e39 e2 10 e3 10 S1 S2 S3 La figure suivante donne la valeur des estampilles logiques scalaires associées en appliquant la méthode décrite précédemment à des événements de 3 sites entre lesquels des messages estampillés sont échangés. Algorithme de L. Lamport : exemple complet

6 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 6 P. SWEID A un événement e on peut alors associer trois ensembles d'événements : Passé(e): ensemble des événements antérieurs à e dans l'ordre causal (e appartient à cet ensemble); Futur(e): ensemble des événements postérieurs à e dans l'ordre causal (e appartient à cet ensemble); Concurrent(e): ensemble des événements concurrents avec e. Ordre total des événements -1-

7 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 7 P. SWEID Considérons l'événement e27. Il appartient à son propre passé et est précédé directement par e26 et e35. - On a Passé(e27) = {e27} + Passé(e26) + Passé(e35) - Passé(e25) = {e25} + Passé(e24) - Passé(e24) = {e24} + Passé(e23) + Passé(e11) - Passé(e23) = {e23} + Passé(e22) - Passé(e22) = {e22} + Passé(e21) + Passé(e31) - Passé(e21) = {e21} - Passé(e31) = {e31} - Passé(e11) = {e11} - Passé(e14) = {e14} + Passé(e13) - Passé(e13) = {e13} + Passé(e12) - Passé(e12) = {e12} + Passé(e11) + Passé(e21) - Passé(e35) = {e35} + Passé(e34) - Passé(e34) = {e34} + Passé(e33) + Passé(25) - Passé(e33) = {e33} + Passé(e32) - Passé(e32) = {e32} + Passé(e11) + Passé(e23) Ordre total des événements -2-

8 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 8 P. SWEID Le calcul de Passé(e27) suppose donc le calcul de celui de e26 et e35. - On a Passé(e26) = {e26} + Passé(e25) + Passé(e14) Par conséquent Passé(e27) = {e11, e12, e13, e14, e21, e22, e23, e24, e25,e26, e27, e31, e32,e33,e34,e35} Par un calcul analogue, on obtient: Futur(e27) = {e17, e18, e19, e27,e28, e29, e2 10, e2 11, e3 8, e3 9, e3 10} Finalement les événements n'appartenant ni à Passé(e27), ni à Futur(e27) sont concurrents avec e27. On a donc Concurrent(e27) = {e15, e16, e36, e37} Ordre total des événements -3-

9 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 9 P. SWEID Remarques : Les 2 règles précédentes ne résolvent pas le problème des événements concurrents. L'ordre n'est que partiel. Lordre des événements ainsi défini, nest pas un ordre strict : Plusieurs événements peuvent porter la même valeur. C est le cas (sur notre exercice N°.2) des événements e15, e26 et e34 appartenant respectivement aux S1, S2 et S3 et qui ont chacun 6 comme valeur de date. { E E => H(E) < H(E ) mais H(E) < H(E ) non E E } Il est facile de rendre cet ordre strict « total » en modifiant légèrement le système de datation : « la date d un événement sur un site est obtenue en adjoignant à la valeur de l horloge scalaire de ce site lidentification du site (par exemple un entier attribué artificiellement ou une adresse IP ou physique) ». Ordre total des événements -4-

10 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 10 P. SWEID Pour établir un ordre total des événements, il faut départager les événements concurrents : L horloge logique,H i (E I ) dun événement E i du site S i est un couple (H i, i) On a Ei précède E j E i E j, si et seulement si ou bien H i (E i ) < H j (E j ) ou bien H i (E i ) =H j (E j ) et i < j [ H i (E i ), i] Ordre total des événements -5-

11 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 11 P. SWEID Sur notre exemple : si on ordonne les sites par l'ordre de leurs numéros, S1 précède S2 qui précède S3 et donc du point de vue des événements, e15 précède e26 qui précède e34. l'ordre ainsi défini respecte la causalité : si un événement e précède un événement e', la valeur de son estampille logique est inférieure à celle de e'. Ordre total des événements -6-

12 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 12 P. SWEID Si on considère les événements dans le passé de l'événement e27, ils ont tous une estampille scalaire inférieure à celle de e27 (8.2). De manière duale, les événements du futur de e27 ont une estampille supérieure à celle de 8.2. l'ordre ainsi défini respecte la causalité : si un événement e précède un événement e', la valeur de son estampille logique est inférieure à celle de e'. L'ordre ainsi défini est total : il induit une chaîne de tous les événements. Sur notre exemple, la chaîne induite par ce système de datation est : e11 e21 e31 e12 e22 e13 e23 e14 e24 e32 e25 e33 e15 e26 e34 e16 e35 e27 e36 e28 e37 e29 e17 e18 e19 e38 e2 10 e39 e3 10 e2 11 Ordre total des événements -7-

13 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 13 P. SWEID e11 e21 e31 e12 e22 e13 e23 e14 e24 e32 e25 e33 e15 e26 e34 e16 e35 e27 e36 e28 e37 e29 e17 e18 e19 e38 e2 10 e39 e3 10 e2 11 e11e12e13e14e15e16e17e18e19 e21 e22e23 e24 e25 e26 e27 e28e29 e31 e32 e33e34e35e36e37 e38 e39 e2 10 e S1 S2 S3 Ordre total des événements -8-

14 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 14 P. SWEID Tous les événements dans Passé(e27) apparaissent avant e27 dans cette chaîne. Tous les événements dans Future (e27) apparaissent après e27 dans cette chaîne. Des événements concurrents sont quant à eux artificiellement ordonnés. Si nous considérons les événements incomparables e27 et e16 de notre exemple (nous avons vu que e16 appartient à concurrent(e27)), le système de datation fait que e16 apparaît antérieur à e27. Parmi les événements concurrents de e27, les événements e15 et e16 apparaissent antérieurs alors que e36, e37 et e38 apparaissent postérieurs. Ordre total des événements -9- e11 e21 e31 e12 e22 e13 e23 e14 e24 e32 e25 e33 e15 e26 e34 e16 e35 e27 e36 e28 e37 e29 e17 e18 e19 e38 e2 10 e39 e3 10 e2 11

15 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 15 P. SWEID 1- Initialiser toutes les Hi à zéro : H i = 0 i 2 - A chaque événement local (Ei) sur un site Si H i := Hi + 1 Ei: est daté par H i Conséquence : E 1 et E 2 sont dans le processus P i et que E 1 --> E 2 alors H i (E 1 ) < H i (E 2 ). 3- Chaque message émis par Pi doit estampillée par la date de son émission : (m, TS(m)), avec TS(m) = H(Emission) = H i 4- A la réception d un message (m, TS(m)) sur site Sj : H j = max (TS(m),H j ) + 1= max (H i,H j ) + 1 Exercice N° 1 - Algorithme de L. Lamport

16 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 16 P. SWEID S1 S2 S3 e11 e12 e31 e21 e22 e32 m1 m H j = max (TS(m),H j ) + 1 = max (H i,H j ) Initialiser toutes les Hi à zéro : H i = 0 i H i := Hi + 1TS(m1) = 2TS(m2) = 4 H 2 (e21) = max (2,0 ) + 1 = 3 H 3 (e32) = max (4,1 ) + 1 = 5 Exercice N° 1 - Algorithme de L. Lamport Retour

17 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 17 P. SWEID S1 S2 S3 e11e12 e31 e21e22 e32 e23e24e25 e13e Exercice N°2 - Algorithme de L. Lamport Retour

18 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 18 P. SWEID S1S1 S2S2 S3S3 e11e12 e21 e22 e31e32 (0,0,1) (1,0,0) (2,0,0) (2,1,0) (2,2,0) (2,2,2) 1 - Vi[1,…,N] = (0,…..,0) 2 - Vi[i] := Vi[i] Vi[i] := Vi[i] + 1 Vi[j] := max(Vi[j], EVm[j]) pour tous j = 1,…N, j i (0,0,0) Exercice N°3 - Estampillage vectorielle Retour

19 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 19 P. SWEID 1 - Vi[1,…,N] = (0,…..,0) 2 - Vi[i] := Vi[i] Vi[i] := Vi[i] + 1 Vi[j] := max(Vi[j], TSm[j]) pour tous j = 1,…N, j i S1 S2 S3 S4 [0,0,0,0] [0,1,0,0] [1,1,0,0][2,1,0,0] [2,1,2,1] [0,0,1,1] [0,0,0,1] [2,1,3,1] [3,3,0,0] [0,0,0,2] [3,1,0,0] [3,4,3,1] [0,2,0,0] Exercice N°3 - Estampillage vectorielle Retour

20 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 20 P. SWEID Problème – Difficulté moyenne A C D B

21 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 21 P. SWEID Problème – Difficulté moyenne A B C D M 1 M 3 M 4 M 2 M 5 M 6

22 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 22 P. SWEID Problème – Difficulté moyenne

23 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 23 P. SWEID Problème – Difficulté moyenne Chaque ordinateur commence avec un compteur à 0 et un vecteur de 4 compteurs à 0. Les compteurs dans le vecteurs sont ainsi: [a,b,c,d]. Les opérations sont donc: A: [0,0,0,0], envoi M1 [1,0,0,0], arrivée M3 [2,0,0,1], envoi M4[3,0,0,1]. B: [0,0,0,0], arrivée M1 [1,1,0,0], envoi M2 [1,2,0,0], arrivée M5[1,3,1,0], arrivée M6[1,4,1,2]. C: [0,0,0,0], envoi M5 [0,0,1,0], arrivée M2 [1,2,2,0], arrivée M4[3,2,3,1]. D: [0,0,0,0], envoi M3 [0,0,0,1], envoi M6 [0,0,0,2]. Envoi M1 = [1,0,0,0] est avant arrivée M2 = [1,2,2,0], envoi M3 = [0,0,0,1] concurrent arrivée M5 = [1,3,1,0]. Retour

24 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 24 P. SWEID Exercice N°4 – Chandy-Lamport-1- P1 P2 P3 e24 e12 e13 e14e15e16 e21 e22 e23 e11 e25 e32 e33 e34e35e31 Mk3 m1 m2 m6 m4m3 m7 m8 m5 EL3 EC 13=.. EC 23 = …

25 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 25 P. SWEID Exercice N°4 – Chandy-Lamport-1- P1 P2 P3 e24 e12 e13 e14e15e16 e21 e22 e23 e11 e25 e32 e33 e34e35e31 Mk3 m1 m2 m6 m4m3 m7 m8 m5 EL3 EL1 EC 31 = Enregistrer état canal EC31 Vide EC 21 = … EC 13= EC 23 = …

26 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 26 P. SWEID Exercice N°4 – Chandy-Lamport-1- P1 P2 P3 e24 e12 e13 e14e15e16 e21 e22 e23 e11 e25 e32 e33 e34e35e31 Mk3 m1 m2 m6 m4m3 m7 m8 m5 EL3 EL1 EL2 EC 31 = EC 13= EC 21 = … EC 23 = … EC 12 = EC 32 = …

27 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 27 P. SWEID Exercice N°4 – Chandy-Lamport-1- P1 P2 P3 e24 e12 e13 e14e15e16 e21 e22 e23 e11 e25 e32 e33 e34e35e31 Mk3 m1 m2 m6 m4m3 m7 m8 m5 EL3 EL1 EL2 EC 31 = EC 13= EC 21 = … EC 12 = EC 23 = EC 32 =m7

28 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 28 P. SWEID Exercice N°4 – Chandy-Lamport-1- P1 P2 P3 e24 e12 e13 e14e15e16 e21 e22 e23 e11 e25 e32 e33 e34e35e31 Mk3 m1 m2 m6 m4m3 m7 m8 m5 EL3 EL1 EL2 EC 31 = EC 13= EC 12 = EC 23 = EC 32 =m7 EC 21 = Retour

29 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 29 P. SWEID

30 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 30 P. SWEID Exercice : Etat global cohérent dune application répartie Solution : Voir la figure ci-dessous pour un trajet possible du marqueur. En A : 1.le processus P1 enregistre son état (état(P1) = 1) 2.et envoie un marqueur sur tous ses canaux sortants, ici un marqueur est envoyé vers P2. En B : le processus P2 reçoit un marqueur en provenance du processus P1. Comme il na pas encore enregistré son état, 1.il enregistre celui-ci (état(P2 ) = 1), 2.enregistre létat du canal de P1 vers P2 à (vide) ;. 3.Puis il diffuse en C un marqueur sur tous ses canaux sortants. Ici il envoie le marqueur à P3 En D : le processus P3 reçoit un marqueur, 1.enregistre son état (état(P3) = 0) 2.et létat du canal de P2 vers P3 à. 3.Il diffuse ensuite le marqueur à P1

31 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 31 P. SWEID Exercice : Etat global cohérent dune application répartie Solution : En E : le processus P1 ayant déjà enregistré son état, 1.il enregistre létat du canal de P3 vers P1 2.comme la liste des messages reçus depuis lenregistrement, ici {M3}. Finalement, létat enregistré est: [1; ; 0; ; 0; {M3}] On remarquera que létat enregistré nest pas un état de la trajectoire du processus. Mais en permutant les événements e 2,S et e 1,R qui sont concurrents, on passerait par létat enregistré. létat enregistré : Etat (P1) Canal P3 ->P1 = M3 Etat (P2) Canal P1 ->P2 = Etat (P3) Canal P2 ->P3 =

32 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 32 P. SWEID Exercice : Etat global cohérent dune application répartie P1 MK1 P2 P3 1. enregistrer sont état local (état P2) 2. envoyer marqueur sur P2 -> P3 état canal P1 P2 = MK2 MK3 1. enregistrer sont état local (état P3) 2. envoyer marqueur sur P3 -> P1 état canal P2 P3 = Observation sur canal entrant (P3 -> P1) retour

33 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 33 P. SWEID Annexe

34 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 34 P. SWEID Hypothèse : respect de lordre des messages : (canaux FIFO) Principe Utiliser un message marqueur pour séparer avant et après enregistrement pour chaque processus Algorithme (à exécuter par tout processus Pi ) Première réception du marqueur (depuis Pj ) 1) Enregistrer état (Pi ) 2) Enregistrer état (canal ) comme vide 3) Diffuser le marqueur à tous ses voisins (processus vers lequel il a un canal) {1-2-3} doit être atomique Réceptions suivantes du marqueur (depuis Pk ) Enregistrer état (canal ) comme : tous les messages reçus de Pk entre lenregistrement de état (Pj ) et la réception du marqueur de Pk Nécessité de détecter la terminaison (enregistrement de tous les états) et de regrouper lensemble des données enregistrées Résumé

35 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 35 P. SWEID EXEMPLE DE DETERMINATION D'UN ETAT COHERENT S2 lance la détermination d'état global et diffuse mk2 Les 3 événements émission2(mk2), réception1(mk2) et réception3(mk2) déterminent une coupure incohérente. Les marqueurs mk1 et mk3 permettent : de forcer la transitivité de la causalité et d'avoir une coupure cohérente. de noter dans les ECij les messages qui traversent la coupure cohérente.

36 Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 36 P. SWEID Exemple 2 autre trace et autre état cohérent


Télécharger ppt "Cours NFP111 – Chapitre 03 – Synchronisation dans les SD – Etat Global – Algorithmes Distribués Page 1 P. SWEID S1 S2 S3 e11e12 e31 e21e22 e32 e23e24e25."

Présentations similaires


Annonces Google