ALGORITHMIQUE REPARTIE - PowerPoint PPT Presentation

1 / 69
About This Presentation
Title:

ALGORITHMIQUE REPARTIE

Description:

Un syst me ou une application r partie pr sente une diff rence essentielle par ... Les entit s qui le/la composent coop rent la r alisation d'un but commun ... – PowerPoint PPT presentation

Number of Views:1579
Avg rating:3.0/5.0
Slides: 70
Provided by: cyri2
Category:

less

Transcript and Presenter's Notes

Title: ALGORITHMIQUE REPARTIE


1
ALGORITHMIQUE REPARTIE
  • Définitions et Problématiques

2
Définitions (1/2)
  • Linformatique répartie (distributed computing)
    repose sur linteraction entre deux ou plusieurs
    systèmes informatiques interconnectés
  • Un système ou une application répartie est
    décomposée en processus, nuds, sites, etc. qui
    exécutent chacun un flot de contrôle séquentiel
  • Un système ou une application répartie présente
    une différence essentielle par rapport à un
    système ou une application centralisée
  • Les entités qui le/la composent coopèrent à la
    réalisation dun but commun
  • La notion détat global du système repose sur
    lagrégation détats locaux

A. Tanenbaum Distributed Operating Systems.
Prentice Hall, Englewood Cliffs, 1995
3
Définitions (2/2)
  • Un système ou une application répartie est une
    collection dentité qui ne partagent ni mémoire,
    ni horloge commune (architecture faiblement
    couplée) caractéristiques fondamentales des
    systèmes répartis
  • Les entités qui composent le système ou
    lapplication communiquent par lutilisation de
    différents paradigmes de communication réseau,
    principalement par
  • Échange de messages
  • Appel de procédure à distance (RPC)
  • Mémoire virtuelle partagée
  • Comprendre les problèmes posés par la
    répartition, cest appréhender (en partie) le
    fonctionnement des systèmes informatiques répartis

4
La Problématique Temporelle
  • Dans un système centralisé
  • Il est toujours possible de déterminer lordre
    dans lequel deux événements se sont produits
  • Temps non ambiguë horloge et mémoire commune
  • Dans un système réparti
  • Temps ambiguë labsence dun temps universel
    est une caractéristique fondamentale
  • Un service temporel centralisé est difficilement
    concevable à cause des délais incertains de
    transit des messages
  • Toutefois, il est possible de synchroniser les
    horloges et les processus des différentes noeuds
    avec une précision adaptée au contexte
    dapplication synchronisation temporelle et
    événementielle

5
La Problématique de Fiabilité
  • Dans une exécution répartie, les processus et les
    canaux de communications peuvent être défaillants
  • En environnement synchrone lutilisation dun
    time-out permet de résoudre le problème de
    détection de défaillance
  • En environnement asynchrone la détection des
    défaillances est beaucoup plus complexe à
    réaliser
  • En général, aucune hypothèse nest réalisée sur
    les états et fonctionnements des processus et des
    canaux de communication
  • Les processus sont assez naturellement
  • Asynchrones ou partiellement synchrones
  • Non fiables car les défaillances englobent des
    pannes beaucoup plus graves que le simple crash
    (attaques volontaires)
  • Les canaux de communication sont asynchrones et
    non fiables

J.C. Lapri, Sûreté de fonctionnement concepts
de base et terminologie, Dependable Computing and
Fault-Tolerant Systems, 47-95, 1991
Selon Lapri, un système est dit défaillant
lorsque le service délivré ne se conforme plus à
sa spécification
6
Exemples dApplications Réparties
  • Gestion de la concurrence (mutex), mécanisme de
    synchronisation, de nommage et de caching
  • Threads, scheduling, réplication de données,
    migration de processus, système de fichier
    répartis (e.g. NFS), protocoles réseaux
  • Transactions, RPC, tolérance aux fautes, mémoire
    virtuelle partagée, objets répartis (e.g. CORBA),
    base de données réparties
  • Imprimante réseau, rlogin, telnet, World Wide
    Web, ATM (distributeur de banque)
  • Etc.

7
ALGORITHMIQUE REPARTIE
  • Synchronisation Temporelle

8
Synchronisation Temporelle
  • La synchronisation temporelle consiste à définir
    et à mettre en oeuvre des protocoles permettant
    de synchroniser les horloges physiques
  • Les horloges sont basées sur les oscillations
    dun cristal de fréquence connue décalage
    (clock skew) et dérive (clock drift)
  • La précision est un facteur prépondérant
  • Applications mesurer des délais entre des
    composants répartis, synchroniser des flux audio
    et vidéo, simulation  time driven , etc.

Clock Skew
réseau
9
Synchronisation dHorloges
  • Externe synchroniser avec une source
    temporelle de référence
  • La valeur absolue de la différence entre les
    horloges et la source est bornée par une valeur ?
  • Le temps est précis à ? prêt
  • Interne synchroniser les horloges entre elles
  • La valeur absolue des différences entre les
    horloges est bornée par une valeur ?
  • Le temps est imprécis (potentiellement aucune ne
    connaît lheure UTC de référence) mais les
    horloges sentendent sur une heure commune avec
    limprécision ?
  • Dans les deux cas, la synchronisation repose sur
    une communication entre le système à synchroniser
    et lextérieur

10
Synchronisation dHorloges en Systèmes Synchrones
(1/2)
  • La synchronisation est simple et repose sur les
    bornes temporelles (connues) déchange de
    messages
  • Algorithme
  • Soient les processus P1 et P2 à synchroniser
  • P1 envoie un message à P2 avec la valeur TP1
    représentant le temps courant de P1
  • Soient min et max les bornes démission du
    message
  • A la réception du message, P2 positionne son
    horloge à la valeur TP1 (maxmin)/2
  • Exercice
  • Quel est le décalage minimal et maximal entre les
    deux horloges ?
  • Illustrez ce décalage à laide dun schéma
    temporel

