Title: Mehrez Boulares, Nour Ben Yahia
1Gestion du temps dans les SRs
- Mehrez Boulares, Nour Ben Yahia
ISI KEF 2013/2014
2INTRODUCTION
- Les systèmes répartis sont présents dans toutes
les applications et sont, par nature, très
complexes. Le problème principal est quil ny a
plus détat global connu de toutes les parties
mais seulement des états locaux permettant de
faire émerger un état global. - La propriété démergence est souvent mentionnée
dans les systèmes à agents ou systèmes multi
agents lactivité de chacun concourt à la
réalisation dun objectif global. - Très naturellement, le contrôle de ces systèmes
répartis nest pas simple mais il est important
de pouvoir sassurer de la réalisation dun
objectif donné par un ensemble dactivités
élémentaires.
3INTRODUCTION
- Un système réparti est constitué de N composants
(processus ou sites) communiquant par messages
(et uniquement de cette manière). - Chacun de ces composants agit comme un automate
il réalise des opérations qui modifient son état.
- Les opérations réalisées par un des composants
sont naturellement ordonnées par l'ordre dans
lequel elles sont réalisées - sil s'agit d'un processus abritant plusieurs
activités (threads), - sur un système monoprocesseur, c'est l'ordre de
l'exécution des instructions des instructions sur
ce processeur qui ordonne les événements. - La définition de l'ordre des événements sur un
système multiprocesseurs (fortement et a fortiori
faiblement couplés) est plus problématique du
fait de la difficulté de maintenir une notion de
temps absolu cohérente.
4INTRODUCTION
- Dans un contexte de répartition
- Lobservation des programmes en exécution
présente des difficultés qui rendent le problème
non trivial. - Un programme réparti est constitué dun ensemble
de processus sexécutant en parallèle et
communiquant seulement par envoi de messages sur
des canaux les interconnectant. - Il ny a pas dhorloge commune aux différents
processus, et de plus, les temps de transfert des
messages ne sont pas bornés (dans un contexte de
communication fiable, ils sont toutefois finis). - Dans ces conditions, il est impossible
deffectuer une observation simultanée de
létat des différents processus et canaux. - La réalisation dune observation cohérente qui
reflète un état global constitué des états locaux
des différentes parties du système, pris à des
instants physiques différents mais de manière à
rendre une information utile sur létat du
système dans son intégralité, constitue donc un
problème désormais classique, connu sous le nom
de détection dun état global réparti cohérent.
5PROBLEMATIQUE
- Obtenir une vision instantanée d'un système
réparti, consistant en la collection des états
des différents sites le composant (typiquement
une image mémoire de chacun des sites) est
difficile à obtenir sans figer chacun des
systèmes. - L'absence de mémoire commune et le caractère
aléatoire des délais d'acheminement des messages
échangés entre les sites rendent impossible le
calcul d'un état global du système dans un
système réparti. - Typiquement, l'image qu'un site possédera de
l'état des autres sites ne pourra lui être
communiquée qu'au travers de messages et ne
pourra de ce fait correspondre qu'à un état du
passé de ces sites la chronologie des
différentes images ainsi collectées n'est pas
connue a priori.
6PROBLEMATIQUE
- L'absence d'un état global accessible directement
constitue incontestablement une caractéristique
de la répartition et est source de difficultés
dans le développement d'applications relatives
à - l'interblocage ou verrou mortel (deadlock)
situation dans laquelle un ensemble de processus
est en situation de blocage du fait de
l'existence d'un cycle dans le graphe
d'allocations et de demandes des ressources à ces
processus - le ramasse-miettes (garbage collecting),
opération consistant en le épération des
ressources allouées à un objet inutilisé - la mise au point (debugging) opération incluant
par exemple la consultation et/ou la modification
des valeurs de variables dans différents
composants à un instant donné.
7PROBLEMATIQUE
- Les Systèmes répartis ont une évolution
asynchrone - pas de mémoire commune (communication par
messages) - pas dhorloge commune
- Les horloges locales ne sont pas synchrones et
dérivent - Létat dun site distant ne peut être connu que
par des informations véhiculées par les messages. - De plus, les communications introduisent des
délais - L'ordre des messages n'est pas forcément préservé
- Conséquences
- Perception différente des mêmes événements depuis
des sites distincts - Chaque site a sa propre horloge, la notion d'état
global n'existe pas - On ne peut pas mettre en œuvre des algorithmes
répartis basés sur le temps.
8CONSTRUCTION DUN ÉTAT GLOBAL
- L'exécution d'un algorithme réparti est une
succession d'événements, chacun d'eux se
produisant sur un site donné (Un événement
émission/ réception de message, calcul local au
site) - Une horloge unique permet de donner une date à
chacun des événements et de les ordonner entre
eux. - Sur chaque site, il est possible de définir un
état local et de définir un ordre entre les
événements - Deux processus de deux sites différents peuvent
avoir des informations différentes sur létat du
système et sur lordre des événements qui sy
produisent. - La solution de synchronisation des sites entre
eux est donnée par la construction d'un état
global - Utilisation d'horloges logiques, vectorielles,
matricielles - Utilisation détats locaux des sites et de
messages en transit entre eux
9LE MODÈLE DE CALCUL
- Un système réparti est constitué dun ensemble
fini de processus qui ne communiquent que par
envoi de messages. - La structure dun tel système peut être modélisée
par un graphe orienté les sommets de ce graphe
sont les processus et les arcs représentent les
canaux de communication unidirectionnels (canaux
virtuels) reliant des processus entre eux. - A priori, aucune hypothèse particulière nest
faite quant à la topologie du graphe. - Les processus seront désignés par P1, P2,..., Pn
et le canal allant de Pi vers Pj, sil existe,
sera désigné par Ci j.
10LE MODÈLE DE CALCUL
- Les processus ne partagent ni mémoire commune ni
horloge globale, et aucune hypothèse nest faite
quant à leur vitesse relative. Lenvoi et la
réception de messages sont effectués de manière
asynchrone, mais aucun délai maximum de transfert
des messages nest supposé connu. - La seule hypothèse générale sur les
communications concerne leur fiabilité les
messages ne sont ni perdus (le délai de transfert
est fini tout message émis est reçu) ni altérés
ni dupliqués (tout message reçu a été émis). De
telles hypothèses caractérisent ce quil est
convenu dappeler un système réparti asynchrone
fiable
11ETAT GLOBAL
- Chaque processus et chaque canal possède à tout
moment un état local. Létat local eli dun
processus Pi résulte de son état initial et
de la séquence dévénements dont ce processus a
été le siège. Létat ECij dun canal Cij est
lensemble des messages en transit sur ce canal,
cest à dire qui ont été émis par le processus Pi
et nont pas encore été reçus par le processus
Pj. - Lévolution du système est régie par un ensemble
dévénements. Chaque événement met en jeu un
processus et éventuellement un canal. Il y a
trois sortes dévénements - les événements internes à un processus, qui ne
modifient que létat local du processus, - les émissions de messages, qui modifient létat
local du processus émetteur et létat du canal
sortant sur lequel est émis le message - et les réceptions de messages, qui modifient
létat local du processus récepteur et létat du
canal entrant par lequel le message a été reçu.
12ETAT GLOBAL
- Schématiquement on a, à ce niveau de description
(m désigne un message) - événement interne sur Pi provoque la transition
de eli à el'i , états avant et après lévénement - émission de m par Pi sur Ci j (cet
événement est noté émissioni(m)) provoque la
transition de eli à el'i et laffectation ECi j
ECi j U m - réception de m par Pi sur Cj i (cet
événement est noté réceptioni(m)) provoque la
transition de eli à el'i et laffectation ECj i
ECj i \ m .
13ETAT GLOBAL
- Chacun de ces événements est supposé atomique.
- On dit quun événement e est capté dans létat
local eli dun processus Pi - si e appartient à la séquence dévénements ayant
conduit Pi dans létat eli. - Il est important de remarquer que létat local
dun processus nest immédiatement observable que
par un observateur local à ce processus (cest à
dire ayant accès en lecture à la mémoire locale
de ce processus), tandis que létat local dun
canal C i j nest immédiatement observable ni par
son origine Pi ni par son extrémité Pj (Pi -
resp. Pj- na pas connaissance immédiate des
événements de réception -resp. démission-)
cest notamment ce fait qui rend difficile le
problème de lobservation cohérente dans un
système réparti. - Létat global S dun système réparti est
constitué de lensemble des états locaux des
processus et des canaux qui le constituent
14ETAT GLOBAL
- Un état global cohérent correspond à un état
global dans lequel le système peut se trouver.
Formellement, cela signifie - i) ?i eli est un état local du processus Pi.
- ii) Les conditions C1 et C2 qui suivant sont
vérifiées -
- C1 si lévénement émissioni(m) est capté dans
eli, alors lévénement récep- tionj(m) est soit
capté dans elj, soit le message m appartient à
ecij. -
- C2 si lévénement émissioni(m) nest pas capté
dans eli, lévénement récep- tionj(m) nest pas
non plus capté dans elj.
15ETAT GLOBAL
- Considérons lexécution représentée par la figure
2, où trois processus Pi, Pj et Pk captent
respectivement leurs états locaux eli, elj et elk
(le graphe de communication est celui de la
figure 1).
16ETAT GLOBAL
- Lensemble eli, elj, elk ne forme pas un état
global. - Si lon considère la paire (Pk, Pj), lémission
du message m3 est enregistrée dans létat local
elk du processus Pk alors que sa réception ne
lest pas dans létat local elj du processus Pj. - La condition C1 est mise en défaut, puisque
létat du canal ECkj nest pas considéré (un
éventuel redémarrage de Pj et de Pk, suite à une
reprise après défaillance, à partir de cet état
global entraînerait la perte du message m3). - Dautre part, même en considérant létat des
canaux dans létat global, la cohérence nest pas
assurée car la réception du message m4 est
enregistrée dans elj sans que son émission le
soit dans ELk, - ce qui met en défaut la condition C2 (les deux
états locaux elj et elk et létat du canal ECjk
ne sont pas mutuellement cohérents).
17NOTION DE PRÉCÉDENCE CAUSALE
- Pour définir un état global il faut tout dabord
pouvoir ordonner les événements entre eux, afin
que - Si un des événements contient lémission dun
message et que lautre contient la réception du
même message, alors le premier a eu lieu avant le
second. - Si un site émet une demande dallocation dune
ressource, il est considéré avant un autre site
qui aurait émis sa requête après le premier. - Cette relation dordre partiel sur les événements
est appelée relation de causalité. - On définit la précédence comme suit
- Un événement e précède un événement f si et
seulement si - Ou bien e et f se déroulent sur le même site dans
cet ordre - Ou bien e contient lémission dun message m et f
contient la réception du même message m.
18NOTION DE PRÉCÉDENCE CAUSALE
- Un événement E1 sur un site 1 précède un autre
événement E2 sur un site 2 si E1 a été généré
avant E2 - Il ya une précédence causale entre E1 et E2.
- Il existe une chaine dévénement qui démarre à E1
et finit par E2 et qui consiste par un
enchainement émission, exécution et réception. - La précédence causale est concrétisée par le
mécanisme dhorloge logique, une notion logique
permettant de comparer logiquement les événements
de point de vu leur ordre dexécution quelque
soit le site. - Afin de dater les événements des horloges
logiques de différents types peuvent être
utilisées Scalaire, Vectorielle, Matricielle.
19NOTION DE PRÉCÉDENCE CAUSALE
20NOTION DE PRÉCÉDENCE CAUSALE
- Cette relation définit un ordre partiel des
événements. Des événements e et e' non
comparables sont dits concurrents, ce qu'on note
ee'. - 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.
21NOTION DE PRÉCÉDENCE CAUSALE
- La précédence causale est concrétisée par le
mécanisme des horloges logiques, une notion de
temps logique permettant de comparer logiquement
des événements du point de vue de leur ordre
d'exécution quel que soit le site. - Afin de dater les événements, des horloges
logiques de différents types peuvent être
définies afin de rendre compte de la relation de
causalité entre les événements. Les valeurs des
horloges associées à des événements (leurs
estampilles logiques) comparables doivent être
elles-mêmes comparables et refléter l'ordre des
événements
22HORLOGE LOGIQUE
- Lamport a proposé de définir pour ce type de
systèmes une notion de temps logique permettant
de comparer logiquement des événements du point
de vue de leur ordre d'exécution d'une part,
sur un site, les événements locaux peuvent être
ordonnés en se basant sur l'ordre de leur
exécution (ou le temps absolu s'il est défini) et
d'autre part l'émission d'un message sur le site
émetteur précède toujours sa réception sur le
site récepteur. Cela correspond à la notion de
précédence causale.
23HORLOGE LOGIQUE
- Selon Leslie Lamport l'horloge logique permet de
comparer logiquement des événements (requêtes,
messages) du point de vue de leur ordre
d'exécution (Horloges scalaires) - Chaque site gère une horloge de type compteur
dont la valeur est un entier (initialisé à 0 au
lancement du système). - La valeur de l'horloge logique d'un site est
incrémentée chaque fois qu'un événement local s'y
produit opération locale, ou envoi/réception
d'un message. - Dans le cas d'un envoi, la valeur courante (après
incrémentation) de l'horloge de l'émetteur est
embarquée avec le message et sert à l'estampiller
(La réception d'un message permet de synchroniser
l'horloge du récepteur avec celle de l'émetteur
du message qui est transportée par le message. Le
principe est simple il consiste à attribuer à
l'horloge du récepteur une valeur supérieure à la
fois à la valeur courante de l'horloge du site et
à celle de l'estampille du message reçu.) - La réception d'un message permet de synchroniser
l'horloge du récepteur avec celle de l'émetteur
du message qui est transportée par le message.
24HORLOGE LOGIQUE SCALAIRE
- Principe attribuer à l'horloge du récepteur une
valeur supérieure à la fois à a valeur courante
de l'horloge du site et à celle de l'estampille
du message reçu. - Conséquence Garantit que la réception sera
postérieure à l'émission.
25HORLOGE LOGIQUE SCALAIRE
26HORLOGE LOGIQUE SCALAIRE
27HORLOGE LOGIQUE SCALAIRE
- Cette technique permet donc d'associer à chaque
événement une date (estampille logique)
correspondant à la valeur de l'horloge de son
site modifiée selon les règles que nous venons de
définir. On peut observer que - l'ordre des événements qui est ainsi défini n'est
pas un ordre strict plusieurs événements
peuvent porter la même valeur. C'est le cas
(parmi d'autres) sur notre exemple des événements
e, o et x appartenant respectivement à P, Q et R
qui ont chacun 6 comme date. Il est facile de
rendre cet ordre strict 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 l'identification
du site (par exemple un entier attribué
artificiellement ou une adresse IP ou physique).
28HORLOGE LOGIQUE SCALAIRE
La règle de comparaison des dates est alors
29HORLOGE LOGIQUE SCALAIRE
- De nombreux algorithmes répartis
- Algorithmes utilisant une file dattente
virtuelle répartie (Exclusion mutuelle répartie,
mise à jour de copies multiples, diffusion
cohérente (ordre de réception uniforme)) - Détermination de laccès le plus récent
(gestion cohérente de caches multiples, mémoire
virtuelle répartie) - Synchronisation des horloges physiques (borne
supérieure sur la dérive entre sites) - Algorithmes de détection de terminaison,
d'élection, de diffusion de messages,
30HORLOGE LOGIQUE VECTORIELLE
- Nous venons de voir que le système de datation
par estampilles scalaires d'une part introduisait
un ordre artificiel sur des événements
concurrents et d'autre part ne permettait pas de
corriger les défaillances vis-à-vis de la
relation FIFO des canaux de communication. Le
mécanisme de datation par estampilles
vectorielles (et les horloges vectorielles
maintenues par les différents composants d'un
système) permet de pallier ces deux
inconvénients.Chaque site gère une horloge
vectorielle constituée de n entiers (n est le
nombre de composants du système). Une telle
horloge permet de dater les événements d'un site
et est mise à jour lors de l'occurrence des
événements. Comme pour les horloges scalaires,
les messages envoyés par un site sont estampillés
en utilisant la valeur courante de l'horloge
vectorielle du site émetteur et la réception d'un
message permet au site récepteur de synchroniser
son horloge vectorielle avec celle du site
émetteur du message. - De manière plus précise, les règles suivantes
sont appliquées pour la gestion des horloges
vectorielles
31HORLOGE LOGIQUE VECTORIELLE
32HORLOGE LOGIQUE VECTORIELLE
33HORLOGE LOGIQUE VECTORIELLE
- La propriété fondamentale que possèdent les
estampilles vectorielles déduites des horloges
vectorielles et de leur actualisation par les
règles énoncées est que - Par exemple l'estampille vectorielle de
l'événement p est 4, 7, 5. Cela correspond au
fait que Passé(p) contient - 4 événements sur P (a, b, c, d)
- 7 événements sur Q (j, k, l, m, n, o, p)
- 5 événements sur R (u, v, w, x, z).
34HORLOGE LOGIQUE VECTORIELLE
- La relation d'ordre suivante peut par ailleurs
être définie sur les estampilles vectorielles - Par exemple 4,7,5 est plus petite que 6,7,8,
plus grande que 4,6,4 et incomparable
avec 6,5,7
35HORLOGE LOGIQUE VECTORIELLE
- Muni de cette relation d'ordre, le système de
datation par estampilles vectorielles a la
remarquable propriété de refléter exactement la
relation de précédence causale entre événements
36HORLOGE LOGIQUE VECTORIELLE
- On peut vérifier sur notre exemple que
- les estampilles vectorielles des événements
précédant causalement p sont inférieures (au sens
qui a été défini) à l'estampille vectorielle
de p (4,7,5). Par exemple l'estampille
vectorielle de l'événement d antérieur à p est
(4,1,0) qui est inférieure à (4,7,5) - les estampilles vectorielles des événements
suivant causalement p sont supérieures à
l'estampille vectorielle de p. Par exemple
l'estampille vectorielle de l'événement C postérie
ur à p est (8,9,9) qui est supérieure à
(4,7,5) - les estampilles vectorielles des événements
concurrents de p sont incomparables avec
l'estampille vectorielle de p Par exemple
l'estampille vectorielle de l'événement e concurre
nt avec l'événement p est (5,3,3) qui est
incomparable avec (4,7,5).
37Correction TD
38Correction TD
- Considérons l'événement p. Il appartient à son
propre passé et est précédé directement
par o et y. - On a Passé(p) p Passé(o)
Passé(y) Le calcul de Passé(p) suppose donc le
calcul de celui de o et y. - On a Passé(o) o
Passé(n) Passé(d) En pousuivant le
calcul - Passé(n) n Passé(m) - Passé(m)
m Passé(l) Passé(a) - Passé(l) l
Passé(k) - Passé(k) k Passé(j)
Passé(u) - Passé(j) j - Passé(u) u -
Passé(a) a - Passé(d) d Passé(c) -
Passé(c) c Passé(b) - Passé(b) b
Passé(a) Passé(j) - Passé(y) y
Passé(x) - Passé(x) x Passé(w)
Passé(n) - Passé(w) w Passé(v) - Passé(v)
v Passé(u) Passé(l) Par
conséquent Passé(p) a, b, c, d, j, k, l, m, n,
o, p, u, v, w, x, y
39Correction TD
- Par un calcul analogue, on obtient Futur(p)
g, h, i, p, q, r, s, t, C, D - Finalement les événements n'appartenant ni à
Passé(p), ni à Futur(p) sont concurrents avec p. - On a donc Concurrent(p) e, f, z, A, B
40Correction TD
41Correction TD