Académique Documents
Professionnel Documents
Culture Documents
Ali BEDDIAF
Département d’informatique
Université Hadj Lakhdar de Batna
http://sites.google.com/site/Abeddiaf
Synchronisation dans les SDs
• Introduction
– 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
5
Synchronisation dans les SDs
• Temps, ordre et état global
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 ee'' (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
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.
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
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‘
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