11
Synchronisation dHorloges en Systèmes Synchrones
(2/2)
  • Réponse
  • P2 positionne son horloge à TP2 mais le message
    est reçu entre TP1min et TP1max
  • Le décalage est donc au plus (max-min)/2

min
max
TP1
a (max min)/2
a
P1
P2
temps
TP2 TP1 (maxmin)/2
12
Synchronisation dHorloges en Systèmes
Asynchrones (1/3)
  • Lalgorithme de Cristian repose sur une
    estimation de la propagation des messages
    (approche externe, adapté LAN)
  • Algorithme
  • Le client envoie une requête à T1
  • Le serveur envoie en réponse la valeur de son
    horloge Hserveur
  • A T2, le client positionne son horloge à
    HserveurE ou E est lestimation donnée par E
    (T2-T1)/2
  • Les requêtes successives permettent de converger
    en moyennant les différents E calculés (les
    valeurs aberrantes sont écartées) ou en prenant
    la plus petite valeur de E

T1
T2
client
requête
réponse (Hserveur)
serveur
temps
Ttraitement
13
Synchronisation dHorloges en Systèmes
Asynchrones (2/3)
  • Lalgorithme de Berkeley repose sur la moyenne
    des horloges participantes à la synchronisation
    (approche interne, adapté LAN)
  • Algorithme
  • Un coordinateur interroge périodiquement les
    autres noeuds
  • Le coordinateur approxime les différents temps
    locaux par une évaluation des allers/retours
  • Le coordinateur calcule un temps moyen pour
    chacun des nuds (ignorant les valeurs
    aberrantes)
  • Le coordinateur envoie un message avec une valeur
    dajustement à chaque nud

0
5
30000
30001
30002
30000
25
-20
30000
15
-10
30000
25950
30025
25951
30026
25952
30027
réponse
ajustement
requête
14
Synchronisation dHorloges en Systèmes
Asynchrones (3/3)
  • Le protocole NTP (Network Time Protocol, RFC 958)
    repose sur la constitution de multiple serveurs
    de temps organisés en strates et répartis à
    travers le réseau (adapté Internet)
  • Protocole
  • Les serveurs primaires connectés directement
    aux récepteurs UTC
  • Les serveurs secondaires se synchronisent avec
    les primaires
  • Les serveurs tertiaires se synchronisent avec
    les secondaires, etc.

1
Multicast un serveur envoie périodiquement aux
autres serveurs. Les sous serveurs se mettent à
jour assumant un ? lié à la transmission
ntp.pasteur.fr
2
2
chronos.univ-brest.fr
Requête similaire à Cristian, les clients
émettent une requête vers un serveur
synchronisation
3
3
3
Symétrique similaire à Berkeley, utilisé par
les serveurs principaux pour se synchroniser
entre eux
ntp.iu-vannes.fr
15
ALGORITHMIQUE REPARTIE
  • Synchronisation Événementielle

16
Synchronisation Événementielle
  • Lutilisation dhorloges physiques
    (synchronisées) pour dater les événements nest
    pas toujours adaptée en raison de limprécision
  • La construction dun temps logique est parfois
    plus adaptée au contexte
  • Utilisation dun système destampilles
    temporelles permettant dordonner (partiellement
    ou totalement) les événements sans faire
    référence au temps réel
  • Le temps logique par ordre de richesse de la
    représentation temps linéaire, temps vectoriel,
    temps matriciel
  • Applications définition de critères de
    cohérence, tolérance aux fautes, observation dun
    système réparti, simulation répartie  event
    driven , etc.

M. Raynal, Systèmes répartis et réseaux,
Eyrolles, 1987
17
Exécution Répartie
  • La définition d'une exécution répartie dans le
    modèle à communication par messages est due à
    Lamport
  • Les processus produisent des événements
  • L'envoi d'un message m produit un événement
    d'émission send(m)
  • La réception d'un message m produit un événement
    de réception receive(m)
  • Enfin l'exécution d'instructions n'induisant ni
    envoi ni réception de message produit un
    événement interne
  • L'histoire locale d'un processus Pi est la
    séquence de tous les événements qu'il a produit
  • C'est l'union de toutes les histoires locales
    (ensemble des événements de tous les Pi) munie
    d'une relation d'ordre particulière sur les
    événements qui constitue une exécution répartie

L. Lamport, Time clocks and the ordering of
events in a distributed system, Communications of
the ACM, 21(7)558-565, 1978
18
Ordre Partiel
  • Un ordre partiel Ê(E,?E) est constitué dun
    ensemble E appelé le domaine de lordre partiel
    et dune relation binaire transitive et non
    réflexive (?E) sur les éléments de ce domaine
  • Le fait de noter e1 ?E e2 signifie que e1 précède
    e2 dans lordre partiel
  • Une relation binaire est non réflexive si ?e ? E,
    e ?E e est faux
  • Une relation binaire est transitive si ?e1, e2,
    e3 ? E, (e1 ?E e2) ? (e2 ?E e3)?? (e1 ?E e3)
  • Une exécution répartie ou une histoire est un
    ordre partiel notée H(H,?H). H étant lensemble
    des événements produits par les processus et (?H)
    la relation de précédence causale

même ordre partiel
19
La Précédence Causale (1/3)
  • La relation d'ordre implicite sur les événements
    d'une exécution répartie est la précédence
    causale
  • La précédence causale permet de définir une
    relation de type  X est arrivé avant Y  sans
    avoir recourt à la synchronisation dhorloges
  • Cest un ordre logique sur les événements
  • Formellement, la précédence causale est définie
    par 3 règles
  • Relation program-order deux événements e1 et e2
    produits par un même processus sont totalement
    ordonnés (e1 ? e2)
  • Relation receive-from send(m) précède
    receive(m)
  • Relation de transitivité (e1 précède e2) ? (e2
    précède e3)?? (e1 précède e3)
  • Indépendance causale (événements concurrents)
    (a b) ssi ?(a ? b) et ?(b ? a)

