Vous êtes sur la page 1sur 48

Systèmes Distribués

Ali BEDDIAF
Département d’informatique
Université Hadj Lakhdar de Batna
http://sites.google.com/site/Abeddiaf
Synchronisation dans les SDs
• Introduction

– Les processus collaborent entre eux pour réaliser


une tâche.

– Relation de collaboration:
• Concurrence : nécessite un accès exclusif aux
ressources critiques.
• Coopération: nécessite l’assurance de la cohérence des
données partagées.
2
Synchronisation dans les SDs
• Introduction

– Systèmes centralisés:
Mécanismes de synchronisation basés sur la
mémoire centrale :
• Sémaphore
• Verrous
• Moniteurs
• TAS
• Etc.
3
Synchronisation dans les SDs
• Introduction

– Systèmes répartis:
• Pas de mémoire commune! et les mémoires
locales distantes sont inaccessibles!
• Le seul moyen restant pour se synchroniser est
bien évidement le envoi de messages.

4
Synchronisation dans les SDs
• Temps, ordre et état global

– Les processus s’exécutent sur des site différents


où chaque site à sa propre horloge locale.

– Au niveau d’un même site, L’envoi de message (les


évènements) sont bien ordonnés en se référant à
l’horloge locale.

5
Synchronisation dans les SDs
• Temps, ordre et état global

– Au niveau du tout le système, il s’avère difficile


d’établir un ordre global entre tous les
évènements produits par l’ensemble des sites.

– établir un temps global et cohérent et identique


au niveau de tous les sites, peut se faire par :
• La synchronisation des horloges physiques locales en
choisissant une horloge comme référence.
• Soit en établissant un temps logique.
6
Synchronisation dans les SDs
• Temps, ordre et état global
Temps logique
– Rien à voir avec le temps physique
– Il est fait pour vocation d’ordonner l’exécution des
processus et leurs évènements générés dans le
temps
– Ce temps logique est géré via une horloge dite
logique.

7
Synchronisation dans les SDs
• Temps, ordre et état global
Temps logique
– L’ordonnancement temporel des évènements des
processus est décrit via un chronogramme.

8
Synchronisation dans les SDs
• Temps, ordre et état global
Temps logique
– Evènement d’émission : ex. e11
– Evènement de réception : ex. e21
– Evènement interne : reflète l’évolution du processus ex. e13

9
Synchronisation dans les SDs
• Temps, ordre et état global
Temps logique
–exy désigne un évènement où x est le numéro du processus
et y est le numéro d’évènement

10
Synchronisation dans les SDs
• Temps, ordre et état global
Dépendance causale
– On a une relation de dépendance causale entre
deux événements (e et e') si un évènement doit
avoir lieu avant l'autre:

e e'

11
Synchronisation dans les SDs
• Temps, ordre et état global
Dépendance causale
– Quand e e' est vérifie, cela implique :
• Si e et e' sont des événements d'un même processus,
alors e précède localement e'.
• Si e est l'émission d'un message, e' est la réception de
ce message.
• Si il existe e'' tel que : e'e'', alors ee'' (transitivité)

12
Synchronisation dans les SDs
• Temps, ordre et état global
Dépendance causale
– Remarque :
Les dépendances causales ne permettent d’établir
un ordre total mais uniquement des ordres partiels

Les évènements non liés par des dépendances


causales sont considéré en parallèle (parallélisme
logique). e ||e'  ¬ (ee' or e'e)

13
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
– C’est la matérialisation des dépendances causales
via la datation des évènements du système.

– Il existe trois classes d’horloges logiques :


• Horloge de Lamport (estampille)
• Horloge vectorielle de Mattern
• Horloge matricielle

14
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge de Lamport
– Le principe est d’associer (ou d’estampiller) à
chaque évènement produit, un couple :
H(e)=(s, nb)
où s est le numéro de processus et nb est le
numéro incrémental d’évènements.

15
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge de Lamport
– Un évènement e précède un autre e' H(e)<H(e')
si l’une des deux conditions est vraie :

1. nb<nb'
2. nb=nb' et s<s'

