Académique Documents
Professionnel Documents
Culture Documents
Eric Cariou Master Technologies de l'Internet 1re anne Universit de Pau et des Pays de l'Adour Dpartement Informatique Eric.Cariou@univ-pau.fr
1
Dfinir un temps global cohrent et identique (ou presque) pour tous les processus
Soit synchroniser au mieux les horloges physiques locales avec une horloge de rfrence ou entre elles Soit crer un temps logique Temps qui n'est pas li un temps physique But est de pouvoir prciser l'ordonnancement de l'excution des processus et de leur communication En fonction des vnements locaux des processus, des messages envoys et reus, on cr un ordonnancement logique
Temps logique
Chronogramme
Chronogramme
Dcrit l'ordonnancement temporel des vnements des processus et des changes de messages Chaque processus est reprsent par une ligne Trois types d'vnements signals sur une ligne
mission d'un message destination d'un autre processus Rception d'un message venant d'un autre processus vnement interne dans l'volution du processus
Les messages changs doivent respecter la topologie de liaison des processus via les canaux
Chronogramme
Trois processus tous relis entre-eux par des canaux Temps de propagation des messages quelconques et possibilit de perte de message
Chronogramme
Exemples d'vnements
Processus P1
e11 : vnement d'mission du message m1 destination du processus P2 e13 : vnement interne au processus e14 : rception du message m4 venant du processus P3
Processus P2 : message m5 envoy avant m6 mais m6 reu avant m5 Processus P3 : le message m7 est perdu par le canal de communication exy avec x le numro du processus et y le numro de l'vnement pour le processus, dans l'ordre croissant 5
Dpendance causale
Il y a une dpendance causale entre 2 vnements si un vnement doit avoir lieu avant l'autre Notation : e e'
Si e e', alors une des trois conditions suivantes doit tre vrifie pour e et e'
Si e et e' sont des vnements d'un mme processus, e prcde localement e' Si e est l'mission d'un message, e' est la rception de ce message Il existe un vnement f tel que e f et f e'
Les dpendances causales dfinissent des ordres 6 partiels pour des ensembles d'vnements du systme
Dpendance causale
Localement : e11 e12, e12 e13 Sur message : e12 e34 Par transitivit : e12 e35 (car e34 e35) et e11 e13 A priori non : absence de dpendance causale Des vnements non lis causalement se droulent en parallle
Relation de paralllisme : ||
e || e' ((e e') v (e' e))
Paralllisme logique : ne signifie pas que les 2 vnements se droulent simultanment mais qu'il peuvent se drouler 7 dans n'importe quel ordre
Horloges logiques
Horloges logiques
Datation de chacun des vnements du systme Avec respect des dpendances causales entre evts Estampille (horloge de Lamport)
3 familles d'horloge
Une donne par vnement : information au niveau global Un vecteur par vnement : information sur chacun des autres processus Une matrice par vnement : information sur les informations que connaisse chacun des processus des autres processus
Matricielle
Horloge de Lamport
Lamport, 1978
Une date (estampille) est associe chaque venement : couple (s, nb)
Avec H(s, nb) < H(s' , nb') si (nb < nb') ou (nb = nb' et s < s') H(e) < H(e') (e' e) C'est--dire : soit e e', soit e || e'
Pour deux dates d'un mme processus, les numros de ces dates sont diffrentes d,d' : d.s = d'.s d.nb d'.nb
Horloge de Lamport
Localement, chaque processus Pi possde une horloge locale logique Hi, initialise 0
Sert dater les vnements Hi = Hi + 1 : on incrmente l'horloge locale L'vnement est dat localement par Hi On incrmente Hi de 1 puis on envoie le message avec (i, Hi) comme estampille Hi = max(Hi, nb) +1 et marque l'vnement de rception avec Hi
Hi est ventuellement recale sur l'horloge de l'autre processus 10 avant d'tre incrmente
Horloge de Lamport
Date de e23 : 6 car le message m5 reu avait une valeur de 5 et l'horloge locale est seulement 3 Date de e34 : 4 car on incrmente l'horloge locale vu que sa valeur est suprieure celle du message m3 Pour e11, e12, e13 ... : incrmentation de +1 de l'horloge locale 11
Ordonnancement global
Horloge de Lamport
Via Hi, on ordonne tous les vnements du systme entre eux Ordre total obtenu est arbitraire Si dpendance causale entre 2 evts : ordre respecte dpendance Si indpendance causale entre : choix d'un ordre entre les 2
Soit e vnement de Pi et e' vnement de Pj : e << e' (Hi(e) < Hj(e')) v (Hi(e) = Hj(e') avec i < j)
Localement (si i = j), Hi donne l'ordre des vnements du processus Les 2 horloges de 2 processus diffrents permettent de dterminer l'ordonnancement des vnements des 2 processus
Si galit de la valeur de l'horloge, le numro du processus est utilis pour les ordonner
e11 << e31 << e12<< e21 << e32 << e13 << e22 << e33 << e14 << e34 << 12 e35 << e23 << e24 << e15
Horloge de Mattern
Permet galement de savoir si 2 vnements sont parallles (non dpendants causalement) Ne dfinit par contre pas un ordre total global Utilisation de vecteur V de taille gale au nombre de processus
Principe
Localement, chaque processus Pi a un vecteur Vi Un message est envoy avec un vecteur de date
Pour chaque processus Pi, chaque case Vi[ j ] du vecteur contiendra des valeurs de l'horloge du processus Pj13
Horloge de Mattern
Fonctionnement de l'horloge
Initialisation : pour chaque processus Pi, Vi =(0, ... , 0) Pour un processus Pi, chacun de ses vnements (local, mission, rception) :
Vi [ i ] = Vi [ i ] + 1 Incrmentation du compteur local d'vnement Si mission d'un message, alors Vi est envoy avec le message Pour un processus Pi, la rception d'un message m contenant un vecteur Vm, on met jour les cases j i de son vecteur local Vi
j : Vi [ j ] = max ( Vm [ j ], Vi [ j ])
Mmorise le nombre d'vnements sur Pj qui sont sur Pj dpendants causalement par rapport l'mission du message La rception du message est donc aussi dpendante causalement de ces vnements sur Pj
14
Horloge de Mattern
15
Horloge de Mattern
Si deux dates sont ordonnes, on a forcment dpendance causale entre les vnements dats Si il n'y a aucun ordre entre les 2 dates, les 2 vnements sont indpendants causalement 16
Horloge de Mattern
V(e13) < V(e14) donc e13 e14 V(e14) < V(e15) donc e13 e15 V(e35) < v(e23) donc e35 e23
Horloge de Lamport respecte cela galement On a ni V(e32) < V(e13) ni V(e13) < V(e32) donc e32 || e13 L'horloge de Mattern respecte les indpendances causales
L'horloge de Lamport impose un ordre arbitraire entre les vnments indpendants causalement 17
Horloge matricielle
Horloge matricielle
n processus : matrice M de (n x n) pour dater chaque evt Sur processus Pi
Mi [ i , i ] : nombre d'vnements raliss par Pi Mi [ i , j ] : nombre de messages envoys par Pi Pj (avec j i) Mi [ j , k ] : nombre de messages que l'on sait que Pj a envoy Pk Mi [ j , j ] : nombre d'vnements que l'on connait sur Pj (avec j k)
Ligne j (avec j i)
Quand on reoit un message d'un autre processus, on compare l'horloge d'mission avec l'horloge locale
Horloges
Application, utilit
tat global
tat Global
Trouver des tats cohrents partir desquels on peut reprendre un calcul distribu en cas de plantage du systme Dtection de proprits stables, du respect d'invariants Faciliter le debugging et la mise au point d'applications distribues
Dfini partir de coupures Photographie un instant donn de l'tat du systme Dfinit les vnements appartenant au pass et au futur par rapport l'instant de la coupure 20
Coupure
Coupure
Dfinition coupure
Calcul distribu = ensemble E d'vnements Coupure C est un sous-ensemble fini de E tel que
i :e C et e vnement du processus Pi e ei L'tat est dfini la frontire de la coupure : l'vnement le 21 plus rcent pour chaque processus
Coupure
Exemple de coupure
(mme chronogramme que pour exemples horloges Lamport et Mattern)
Coupure = ensemble { e11, e12, e13, e21, e22, e23, e31, e32, e33, e34 }
22
Coupure/tat cohrent
Coupure cohrente
Coupure qui respecte les dpendances causales des vnements du systme
Et pas seulement les dpendances causales locales chaque processus Soit a et b deux vnements du systme : a C et b a b C Coupure cohrente : aucun message ne vient du futur
tat cohrent
tat associ une coupure cohrente Permet par exemple une reprise sur faute
23
Coupure cohrente
Coupure C1 : cohrente Coupure C2 : non cohrente car e35 e23 mais e35 C2
La rception de m5 est dans la coupure mais pas son mission 24 m5 vient du futur par rapport la coupure
Datation Coupure
V(C) = max ( V(e1), ... , V(eN) ) : i : V(C)[ i ] = max ( V(e1)[ i ] , ... , V(eN)[ i ] )
Pour chaque valeur du vecteur, on prend le maximum des valeurs de tous les vecteurs des N vnements pour le mme indice
25
Datation Coupure
V(e13) = (3,0,0), V(e22) = (1,2,1), V(e33) = (0,0,3) V(C) = (max(3,1,0), max(0,2,0), max(0,1,3)) = (3,2,3) Coupure cohrente car V(C)[1] = V(e13)[1], V(C)[2] = V(e22)[2], V(C)[3] = V(e33)[3] V(e13) = (3,0,0), V(e23) = (2,3,5), V(e34) = (2,0,4) V(C) = (max(3,2,2), max(0,3,0), max (0,5,4)) Non cohrent car V(C)[3] V(e34)[3]
D'aprs la date de e23, e23 doit se drouler aprs 5 vnements de P3 or e34 n'est que le quatrime vnement de P3 Un vnement de P3 dont e23 dpend causalement n'est donc pas dans la coupure (il s'agit de e35 se droulant dans le futur) 26