20
La Précédence Causale (2/3)
  • Sur lexemple suivant
  • La relation program-order dit que e11 précède e12
    qui précède e13 etc. (les e1i sont totalement
    ordonnés)
  • La relation receive-from dit que e33 précède e24
  • La règle de transitivité dit que e31 précède e26
  • Cette relation dordre étant partielle, tous les
    événements ne sont pas ordonnés, par exemple e11
    précède e12 et e31 précède e12 mais e11 et e31
    sont concurrents (e11 e31)

e12
e14
e11
e13
P1
e22
e23
e24
e25
e26
P2
e21
P3
temps
e32
e34
e31
e33
21
La Précédence Causale (3/3)
  • Définition de lhistoire causale dun événement
  • passé (e) e e ? e ? e
  • futur (e) e e ? e'
  • Le passé causal de e24
  • passé (e24) ?? passéi (e24), e24 avec
    passéi (e24) e e ? e24 et e ? Pi ,? i ?
    1,2,3
  • passé(e24) e11, e21, e22, e23, e24, e31, e32 ,
    e33

e12
e14
e13
e11
P1
e22
e23
e24
e25
e26
P2
e21
P3
temps
e34
e32
e31
e33
futur (e24)
passé (e24)
22
Ordre Total sur Les Événements
  • Une extension linéaire S(S,?S) dun ordre
    partiel Ê(E,?E) est un tri topologique de cet
    ordre partiel tel que
  • S E
  • ? a,b ? E, (a ?E b) ?? (a ?S b), cest-à-dire
    que lextension linéaire préserve lordre partiel
    précédemment établi
  • (?S) définit un ordre total
  • La notion d'extension linéaire permet définir un
    ordre total sur les événements
  • Un ordre total sur les événements permet
  • Dassurer que lorsque deux processus P1 et P2
    reçoivent deux messages m1 et m2, ceux-ci les
    délivreront dans le même ordre
  • Aux processus davoir en permanence la même vue
    de lexécution répartie

23
Ordre FIFO et Ordre Causal (1/2)
  • Lordre FIFO assure que si un processus émet deux
    messages a un même processus alors ces messages
    sont reçus dans l'ordre démission, lordre FIFO
    définit
  • Une relation d'ordre sur un canal de
    communication
  • Lordre FIFO est un ordre partiel sur les
    événements
  • Lordre causal est une extension de la précédence
    causale dans lequel, aux trois règles de base,
    est ajoutée la règle suivante
  • Soit m1 et m2 deux messages destinés au même
    processus
  • send(m1) ? send(m2) ?? receive(m1) ? receive(m2)
  • Cette règle assure qu'il n'existe pas de messages
    partis après m1 et qui arrivent avant lui chez le
    même destinataire
  • Lordre causal est un ordre partiel qui
    généralise lordre FIFO dans la mesure où il
    prend en compte la transitivité

24
Ordre FIFO et Ordre Causal (2/2)
  • Exercice
  • Représentez un exemple simple dexécution
    répartie qui respecte lordre FIFO mais pas
    lordre causal

De règle générale les contraintes sur un canal
sont asynchrone ? FIFO ? ordre causal (? ? ?)
logique instantanée
25
Horloges Linéaires (1/3)
  • Les horloges logiques de Lamport définissent un
    temps linéaire permettant de dater tous les
    événements dune exécution répartie
  • Repose sur la précédence causale (ordre partiel)
  • Compteur nayant pas de relation avec les
    horloges physiques
  • Méthode
  • A chaque événement est associé une estampille
    temporelle mise en uvre par un compteur entier
  • Chaque processus Pi a une horloge logique locale
    HLi commençant à 0 et dont la valeur courante est
    lestampille temporelle du dernier événement
  • Lhorloge logique HLi est incrémenté à chaque
    événement
  • Chaque message m transporte la dernière
    estampille temporelle de lémetteur (m,
    HLisend(m))
  • A la réception d'un message (m, HLisend(m)) sur
    le site j, HLj est positionnée à max (HLj,
    HLisend(m)) 1

26
Horloges Linéaires (2/3)
  • Dans ce modèle, ? i,j
  • (a précède b) ? (HLi (a) lt HLj (b)) mais la
    réciproque nest pas vraie
  • (HLi (a) lt HLj (b)) ? ! (b précède a)
  • (HLi (a) HLj (b)) ? (a b) avec i ?? j
  • Réalisation dun ordre total qui respecte la
    causalité
  • Prise en compte de lID du processus pour gérer
    légalité
  • (Pi, HL(a)) lt (Pj, HL(b)) ssi HL(a) lt HL(b) ou
    (HL(a)HL(b) et i lt j)
  • (a précède b) ?? (HL(a) lt HL(b))

1
2
3
4
0
P1
8
3
4
6
7
P2
2
temps physique
P3
4
5
6
0
27
Horloges Linéaires (3/3)
  • Le temps logique linéaire peut être utilisé pour
    la réalisation dune section critique grâce au
    doublet (ID, temps)
  • Propriété de sûreté 1 seul en section critique
    même si les canaux ne sont pas FIFO
  • Propriété de vivacité absence dinterblocage et
    absence de famine

P1
cas normal, pas de problème
requêtes
P2
permission en attente
permissions
SC
a
P3
P1
P2
P1 et P2 sont en concurrence pour lentrée en
section critique en même temps les événements a
et b son indépendants (a b)
b
P3
estampille plus petite, envoie une permission
Ricard Agrawala, 1981
28
Horloges Vectorielles (1/2)
  • Les horloges vectorielles de Fidge et Mattern
    définissent un mécanisme de datation des
    événements
  • Chaque processus gère un vecteur local qui lui
    apporte une vision de létat global de
    lexécution répartie
  • Compteur nayant pas de relation avec les
    horloges physiques
  • Méthode
  • On associe un vecteur Vi à chaque processus Pi
  • Initialement, Vi (0, ... , 0)
  • A chaque événement local à Pi Vii Vii 1
  • Chaque message m envoyé par Pi porte une
    estampille HVsend(m) correspondant à Vi
  • A la réception par un processus Pj de (m,
    HVsend(m)) venant de Pi
  • Vjj Vjj 1
  • Vjk max(Vjk, HVsend(m)k), ? k ? 1, ... ,
    n et k ?? j