16
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge de Lamport
– Règles de fonctionnement
Au niveau de chaque site, un processus Pi
possède une horloge logique Hi initialisé à 0.

17
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge de Lamport
– Règles de fonctionnement
1. Pour chaque nouvel évènement interne de Pi
• On incrémente l'horloge local par 1; Hi=Hi +1.
• On date cette nouvel évènement par Hi

18
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge de Lamport
– Règles de fonctionnement
2. Pour chaque émission d'un message par Pi
• on incrémente Hi par 1.
• on envoie le message estampillé par Hi

19
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge de Lamport
– Règles de fonctionnement
3. Pour chaque réception d'un message m
avec estampille (s,nb)
• on incrémente l'horloge locale selon la formule suivante:
Hi= max(Hi,nb) + 1
• on marque l'évènement de réception avec Hi

20
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge de Lamport
– Exemple:

21
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge de Lamport
• Remarque :
– l’horloge de Lamport permet d’établir un ordre total
global et arbitraire entre tous les évènements même
en présence des évènements sans dépendance
causale, et cela grâce à la prise en compte du numéro
de processus

– l’ordre de numérotation des processus est important


22
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge de Lamport
• Remarque :
– On note l’ordre total par l’opérateur ‘<<’.
D’après l’exemple précédent, l’ordre total global
déduit sera :
e11 << e31 << e12<< e21 << e32 << e13 << e22 << e33 <<
e14 << e34 <<e35 << e23 << e24 << e15
23
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge vectorielle de Mattern
Les évènements ici sont estampillés par un
vecteur des dates qui a comme taille le nombre
des processus du système

24
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge vectorielle de Mattern
– Règles de fonctionnement
Au niveau de chaque processus Pi, ce vecteur
d’horloges est initialise à 0, donc
Vi (0,…,0)

25
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge vectorielle de Mattern
– Règles de fonctionnement
1. A chaque évènement (interne, émission ou
réception) on incrémente par un la case
correspondante de ce processus dans le vecteur
d’évènement local :
Vi[i]= Vi[i]+1
26
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge vectorielle de Mattern
– Règles de fonctionnement
2. S’il s’agit d’une émission, le vecteur Vi est
envoyé avec message

27
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge vectorielle de Mattern
– Règles de fonctionnement
3. Si il s’agit d’une réception d’un message
contenant un vecteur Vj, on met à jour le
vecteur local Vi selon la formule suivante :