Fidge Mattern, 1988
29
Horloges Vectorielles (2/2)
  • La relation dordre est définie par
  • Vi ?? Vj ? ?k, Vik ? Vjk
  • Vi ?? Vj ? Vi ?? Vj et Vi ? Vj
  • Vi ll Vj ? ??(Vi ?? Vj) et ?(Vj ? Vi)
  • Horloges vectorielles et dépendance causale ?
    a, b a ? b ? V(a) lt V(b)
  • Exercice complétez le chronogrammes suivant
    avec les horloges vectorielles correspondantes

P1
P2
temps physique
P3
30
Horloges Matricielles (1/4)
  • Les horloges matricielles définissent un
    mécanisme de datation des événements permettant à
    chaque processus davoir une vision globale de
    lexécution répartie
  • Utilisation dune matrice carrée par chaque
    processus
  • Compteur nayant pas de relation avec les
    horloges physiques
  • Méthode
  • Mij,k x signifie que Pi sait que Pj sait que
    Pk a produit x événements
  • Règle 1 quand Pi produit un événement Mii,i
  • Règle 2 tout message envoyé par Pi transporte
    la matrice Mi
  • Règle 3 lorsque Pj reçoit un message de Pi
  • ? k,l Mjk,l max (Mjk,l , Mik,l)
  • ? k Mjj,k max (Mjj,k , Mii,k)

31
Horloges Matricielles (2/4)
  • Les horloges matricielles résistent mal au
    facteur déchelle accroissement en n2
  • Exercice complétez le chronogramme

P1
P2
temps physique
P3
32
Horloges Matricielles (3/4)
  • Utilisation des horloges matricielles pour
    implémenter lordre causal (i envoi vers j)
  • Les envois de messages sont datés par une horloge
    matricielle Mi
  • Le nombre de livraison de messages est noté dans
    un vecteur delivji
  • Condition de livraison delivji1 Mii,j et
    ? k ? i delivjk ? Mik,j

P1
(0,0,0)
P2
(0,0,0)
(1,0,0)
temps physique
P3
(0,0,0)
(1,0,0)
(2,0,0)
(2,1,0)
33
Horloges Matricielles (4/4)
  • Conditions de livraison non validées dans une
    exécution qui ne respecte pas lordre causal
  • delivji1 Mii,j et ? k ? i delivjk ?
    Mik,j ?
  • deliv321 M22,3 et ? k ? 2 deliv3k ?
    M2k,3 ?
  • (1 1) et (1 ? 2) et (0 ? 0)

P1
temps physique
P2
(0,0,0)
(1,0,0)
(1,0,0)
condition de livraison non respectée
P3
(0,0,0)
(1,0,0)
(1,0,0)
34
ALGORITHMIQUE REPARTIE
  • Mémoire Virtuelle Partagée

35
Mémoire Virtuelle Partagée
  • La mémoire virtuelle partagée (MVP) est une
    mémoire logicielle
  • Elle est composée dun ensemble déléments de
    stockage locaux aux sites de larchitecture (i.e.
    physiquement répartis)
  • Le partage virtuel peut être réalisé par un
    gestionnaire de mémoire dont chaque site est muni

mémoire virtuelle commune
réseau de transport
M1
M2
Mn
P1
P2
Pn
36
Critère de Cohérence
  • Une mémoire virtuelle partagée nécessite
    lintroduction de critères de cohérence pour
    assurer la cohérence des données réparties sur k
    ?? n noeuds
  • Un critère de cohérence
  • Définit la sémantique de la mémoire partagée
  • Exprime le degré de synchronisation imposé sur
    lévolution des données partagées
  • Contraint lordonnancement des opérations daccès
    (opérations de lecture et décriture) à la
    mémoire
  • Cohérence atomique (CA), séquentielle (CS),
    causale (CC), objet (CO), mixte (CM), PRAM,
    faible (CF), release (CR), entry (CE), etc.
  • Les différentes MVP se distinguent par le type et
    la granularité de leurs unités de partage (unités
    sur lesquelles porte la cohérence) page, objet

Dans le cas des machines multiprocesseurs les
mémoires (et caches) partagées et leurs
mécanismes de cohérence sont mis en uvre
matériellement
D. Mosberger, Memory Consistency Models,
Operating Systems Reviews, 27(1)1826, 1993
37
Modèle de Mémoire Partagée (1/4)
  • Soit une architecture répartie asynchrone à
    mémoire virtuelle partagée composée dun ensemble
    de processus séquentiels P1Pn
  • Les processus interagissent via une mémoire
    globale partagée composée dun ensemble fini
    dobjets partagés
  • Chaque objet de cette mémoire peut être accédé
    par des opérations de lecture et décriture
  • On note ri(x)v la lecture par le processus Pi sur
    lobjet x délivrant la valeur v
  • On note wj(y)v lécriture de la valeur v faite
    par le processus Pj sur lobjet y
  • Pour l'utilisateur ces opérations sont immédiates
    et indivisibles malgré leur répartition sur
    différents sites

38
Modèle de Mémoire Partagée (2/4)
  • Une exécution repartie dans le modèle de
    communication par mémoire partagée est définie
    par un ordre partiel Ê(E,?E) sur lensemble des
    opérations de lecture et décriture et les
    opérations internes
  • E ?i Ei
  • Lordre ?E est défini par op1 ?E op2 tq
  • ? Pi / op1 ?i op2 la relation ?E est la
    relation program-order
  • wj(x)v ? op1 et rj(x)v ? op2 la relation ?E est
    la relation read-from
  • ? op3 / op1 ?E op3 et op3 ?E op2 la relation ?E
    est transitive
  • Cet ordre partiel permet davoir deux opérations
    op1 et op2 indépendantes. Dans ce cas nous
    n'avons ni op1 ?E op2 ni op2 ?E op1

39
Modèle de Mémoire Partagée (3/4)
  • Il est important de noter que lon considère ici
    une relation read-from entre les événements et
    non plus une relation receive-from
  • La relation entre w1(x)1 et r2(x)1 ne signifie
    pas (receive-from) que P1 envoie un message à P2
  • La relation signifie que lorsque P2 lit la valeur
    1 dans x il fait référence à lécriture faite par
    P1 (w1(x)1)
  • w1(x)1 ?E r2(x)1
  • Il est important de comprendre que ces modèles
    remettent en cause la sémantique habituelle
    centralisée de la mémoire

W1(y)3
r1(y)2
w1(x)1
W1(x)2
P1
P2
r2(x)1
w2(y)2
r2(y)3
40
Modèle de Mémoire Partagée (4/4)
  • Au sein dune exécution Ê, une opération est dite
    légale si elle ne lit pas de valeur écrasée. La
    valeur lue par un processus doit être la dernière
    valeur écrite
  • Formellement une opération légale est définie par
  • ? op r(x)v, tq ? op tq
  • op ?E op (op précède op)
  • op w(x)v (op est lopération qui a écrit v
    dans x)
  • ? op tq op ?E op ?E op (op ? w(x)u) ??
    (op ? r(x)u) (il nexiste pas dopération
    décriture intermédiaire avec une autre valeur)
  • La notion de légalité ne porte que sur les
    opérations de lecture
  • Les opérations décriture sont elles toujours
    légales quelque soit leur rang dans lordre
    partiel
  • Une histoire Ê est donc légale si toutes ses
    opérations de lecture sont légales

41
Cohérence Séquentielle (1/3)
  • La cohérence séquentielle a été proposée par
    Lamport pour définir un critère de cohérence pour
    des systèmes multiprocesseurs a mémoire partagée
  • Définition une histoire Ê(E,?E) est
    séquentiellement cohérente si elle admet une
    extension linéaire S légale
  • Lextension linéaire S constitue la vue commune
    perçue par tous les processus
  • Ce critère de cohérence défini cette vue commune
    comme un ordre total
  • Informellement, une exécution répartie est
    séquentiellement cohérente si elle peut avoir été
    produite (équivalente) sur un système
    monoprocesseur

L. Lamport, How to make a multiprocessor computer
that correctly executes multiprocess programs,
IEEE Transactions on Computers, 28(9), 690-691,
1979
La cohérence atomique est similaire à la
cohérence séquentielle, excepté quelle considère
les accès mémoire comme non ponctuels
42
Cohérence Séquentielle (2/3)
  • En se référant aux règles de lexécution répartie
    dans le modèle de communication par mémoire
    partagée
  • Lordre partiel est w1(x)1 ?E w1(x)2, w1(x)1 ?E
    r2(x)1, r2(x)1 ?E w2(y)2, w1(x)2 ?E r3(x)2,
    w2(y)2 ?E r3(y)2, r3(x)2 ?E r3(y)2
  • Une extension linéaire légale de cet ordre
    partiel est w1(x)1 ?S r2(x)1 ?S w1(x)2 ?S
    r3(x)2 ?S w2(y)2 ?S r3(y)2
  • Notons que la séquentialité des événements en
    elle-même est secondaire, lessentiel est que
    tous les processus se mettent daccord sur un
    ordre total des opérations

w1(x)1
w1(x)2
P1
1
3
w2(y)2
2
P2
5
r2(x)1
4
6
P3
r3(x)2
r3(y)2
Exécution non déterministe
43
Cohérence Séquentielle (3/3)
  • Une façon de mettre en oeuvre la cohérence
    séquentielle consiste à utiliser une primitive de
    diffusion atomique (Atomic Broadcast)
  • Avec cette primitive tous les messages envoyés
    sont délivrés dans le même ordre à tous les
    processus y compris lémetteur
  • Le problème dune telle mise en oeuvre est
    quelle nécessite beaucoup de synchronisation ??
    peu performante
  • Lors dun accès mémoire, le protocole de
    cohérence diffuse (ABCAST) aux autres processus
    un message les prévenant de laccès

w(x)1
P1
P1
P2
P2
w(x)2
w(x)2
P3
P3
requête
acq
écriture
ABCAST Logique
ABCAST implémentation en 3 étapes
44
Cohérence Causale (1/4)
  • Le critère de cohérence causale est fondé sur le
    concept de causalité
  • Consiste à assurer pour chaque processus un ordre
    causal sur les opérations de lecture et
    décriture
  • La cohérence causale est un critère strictement
    plus faible que la cohérence séquentielle
  • Tous les processus sont daccord sur le même
    ordre partiel
  • Toutefois les vues séquentielles des différents
    processus peuvent être différentes
  • Définition une histoire Ê(E,?E) est
    causalement cohérente si pour chaque processus
    Pi, Êi est légale
  • Êi étant lhistoire visible par un processus Pi
  • Êi est composée des opérations de lecture de Pi
    et de lensemble des opérations décriture
    effectuées par tous les processus

M. Ahamad, J.E. Burns, P.W. Hutto and G. Neiger,
Causal Memory, 5th International Workshop
Distributed Algorithms, LNCS 579, 9-30, 1991
45
Cohérence Causale (2/4)
  • Informellement, deux processus peuvent ne pas
    être daccord sur le même ordre des opérations
    décriture qui sont indépendantes, les lectures
    doivent toutefois êtres légales
  • P1 w1(x)1 ?E w1(x)2 ?E w1(y)3 ?E w2(y)2 ?E
    r1(y)2
  • P2 w1(x)1 ?E r2(x)1 ?E w2(y)2 ?E W1(x)2 ?E
    W1(y)3 ?E r2(y)3
  • P3 w1(x)1 ?E w1(x)2 ?E r3(x)2 ?E w2(y)2 ?E
    r3(y)2