28
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge vectorielle de Mattern
– Relations d’ordre partiel sur les dates
V ≤ V' défini par :
V < V' défini par : (V ≤ V‘) et j :V * j + < V' * j +
V || V' défini par: ¬ ( V < V' ) ^ ¬ ( V' < V )

29
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge vectorielle de Mattern
– Exemple:

30
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge vectorielle de Mattern
– Propriétés:
o Si deux dates sont ordonnées, on a forcément une
dépendance causale entre les événements datés,
c’est-à-dire : V(e) < V(e')  e  e‘

o Si il n'y a aucun ordre entre les 2 dates, les 2


évènements sont indépendants causalement,
c'est-à-dire : V(e) || V(e')  e || e'
31
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge vectorielle de Mattern
– Propriétés:
o L'horloge de Mattern respecte les indépendances
causales, tandis que l'horloge de Lamport impose un
ordre arbitraire entre les évènements

o L’indépendance causale imposée par l’horloge de


Mattern ne permet pas d’avoir un ordre total global du
système, contrairement a celle de Lamport.
32
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge Matricielle
– on associe à chaque évènement une matrice M
carrée de dimension N*N (N: est le nombre de
processus dans le système).

– La caractéristique de ce type d’horloge est qu’un


processus Pi a une connaissance sur le nombre de
messages qu’un processus Pj a envoyé à Pk.
33
Synchronisation dans les SDs
• Temps, ordre et état global
Horloges logiques
Horloge Matricielle
– Mi[i,i] : nombre d’évènements réalisés par Pi.
– Mi[i,j] : nombre de messages envoyés par Pi vers Pj
– Mi[j,j] : nombre d’évènements(qu’on connait) sur Pj
– Mi[j,k] : nombre de messages (qu’on connait)
envoyés de Pj vers Pk

34
Synchronisation dans les SDs
• Temps, ordre et état global
Etat global
– C’est l’état du système à un instant donné.
– Buts:
• Trouver des états cohérents à partir desquels on peut
reprendre un calcul distribué en cas de plantage du
système
• Détecter les propriétés stables.
• Faciliter la mise au point (débogage) des applications
distribuées
35
Synchronisation dans les SDs
• Temps, ordre et état global
Etat global
Coupures
– Un état global est défini à partir de coupures.
– Une coupure est une photographie à un instant
donné de l'état du système.
– Elle définit les événements appartenant au passé et
au futur par rapport à l'instant de la coupure.

36
Synchronisation dans les SDs
• Temps, ordre et état global
Etat global
Coupures

37
Synchronisation dans les SDs
• Temps, ordre et état global
Etat global
Coupures
– la coupure C1={ e11, e12, e13, e21, e22, e23,
e31, e32, e33, e34 }
– L’état associé à la coupure est (e13, e23, e34).

38
Synchronisation dans les SDs
• Temps, ordre et état global
Etat global
Coupures
– Coupure cohérente
• Coupure qui respecte les dépendances causales des
événements du système
• Soit a et b deux événements du système : a C et b  a
b C
• Aucun message ne vient du futur

39
Synchronisation dans les SDs
• Temps, ordre et état global
Etat global
Coupures
– Etat cohérent
• État associé à une coupure cohérente
• Une coupure cohérente permet la reprise sur faute

40
Synchronisation dans les SDs
• Temps, ordre et état global
Etat global
Coupures

41
Synchronisation dans les SDs
• Temps, ordre et état global
Exclusion mutuelle (Lamport 78)
Suppositions
– le nombre de sites est connu (N)
– Le réseau est connexe
– Les filles d’attentes (de taille N) des messages sont
FIFO

42
Synchronisation dans les SDs
• Temps, ordre et état global
Exclusion mutuelle (Lamport 78)
Principe
– Les événements du système sont classés par un
ordre total (<<) obtenu avec une datation par les
horloges logiques de Lamport, dans les filles
d’attentes.
– Il repose sur la connaissance mutuelle des avis
(favorables ou pas) des sites et ceci via des files
d'attentes
43
Synchronisation dans les SDs
• Temps, ordre et état global
Exclusion mutuelle (Lamport 78)
Fonctionnement
– Quand un site veut entrer en section critique, il
demande l'autorisation à tous les sites (y compris
lui-même)
– Cette demande d’autorisation revient à un envoi de
message REQUEST

44
Synchronisation dans les SDs
• Temps, ordre et état global
Exclusion mutuelle (Lamport 78)
Fonctionnement
– Il n'entre en section critique que:
• Après réception des réponses de tous les autres
sites
• lorsqu'il sait que sa demande est la plus
ancienne (en début de la fille)

45
Synchronisation dans les SDs
• Temps, ordre et état global
Exclusion mutuelle (Lamport 78)
Fonctionnement
– La réponse des autres sites peut être:
• Une demande d’autorisation par un message REQUEST
(pour les sites qui veulent aussi entrer à leurs sections
critiques)
• Un acquittement par un message ACK ( pour les sites qui
ne veulent pas entrer à leurs sections critiques)
• Les messages de réponse sont envoyés à tous les sites et
pas uniquement au site demandeur.
46
Synchronisation dans les SDs
• Temps, ordre et état global
Exclusion mutuelle (Lamport 78)
Fonctionnement
– Quand le site quitte la section critique, il avertit
tous les autres sites (par un message RELEASE) pour
que son successeur puisse rentrer dans sa section
critique

47
Synchronisation dans les SDs
• Temps, ordre et état global
Exclusion mutuelle (Lamport 78)
Fonctionnement
– Cet algorithme engendre 3*(N -1) messages.
– Le format des messages échangés est le suivant :
(Type, Hi, i)
• Type : { REQUEST, ACK, RELEASE}
• Hi : est le temps actuel de horloge logique du site i
• i : est le numéro du site.

48

Vous aimerez peut-être aussi