W1(y)3
r1(y)2
w1(x)1
W1(x)2
P1
P2
r2(x)1
w2(y)2
r2(y)3
P3
r3(x)2
r3(y)2
46
Cohérence Causale (3/4)
  • Une façon de mettre en oeuvre la cohérence
    causale consiste à utiliser une primitive de
    diffusion causale (causal broadcast)
  • Avec cette primitive tous les messages envoyés
    sont délivrés dans lordre causal
  • Cette primitive peut être réalisée avec des
    horloges vectorielles

(2,1,0)
(1,0,0)
(1,1,0)
w1(x)1
w1(x)4
P1
(2,1,0)
(0,1,0)
(1,1,0)
P2
w2(x)2
(2,1,0)
(1,1,0)
P3
(0,1,0)
Utilisation du Causal Broadcast pour implémenter
une mémoire causale
47
Cohérence Causale (4/4)
  • Exercice réalisez un chronogramme présentant
    les valeurs de x pouvant être lues par les 3
    processus

(2,1,0)
(1,0,0)
(1,1,0)
w1(x)1
w1(x)4
P1
(2,1,0)
(0,1,0)
(1,1,0)
P2
w2(x)2
(2,1,0)
(1,1,0)
P3
(0,1,0)
48
Cohérence PRAM (1/2)
  • La cohérence pipelined RAM (PRAM) est un critère
    qui correspond dans le modèle envoi de messages à
    un ordre FIFO
  • Ce critère est strictement plus faible que la
    cohérence causale
  • La cohérence PRAM correspond à la cohérence
    causale mais sans considérer la relation de
    transitivité entre les processus
  • Définition une histoire Ê(E,?E) vérifie la
    cohérence pipelined RAM si pour chaque processus
    Pi, Êi est légale
  • Êi est la sous histoire dans laquelle toutes les
    lectures non effectuées par Pi ont été enlevées
  • La cohérence PRAM nécessite moins de
    synchronisation que la cohérence causale, son
    inconvénient est quelle offre à lutilisateur un
    modèle de programmation plus difficile

R.J. Lipton et J.S. Sandberg, PRAM a scalable
shared memory, rapport technique n180-88,
Princeton University, Departement of Computer
Science, 1988
49
Cohérence PRAM (2/2)
  • La cohérence PRAM peut être simplement mise en
    oeuvre par une horloge linéaire (temps, ID)
  • Pour rappel, lordre FIFO assure que si un
    processus émet deux messages a un même processus
    alors ces messages sont reçus dans l'ordre
    démission
  • Dans lexemple suivant, la livraison de w1(x)4
    doit attendre la livraison de w1(x)1

w1(x)4
w1(x)1
P1
(2,1)
(1,1)
P2
w2(x)2
P3
50
Cohérence Objet
  • La cohérence objet consiste a assurer une
    cohérence séquentielle séparément pour chaque
    objet
  • Toutes les opérations décriture sur un même
    objet sont totalement ordonnées
  • Les opérations de lecture sont légales
  • Les événements dune histoire Ê sont
    partiellement ordonnés
  • Définition une histoire Ê(E,?E) vérifie la
    cohérence objet si pour tout objet x elle admet
    une extension linéaire Sx de Hx légale
  • Ce critère est un affaiblissement de la cohérence
    séquentielle nécessitant moins de synchronisation
    puisque contrairement à la cohérence séquentielle
    deux opérations sur deux objets distincts peuvent
    avoir un ordre différent selon les différents
    processus

C.K. Kazimierczak, B. Andersen, Object
consistency A new model for distributed memory
systems, In Proc. of the 4th International
Workshop on Object Orientation in Operating
Systems, 33-36, 1995
51
Relations Entre Critères (1/3)
  • Les critères de cohérence plus faibles réduisent
    les pénalités daccès à la mémoire (moins de
    synchronisations)
  • Importance de connaître quel critère est le plus
    adapté pour chaque classe de problèmes a résoudre
  • En règle générale on préfère une cohérence faible
    du point de vue des performances et une cohérence
    forte de point de vue de la facilité
    dutilisation
  • De nombreuses primitives de communication sont
    disponibles pour implémenter les différents
    critères
  • Total Order Multicast, Atomic Broadcast, Causal
    Broascast, Causal Reliable Multicast, Reliable
    Ordered Multicast (FIFO, causal, total)
  • Le coût dune MVP repose grandement sur le choix
    du mécanisme de communication (broadcast,
    multicast, fiable ou non, 1, 2 ou 3 phases, etc.)

D. Mosberger, Memory Consistency Models,
Operating Systems Review, 27(1),18-26, 1993
52
Relations Entre Critères (2/3)
cohérence séquentielle CS
relations sous forme hiérarchique
cohérence entry CE
CA
cohérence processeur CP
cohérence release CR
CS
cohérence faible CF
CP
CC
CO
PRAM
CF
CR
cohérence causale CC
cohérence objet CO
cohérence Pipelined RAM PRAM
CE
cohérence atomique CA
relations sous forme dinclusion densemble
Une exécution qui vérifie la cohérence
séquentielle vérifie la cohérence causale
53
Relations Entre Critères (3/3)
  • Exercice illustrez la relation entre CC et CO
    en montrant la non inclusion de lun dans lautre

54
ALGORITHMIQUE REPARTIE
  • Modèle de Défaillance

55
Défaillance des Canaux de Communication
  • Un canal de communication est fiable si les
    messages ne sont
  • Ni perdus, tout message émis est reçu
  • Ni altérés
  • Ni dupliqués
  • Ni générés par le canal, chaque message a
    effectivement été émis
  • Un problème majeur dans un système asynchrone est
    quon se sait jamais si un message est très lent
    ou perdu on ne peut pas borner les temps de
    messages
  • Fiabiliser le canal de communication
  • Dans les cas de perte et de duplication,
    lestampillage des messages permet au récepteur
    de savoir si un message reçu a été dupliqué ou si
    un ou plusieurs messages précédents ont été
    perdus
  • Le problème de laltération peut se résoudre à
    laide de codes correcteurs chez le récepteur

56
Défaillance de Processus (1/2)
  • Plaçons nous dans le cadre où les canaux de
    communication sont fiables
  • Un processus byzantin est un processus qui exhibe
    un comportement conflictuel par rapport à son
    comportement habituel (relatif à sa
    spécification)
  • Signifie quà nimporte quel moment un processus
    de lexécution répartie peut faire tout et
    nimporte quoi (e.g. envoi de message)
  • Les fautes dues à des comportements arbitraires
    de la part de certains composants sont très
    difficiles a traiter
  • Dans les modèles de gestion de la défaillance,
    les processus sont souvent considérés comme
    fail-stop (à arrêt sur faute) bien que cette
    notion de  tout ou rien  soit difficile a
    implémenter (nécessite une redondance élevée)

L. Lamport, R. Shostak, M. Pease, The Byzantine
generals problem, ACM Transactions on Programming
Languages and Systems, 4(3)382-401, 1982
57
Défaillance de Processus (2/2)
processus correct up indéfiniment
processus incorrect up puis down indéfiniment
état
état
up
up
down
down
temps
temps
modèle crash / no recovery
faute (cause dune erreur)
état
erreur (état provoqué par la faute)
up
down
temps
défaillance (ne respecte plus ses spécifications)
modèle crash / recovery
58
Détecter les Défaillances (1/5)
  • Le problème du consensus est un problème
    fondamental de lalgorithmique répartie
  • Il consiste à mettre daccord tous les processus
    sur une valeur (oui ou non par exemple), un état
    commun
  • Il abstrait une famille de problèmes connus sous
    le nom de problèmes daccord
  • Base pour la construction doutils pour de
    nombreux problèmes importants diffusion
    atomique, protocoles de groupe
  • Réaliser le consensus
  • Le consensus est facile à mettre en oeuvre dans
    un système synchrone
  • Toutefois Fischer, Lynch et Paterson (FLP) ont
    montré quil est sans solution déterministe dans
    les systèmes asynchrones où les canaux de
    communication sont non fiables et asynchrones et
    où des défaillances de noeuds sont possibles

M.J. Fischer, N.A. Lynch, M.S. Paterson,
Impossibilty of distributed consensus with one
faulty, Journal of the ACM, 32(2)374-382, 1985
59
Détecter les Défaillances (2/5)
  • Dans les systèmes repartis lorsquun site est
    défaillant il faut reconfigurer tous les
    processus vivants dans un état stable
  • La reconfiguration nest possible que si la
    défaillance en question a pu être détectée
  • Détecter cette défaillance revient à obtenir un
    consensus par les tous processus up de létat
    down dun ou plusieurs processus

2?
1
Pi
3
Pi
Pj
Pj
2
Pi
Synchrone 1, 2
Pj
Asynchrone 1, 2, 3
down
60
Détecter les Défaillances (3/5)
  • Comment vivre avec FLP et réaliser un accord
    (détecter une défaillance dans notre cas) dans un
    système réparti asynchrone sujet aux défaillances
    deux possibilités
  • Lever une des restrictions
  • Système partiellement synchrone (Dwork, Lynch,
    Stockmeyer)
  • Algorithmes non déterministe (Rabin)
  • Accepter une solution imparfaite (et faire du
    best effort)
  • Algorithme de Paxos (Lamport)
  • Intérêt hypothèses très faibles transposable
    au cas de pannes byzantines
  • Détecteurs de pannes imparfaits (Chandra Toueg)
  • Intérêt identification précise de lorigine de
    limpossibilité et des limites des algorithmes
    réalisables

61
Détecter les Défaillances (4/5)
  • Lalgorithme de Paxos est un algorithme pour le
    consensus asynchrone
  • Principe informel
  • Lalgorithme utilise un processus coordinateur
    (ou primaire) qui gère un ensemble de processus
    (dits agents) et tente dobtenir une valeur de
    décision par vote majoritaire
  • Pour résister à la défaillance du primaire,
    plusieurs processus peuvent jouer le rôle du
    primaire, successivement ou simultanément
  • Lalgorithme se termine sil existe un primaire
    unique pendant une période suffisamment longue
    pour que le primaire ait deux tours déchanges
    avec une majorité dagents
  • On essaie dassurer cette condition à laide de
    délais de garde
  • Cette méthode peut échouer (la communication
    étant asynchrone), et dans ce cas lalgorithme ne
    se termine pas (FLP est toujours valable)

L. Lamport, The part-time parliament, Tech.
Report 49, Systems Research Center, Digital
Equipment Corp., Palo Alto, 1989
62
Détecter les Défaillances (5/5)
  • Les détecteurs de pannes imparfaits reposent sur
    deux propriétés, la complétude et la précision
    pour quantifier lécart entre ces détecteurs et
    le détecteur parfait
  • Complétude un processus incorrect est détecté
  • Forte P crashé sera détecté par tous les
    processus correct
  • Faible P crashé sera détecté par au moins un
    correct
  • Précision un processus correct nest pas
    suspecté
  • Forte aucun processus nest suspecté avant
    davoir crashé
  • Faible ? P correct qui nest jamais suspecté
  • Inéluctablement forte ? t après lequel on a la
    précision forte
  • Inéluctablement faible ? t après lequel on a la
    précision faible

précision
complétude
P est réalisable en synchrone, ?W nest pas
réalisable en asynchrone
T. D. Chandra, S. Toueg, Unreliable failure
detectors for reliable distributed systems,
Journal of the ACM, 43(2), 1991
63
Corriger les Défaillances (1/7)
  • La première technique de tolérance aux fautes
    consiste à traiter les fautes
  • Prévoir des composants multiples, pour réduire la
    probabilité quune faute conduise à une
    défaillance
  • Réaliser des traitements multiples (e.g. réaliser
    la même opération par des algorithmes différents)
  • La deuxième technique consiste à traiter les
    erreurs
  • Détecter lexistence dun état incorrect (erreur)
    et prévenir (si possible) loccurrence dune
    défaillance
  • Remplacer létat incorrect par un état correct
    (conforme aux spécifications)
  • Dans tous les cas, le principe est la redondance
    dinformation (détection derreur), temporelle
    (traitements multiples) ou matérielle (composants
    dupliqués)

S. Krakowiak, cours dalgorithmique répartie,
Université Joseph Fourier, 2004
64
Corriger les Défaillances (2/7)
  • Traitement des erreurs la compensation (error
    masking) repose sur une redondance suffisante
    pour
  • Masquer et rendre invisibles aux processus les
    conséquences dune erreur
  • Détecter et corriger lerreur (les tests externes
    de vraisemblance sont inutiles)
  • Les fautes doivent être indépendantes sur les
    composants dupliqués
  • Exemple de réalisation dune mémoire virtuelle
    partagée avec le mécanisme de compensation
  • Dans un système réparti de N sites où f
    défaillance(s) peuvent intervenir
  • Chaque objet X de la mémoire possède K
    gestionnaire(s) avec (f ? K ? N) K sites
    hébergent et gèrent une copie de X
  • Le total order multicast, nécessite une majorité
    de gestionnaire non défaillants pour fonctionner
    K gt 2f

65
Corriger les Défaillances (3/7)
  • Traitement des erreurs le recouvrement (error
    recovery)
  • Remplacer létat derreur par un état correct
  • Nécessite une détection de lerreur au moyen dun
    test de vraisemblance
  • Explicite (exprimer et vérifier des propriétés
    spécifiques de létat)
  • Implicite (via des conséquences visibles
    violation dun délai de garde, violation de
    protection de mémoire, etc.)
  • Deux techniques de recouvrement
  • Reprise (backward recovery)
  • Retour en arrière vers un état antérieur dont on
    sait quil est correct
  • Nécessite la sauvegarde de létat
  • Poursuite (forward recovery)
  • Tentative de reconstitution dun état correct,
    sans retour arrière
  • Technique spécifique, la reconstitution dépend de
    lapplication, et nécessite une analyse préalable
    des types derreurs possibles

66
Corriger les Défaillances (4/7)
  • Un exemple de recouvrement pour gérer la perte
    dun paquet
  • La reprise
  • Lémetteur conserve une copie des paquets quil a
    envoyés, jusquà réception de lacquittement
  • En cas de détection de perte (paquet suivant
    reçu), le récepteur demande à lémetteur de
    renvoyer le paquet manquant ou lémetteur renvoi
    de lui même (délai de garde dépassé)
  • La poursuite
  • Lémetteur peut reconstituer (totalement ou
    partiellement) le contenu dun paquet manquant en
    utilisant les informations locales
  • Le récepteur peut alors poursuivre sans
    interroger lémetteur
  • Comparaison
  • Reprise technique générique, peut être coûteuse
    en temps et place mais cest la plus utilisée
  • Poursuite technique spécifique, peut être
    efficace, mais dapplication limitée

67
Corriger les Défaillances (5/7)
  • Le mécanisme de reprise repose sur la réalisation
    dun point de reprise
  • Consiste a sauvegarder létat local dun
    processus
  • Si un seul processus doit être redémarré, le fait
    davoir un simple point de reprise pour ce
    processus sans synchronisation avec les autres
    peut être suffisant
  • Lorsque que plusieurs (tous) les processus
    participent à la reprise et doivent être
    relancés, il faut que la reprise soit coordonnée
  • Un état global est constitué par lensemble des
    états locaux de chaque processus
  • Une ligne de recouvrement est un ensemble des
    points de reprise un par processus
  • La ligne de recouvrement est cohérente si létat
    global formé par tous les points de reprise est
    cohérent

68
Corriger les Défaillances (6/7)
  • Le problème de ligne de recouvrement incohérente
  • Chandy et Lamport ont montré quune ligne de
    recouvrement est cohérente si elle respecte pour
    chacun des messages m une des règles suivantes
  • m nest ni orphelin ni perdu lors de la reprise
    de lexécution
  • m est orphelin mais lapplication autorise m a
    être orphelin
  • m est perdu mais lapplication autorise m a être
    perdu

Un message est orphelin si sa réception est
enregistrée dans une ligne de recouvrement mais
pas son émission
Un message est dit perdu si son émission est
enregistrée dans une ligne de recouvrement mais
pas sa réception
receive(m)
receive(m)
Pi
Pi
Pj
Pj
crash
crash
send(m)
send(m)
K.M. Chandy, L. Lamport, Distributed snapshots
Determining global states of distributed systems,
TOCS, 3(1)63-75, 1985
69
Corriger les Défaillances (7/7)
  • Les deux principales stratégies de définition de
    points de reprise sont coordonnées et non
    coordonnées
  • La méthode coordonnée consiste a faire coopérer
    tous les processus afin de définir des points de
    reprise formant une ligne de recouvrement
    cohérente coûteux
  • La méthode non coordonnée consiste à effectuer
    des points de reprise de façon totalement
    indépendante, cest-à-dire sans se préoccuper de
    lexistence dune ligne de recouvrement cohérente
  • Les processus doivent coopérer à la reprise pour
    trouver un point de reprise commun
  • Peu coûteux, mais risque deffet domino
  • Le choix dépend principalement du type des
    processus déterministe, non déterministe par
    morceaux, déterministe par morceaux (les seules
    actions non déterministes sont les réceptions de
    messages)
Write a Comment
User Comments (0)
About PowerShow.com