cours horloge

Upload: pierre

Post on 01-Mar-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Cours Horloge

    1/49

    1

    Introduction aux Systmes Distribus

    Licence Informatique 3meanne

    Gestion du temps & tat global

    dans un systme distribu

    Eric Cariou

    Universit de Pau et des Pays de l'AdourDpartement Informatique

    [email protected]

  • 7/25/2019 Cours Horloge

    2/49

    2

    IntroductionAlgorithmique distribue

    Dveloppement dalgorithmes dans le conte!teparticulier des s"st#mes distribus

    Contraintes $ prendre en compte dans ce conte!te Concurrence

    %es lments formant le s"st#me se!cutent en parall#le et demani#re autonome

    &as dtat ou dhorloge globale commune &oints de probl#mes de fiabilit en nombre accru &robl#me matriel dune machine &robl#me de communication via le rseau &robl#me logiciel sur un des lments du s"st#me

    Communication est un point crucial &otentiellement non fiable

    'emps de communication non ngligeables

  • 7/25/2019 Cours Horloge

    3/49

    (

    Introduction Algorithmique distribue

    Dveloppement dalgorithmes ddis au! s"st#mes distribus etprenant en compte les spcificits de ces s"st#mes )n " retrouve notamment des adaptations de probl#mes

    classiques en paralllisme E!clusion mutuelle* lection +dun ma,tre ...

    ais aussi des probl#mes t"piques des s"st#mes distribus /orloge globale* tat global*diffusion causale* consensus ...

    0intresse principalement $ deu! grandes familles de probl#mes 0"nchronisation et coordination entre processus distants

    Entente sur valeurs communes et cohrence globale dans un conte!tenon fiable +crash de processus* perte de messages ...

    Dans ce cours ntroduction $ lalgorithmique distribue avec les probl#mes

    dhorloge et dtat globau!

  • 7/25/2019 Cours Horloge

    4/49

    Systme distribu 0"st#me distribu

    Ensemble dlments logiciels se!cutant en parall#le )n parlera de processus pour ces lments logiciels

    Ces lments communiquent via des canau! decommunication %iaison entre un processus et un canal +canal unidirectionnel 3

    &rocessus E

    'ampon Emission

    &rocessus 4

    'ampon 4ception

    canal

  • 7/25/2019 Cours Horloge

    5/495

    Processus &rocessus 6lment logiciel effectuant une t7che* un calcul E!cution dun ensemble dinstructions 8ne instruction correspond $ un vnement local au processus Dont les vnements dmission et de rception de messages

    %es instructions sont gnralement considres commeatomiques

    l poss#de une mmoire locale

    l poss#de un tat local

    Ensemble de ses donnes et des valeurs de ses variables locales l poss#de un identifiant quil conna,t

    &as ou peu de connaissance des autres processus dus"st#me et de leur tat

    %es processus dun s"st#me se!cutent en parall#le

  • 7/25/2019 Cours Horloge

    6/499

    anaux Canal de communication

    Canal logique de communication point $ point &our communication entre 2 processus 'ransit de messages sur un canal

    Caractristiques dun canal

    8ni ou bi-directionnel :iable ou non 3 perd;modifie ou pas des messages )rdre de rception par rapport $ lmission E!emple 3 ::) < les messages sont re=us dans lordre o> ils sont mis

    0"nchrone ou as"nchrone 0"nchrone 3 lmetteur et le rcepteur se s"nchronisent pour raliser

    lmission et;ou la rception As"nchrone 3 pas de s"nchronisation entre metteur et rcepteur

    'aille des tampons de message cots metteur et rcepteur

    %imite ou illimite

  • 7/25/2019 Cours Horloge

    7/49?

    anaux Caractristiques dun canal

    od#le gnralement utilis :iable* ::)* tampon de taille illimite* as"nchrone +en mission

    et rception et bidirectionnel ariante courante avec rception s"nchrone

    E!emple 3 mod#le des socets 'C& :iable ::) Bidirectionnel

    0"nchrone pour la rception )n re=oit quand lmetteur met 0auf si donnes non lues dans le tampon cot rcepteur

    As"nchrone en mission Emetteur nest pas bloqu quand il met quoique fasse le

    rcepteur

  • 7/25/2019 Cours Horloge

    8/49

    Systme sync!rone " #sync!rone 8n mod#le s"nchrone est un mod#le o> les

    contraintes temporelles sont bornes )n sait quun processus voluera dans un temps born

    )n sait quun message arrivera en un certain dlai

    )n conna,t la limite de drive des horloges locales

    8n mod#le as"nchrone noffre aucune bornetemporelle od#le bien plus contraignant et rendant impossible ou

    difficile la ralisation de certains algorithmes distribus E!emple 3 ne sait pas diffrencier en as"nchrone %e fait quun processus est lent ou est plant %e fait quun message est long $ transiter ou est perdu

  • 7/25/2019 Cours Horloge

    9/49

    $tat et !orloge globales &our chaque processus du s"st#me

    6tat local 3 valeur des variables du processus $ un instant t 6tat global du s"st#me aleur de toutes les variables de tous les processus du

    s"st#me $ un instant t

    &robl#me 8n tat est li $ un instant t

    ais Chaque processus $ une horloge ph"sique locale &as dhorloge globale dans un s"st#me distribu

    %a dfinition dun tat global est possible seulement si onest capable de dfinir un temps global

  • 7/25/2019 Cours Horloge

    10/49

    1

    %emps Dfinir un temps global cohrent et F identique H

    +ou presque pour tous les processus 0oit s"nchroniser au mieu! les horloges ph"siques

    locales avec une horloge de rfrence ou entre elles

    0oit crer un temps logique

    0"nchronisation des horloges ph"siques locales But est dviter quune horloge locale drive trop par

    rapport $ un rfrentiel de temps %a drive est borne en augmentation et en diminution

    Deu! modes 0"nchronisation interne 0"nchronisation e!terne

  • 7/25/2019 Cours Horloge

    11/49

    11

    Sync!ronisation !orloges p!ysiques 0"nchronisation interne

    8n groupe dhorloges ont entre-elles une drive borne 0i Dest la borne ma! de la drive* Cilhorloge ph"sique

    du processus i* tun instant rel* et Ci(t)la valeur delhorloge Cipour cet instant t,alors

    i*I*t 3 J Ci+t K CI+t J L D

    A tout instant* la drive entre 2 horloges quelconques dugroupe ne dpasse Iamais la borne D 8n mesure locale du temps sur un site donnera un temps identique

    $ une mesure dun autre site avec une diffrence dau plus D %es drives sont bornes entre les horloges mais pas

    ncessairement avec le temps rel 0auf si s"nchronisation e!terne en plus sur un temps de ref.

  • 7/25/2019 Cours Horloge

    12/49

    12

    Sync!ronisation !orloges p!ysiques 0"nchronisation e!terne

    8ne source e!terne fournit un temps de rfrence %es horloges locales se re-s"nchronisent rguli#rement

    $ partir de cette source* en prenant en compte %es temps de propagation des messages entre le processus

    courant et celui grant le temps de rfrence %e temps de traitement de la requMte +rcuprer la date de

    rfrence du processus grant le temps de rfrence* sil estconnu

    Mme contrainte que pour s"nchronisation interne 3drive borne ais par rapport $ une source de rfrence 3 0 A linstant t* S(t)est le temps de rfrence donn par la source e!terne

    i*t 3 J 0+t K Ci+t J L D

  • 7/25/2019 Cours Horloge

    13/49

    1(

    t!odes de sync!ronisation 0"nchronisation interne pour un s"st#me distribu s"nchrone

    8n processus envoie rguli#rement la valeur tde son horloge au!

    autres processus pour que chacun se recale sur lhorloge des autres En thorie 3 processus met son horloge $ la valeur t N ' trans 'trans< temps de transmission du message mais est non fi!e

    'transest born 3 borne ma! mais aussi borne min 3 min L 'trans L ma!

    En pratique* processus met son horloge $ la valeur de t N ! )>xest une estimation du temps de propagation E!emple 3 on prend la mo"enne des bornes* ! < +min N ma! ; 2 Erreur de recalage est alors au plus de +min K ma! ; 2

    &lus difficile $ mettre en oeuvre dans un s"st#me as"nchrone

    Car temps de transmission sont non borns

  • 7/25/2019 Cours Horloge

    14/49

    1

    t!odes de sync!ronisation 0"nchronisation e!terne pour un s"st#me as"nchrone

    'emps de propagation des messages est non born

    ais temps daller-retour entre 2 processus est mesurable 8n processus envoie une requMte au processus grant

    le temps de rfrence qui lui rpond en lui envo"ant sa

    valeur dhorloge ts esure du temps daller-retour 3 'round

    A partir de l$* on peut mettre $ Iour son horloge En prenant la moiti de 'roundpar e!emple

    t < tsN 'round;2 Certains algorithmes se base galement sur la dure du

    temps daller-retour par rapport $ la prcision requise poursavoir si la mise-$-Iour sera asseO prcise PCristian* Q

  • 7/25/2019 Cours Horloge

    15/49

    15

    t!odes de sync!ronisation 0"nchronisation interne pour un s"st#me as"nchrone

    PRusella et Satti* Q

    8n des processus est lu ma,tre et cest lui qui g#re le temps

    %es autres processus lui envoie leur valeur dhorloge

    En utilisant galement les temps daller-retour

    A partir de toutes les horloges* le ma,tre dtermine letemps mo"en global

    l envoie $ chaque processus la variationde leur tempslocal par rapport au temps global

    &ermet dliminer les horloges dfaillantes car le ma,trea une vision globale

    0i le ma,tre se plante* un autre est lu

  • 7/25/2019 Cours Horloge

    16/49

    19

    t!odes de sync!ronisation thodes;algorithmes de RuOella et Christian

    &lutTt adapts au! rseau! locau! U'& 3 UetVor 'ime &rotocol 4eprend les ides de ces 2 mthodes mais pour fournir

    un temps global via nternet

    Adapt pour rsister au! probl#mes des larges rseau! 4edondance des serveurs de temps pour assurer fiabilit 0e base sur un rseau de serveurs

    &ermet $ nimporte quel client* quelque soit la qualit de lacommunication de se s"nchroniser Authentification pour se protger des attaques

    % l i

  • 7/25/2019 Cours Horloge

    17/49

    1?

    %emps logique 'emps logique 'emps qui nest pas li $ un temps ph"sique

    But est de pouvoir prciser lordonnancement dele!cution des processus et de leur communication

    En fonction des vnements locau! des processus* des

    messages envo"s et re=us* on cr unordonnancement logique Cration horloge logique

    Deu! approches principales

    /orloge de %amport 3 mthode par estampille /orloge de attern 3 horloge vectorielle

  • 7/25/2019 Cours Horloge

    18/49

    1

    %emps logique ' c!ronogramme Chronogramme Dcrit lordonnancement temporel des vnements des

    processus et des changes de messages

    Chaque processus est reprsent par une ligne

    'rois t"pes dvnements signals sur une ligne 6mission dun message $ destination dun autre processus 4ception dun message venant dun autre processus 6vnement interne dans lvolution du processus

    %es messages changs doivent respecter la topologiede liaison des processus via les canau!

  • 7/25/2019 Cours Horloge

    19/49

    1

    %emps logique ' c!ronogramme 'rois processus tous relis entre-eu! par des canau!

    'emps de propagation des messages quelconques etpossibilit de perte de message

  • 7/25/2019 Cours Horloge

    20/49

    2

    %emps logique ' c!ronogramme E!emples dvnements &rocessus &1 e11 3 vnement dmission du message m1 $ destination du

    processus &2 e1( 3 vnement interne au processus e1 3 rception du message m venant du processus &(

    &rocessus &2 3 message m5 envo" avant m9 mais m9re=u avant m5

    &rocessus &( 3 le message m? est perdu par le canal decommunication

    4#gle de numrotation dun vnement e!"avec ! le numro du processus et " le numro de

    lvnement pour le processus* dans lordre croissant

    % l i d d l

  • 7/25/2019 Cours Horloge

    21/49

    21

    %emps logique ' dpendance causale 4elation de dpendance causale

    l " a une dpendance causale entre 2 vnements si unvnement doit avoir lieu avant lautre

    Uotation 3 e e edoit se drouler avant e'

    0i e e* alors une des trois conditions suivantes doitMtre vrifie pour eet e' 0i eet e'sont des vnements dun mMme processus* eprc#de

    localement e'

    0i eest lmission dun message* e'est la rception de cemessage

    l e!iste un vnement ftel que e f et f e

    %emps logique ' dpendance causale

  • 7/25/2019 Cours Horloge

    22/49

    22

    %emps logique ' dpendance causale 0ur e!emple prcdent Wuelques dpendances causales autour de e12 %ocalement 3 e11 e12* e12 e1( 0ur message 3 e12 e(

    &ar transitivit 3 e12 e(5 +car e( e(5 et e11 e1(

    Dpendance causale entre e12 et e(2 X A priori non 3 absence de dpendance causale Des vnements non lis causalement se droulent en parall#le

    4elation de paralllisme 3 JJ e JJ e ++e e v +e e &aralllisme logique 3 ne signifie pas que les 2 vnements

    se droulent simultanment mais quil peuvent se droulerdans nimporte quel ordre

    % l i d d l

  • 7/25/2019 Cours Horloge

    23/49

    2(

    %emps logique ' dpendance causale )rdonnancement des vnements

    %es dpendances causales dfinissent des ordrespartiels pour des ensembles dvnements

    But dune horloge logique Crer un ordre total global sur tous les vnements de

    tous les processus /orloge logique :onction /+e 3 associe une date $ chaque vnement

    4espect des dpendances causales e e /+e L /+e

    /+e L /+e (e e Cest-$-dire 3 soit e e* soit e JJ e

    (orloge de Lamport

  • 7/25/2019 Cours Horloge

    24/49

    2

    (orloge de Lamport %amport* 1? /orloge de %amport 3 horloge logique respectant les

    dpendances causales 8ne date +estampille est associe $ chaque venement 3

    couple +s* nb s 3 numro du processus nb 3 numro dvnement

    nvariant sur les dates &our deu! dates dun mMme processus* les numros de

    ces dates sont diffrentes d*d 3 d.s < d.s d.nb d.nb l n" pas deu! vnements locau! a"ant le mMme numro

    (orloge de Lamport

  • 7/25/2019 Cours Horloge

    25/49

    25

    (orloge de Lamport Cration du temps logique %ocalement* chaque processus &i poss#de une horloge

    locale logique /i* initialise $ 0ert $ dater les vnements

    &our chaque vnement local de &i /i < /i N 1 3 on incrmente lhorloge locale %vnement est dat localement par /i

    6mission dun message par &i )n incrmente /i de 1 puis on envoie le message avec +i* /i

    comme estampille

    4ception dun message mavec estampille +s* nb /i < ma!+/i* nb N1 et marque lvnement de rception avec /i /i est ventuellement recale sur lhorloge de lautre processus

    avant dMtre incrmente

    (orloge de Lamport

  • 7/25/2019 Cours Horloge

    26/49

    29

    (orloge de Lamport E!emple 3 chronogramme avec aIouts des estampilles

    Date de e2( 3 9 car le message m5 re=u avait une valeur de 5 etlhorloge locale est seulement $ (

    Date de e( 3 car on incrmente lhorloge locale vu que sa valeur estsuprieure $ celle du message m(

    &our e11* e12* e1( ... 3 incrmentation de N1 de lhorloge locale

    (orloge de Lamport

  • 7/25/2019 Cours Horloge

    27/49

    2?

    (orloge de Lamport )rdonnancement global aleur de /i permet de savoir si un vnement a lieu

    avant un autre ou pas* quil sagisse dvnements Du mMme processus De processus diffrents

    )rdre total* not e LL e 3 esest droul avant e' 0oit evnement de Piet e'vnement de P3

    e LL e +/i+e L /I+e v +/i+e < /I+e avec i L I %ocalement +si i < I* /i donne lordre des vnements du processus %es 2 horloges de 2 processus diffrents permettent de dterminer

    lordonnancement des vnements des 2 processus 0i galit de la valeur de lhorloge* le numro du processus est utilis

    pour les ordonner

    (orloge de Lamport

  • 7/25/2019 Cours Horloge

    28/49

    2

    (orloge de Lamport %imites de lhorloge de %amport %ordonnancement global obtenu est arbitraire et nest

    pas forcment celui obtenu en pratique /+e(2 < 2 et /+e22 < ( pourtant e22 est e!cut en pratique

    avant e(2

    )rdre total global obtenu pour le!emple e11 LL e(1 LL e12LL e21 LL e(2 LL e1( LL e22 LL e(( LL e1

    LL e( LL e(5 LL e2( LL e2 LL e15 Dautres sont valides ...

    /orloge de %amport respecte les dpendances causales

    mais avec eet e'tel que /+e L /+e on ne peut rien diresur la dpendance entre eet e' Dpendance causale directe ou transitive entre eet e' X

    E!emple 3 /+e(2 < 2 et /+e1( < ( mais on a pas e(2 e1(

    (orloge de attern

  • 7/25/2019 Cours Horloge

    29/49

    2

    (orloge de attern /orloge de attern Y :idge* 1-1 /orloge qui assure la rciproque de la dpendance causale

    /+e L /+e e e

    &ermet galement de savoir si 2 vnements sontparall#les +non dpendants causalement

    Ue dfinit par contre pas un ordre total global &rincipe 8tilisation destampilles sur les messages

    ecteur de taille gale au nombre de processus %ocalement* chaque processus Pia un vecteur !i

    &our chaque processus Pi* chaque case !i" #du vecteurcontiendra des valeurs de lhorloge du processus P

    (orloge de attern

  • 7/25/2019 Cours Horloge

    30/49

    (

    (orloge de attern:onctionnement de lhorloge nitialisation 3 pour chaque processus Pi* i

  • 7/25/2019 Cours Horloge

    31/49

    (1

    (orloge de attern E!emple 3 chronogramme dapplication horloge de mattern

    Mme e!emple que pour horloge de %amport

    (orloge de attern

  • 7/25/2019 Cours Horloge

    32/49

    (2

    (orloge de attern 4elation dordre partiel sur les dates dfini par i 3 P i Q P i Q

    L dfini par et I tel que P I Q L P I Q

    JJ dfini par + L + L

    Dpendance et indpendance causales /orloge de attern assure les proprits suivantes* avec e

    et e'deu! vnements et !(e)et !(e')leurs datations

    +e L +e e e

    0i deu! dates sont ordonnes* on a forcment dpendance causaleentre les vnements dats

    +e JJ +e e JJ e 0i il n" a aucun ordre entre les 2 dates* les 2 vnements sont

    indpendants causalement

    (orloge de attern

  • 7/25/2019 Cours Horloge

    33/49

    ((

    (orloge de attern 4etour sur le!emple

    +e1( < +(*** +e1 < +**(* +e15 < +5**5

    +e1( L +e1 donc e1( e1 +e1 L +e15 donc e1( e15

    +e(5 < +2**5 et +e2( < +2*(*5 +e(5 L v+e2( donc e(5 e2(

    %horloge de attern respecte les dpendances causalesdes vnements /orloge de %amport respecte cela galement

    +e(2 < +**2 et +e1( < +(* * )n a ni +e(2 L +e1( ni +e1( L +e(2 donc e(2 JJ e1( %horloge de attern respecte les indpendances causales %horloge de %amport impose un ordre arbitraire entre les vnments

    indpendants causalement

    (orloge de attern

  • 7/25/2019 Cours Horloge

    34/49

    (

    (orloge de attern %imite de lhorloge de attern

    Ue permet pas de dfinir un ordre global total En cas de nombreu! processus* la taille du vecteur

    peut-Mtre importante et donc des donnes $transmettre relativement importante

    $tat Global

  • 7/25/2019 Cours Horloge

    35/49

    (5

    $tat Global 6tat global 6tat du s"st#me $ un instant donn

    Buts de la recherche dtats globau! 'rouver des tats cohrents $ partir desquels on peut reprendre

    un calcul distribu en cas de plantage du s"st#me Dtection de proprits stables* du respect dinvariants

    :aciliter le debugging et la mise au point dapplicationsdistribues

    Dfini $ partir de coupures

    Coupure &hotographie $ un instant donn de ltat du s"st#me

    Dfinit les vnements appartenant au pass et au futurpar rapport $ linstant de la coupure

    oupure

  • 7/25/2019 Cours Horloge

    36/49

    (9

    oupure Dfinition coupure Calcul distribu < ensemble $dvnements

    Coupure Cest un sous-ensemble fini de $tel que 0oit aet %deu! vnements du mMme processus 3

    a C et b a b C 0i un vnement dun processus appartient $ la coupure* alors tous

    les vnements locau! le prcdant " appartiennent galement

    Etat associ $ une coupure 0i le s"st#me est compos de U processus* ltat associ $ une

    coupure est dfini au niveau dun ensemble de U vnements

    +e1* e2* ... ei* ... eU* avec eivnement du processus &i tel que i 3e C et evnement du processus &i e ei %tat est dfini $ la fronti#re de la coupure 3 lvnement le

    plus rcent pour chaque processus

    oupure

  • 7/25/2019 Cours Horloge

    37/49

    (?

    p E!emple de coupure

    +mMme chronogramme que pour e!emples horloges %amport et attern

    Coupure < ensemble Z e11* e12* e1(* e21* e22* e2(* e(1* e(2* e((* e( [

    6tat dfini par la coupure < +e1(* e2(* e(

    oupure"tat co!rent

  • 7/25/2019 Cours Horloge

    38/49

    (

    oupure"tat co!rent Coupure cohrente Coupure qui respecte les dpendances causales des

    vnements du s"st#me Et pas seulement les dpendances causales locales $ chaque

    processus 0oit aet %deu! vnements du s"st#me 3

    a C et b a b C Coupure cohrente 3 aucun message ne vient du futur

    6tat cohrent

    6tat associ $ une coupure cohrente &ermet par e!emple une reprise sur faute

    oupure co!rente

  • 7/25/2019 Cours Horloge

    39/49

    (

    p E!emple +mMme chronogramme que prcdent

    Coupure C1 3 cohrente

    Coupure C2 3 non cohrente car e(5 e2( mais e(5 C2

    %a rception de m&est dans la coupure mais pas son mission

    m&vient du futur par rapport $ la coupure

    Datation oupure

  • 7/25/2019 Cours Horloge

    40/49

    p /orloge de attern permet de dater la coupure 0oit U processus* C la coupure* eilvnement le plus rcent pour le

    processus &i* +ei la datation de eiet +C la datation de la coupure

    +C < ma! + +e1* ... * +eU 3i 3 +CP i Q < ma! + +e1P i Q * ... * +eUP i Q

    &our chaque valeur du vecteur* on prend le ma!imum des valeursde tous les vecteurs des U vnements pour le mMme indice

    &ermet galement de dterminer si la coupure est cohrente

    Cohrent si +C < + +e1P 1 Q* ... * +eiP i Q* ... * +eU P U Q

    &our un processus &i* si lvnement eiest le plus rcent cest lui qui a ladate la plus rcente pour C 3 sinon un vnement eIdun processus &I+i I sest droul apr#s un vnement ei de &i avec ei plus rcent que ei

    ei ei et ei eI avec eiC* eIC et ei C

    Datation oupure

  • 7/25/2019 Cours Horloge

    41/49

    1

    Datation des coupures de le!emple Coupure C1 3 tat < +e1(* e22* e(( +e1( < +(*** +e22 < +1*2*1* +e(( < +**( +C < +ma!+3*1** ma!+*2** ma!+*1*3 < +(*2*( Coupure cohrente car +CP1Q < +e1(P1Q* +CP2Q < +e22P2Q*

    +CP(Q < +e((P(Q

    Coupure C2 3 tat < +e1(* e2(* e( +e1( < +(*** +e2( < +2*(*5* +e( < +2** +C < +ma!+3*2*2* ma!+*3** ma! +*5*

    Uon cohrent car +CP(Q

    +e(P(Q Dapr#s la date de e2(* e2( doit se drouler apr#s 5 vnements de&( or e( nest que le quatri#me vnement de &(

    8n vnement de &( dont e2( dpend causalement nest donc pasdans la coupure +il sagit de e(5 se droulant dans le futur

    Dtermination tat co!rent

  • 7/25/2019 Cours Horloge

    42/49

    2

    Algorithme de Chand" Y %amport* 15 Algorithme permettant au! processus distribus

    denregistrer un tat global cohrent &rincipe gnral 8n processus diffuse un vnement marqueur et les

    processus enregistrent leur tat :onctionnement as"nchrone

    Contraintes sur le s"st#me Canau! de communication uni-directionnels et ::)

    :iable 3 pas de plantage ou de perte de message 'opologie de conne!ion fortement +voire totalement conne!e &our faciliter la diffusion

    Dtermination tat co!rent

  • 7/25/2019 Cours Horloge

    43/49

    (

    6tat dun canal

    &our un canal ::) fiable unidirectionnel Canal pour envoi de message du processus &i vers &I

    A un instant t* ltat du canal L i* I \ est lensemble desmessages mis par &i et non encore re=us par &I

    &our le chronogramme de le!emple* tats des canau!par rapport $ la coupure C1 6vnements de la fronti#re de la coupure 3 e1( pour &1 et e(( pour &(

    6tat du canal L 1* ( \ < Z m( [

    m( a t envo" en e12 et ne sera re=u quen e( 6tat du canal L (* 1 \ < Z m [ m a t envo" en e(( et ne sera re=u quen e1

    #lgorit!me de !andy & Lamport

  • 7/25/2019 Cours Horloge

    44/49

    :onctionnement algorithme Chand" Y %amport 8n processus & est initiateur du lancement de lalgo l enregistre son tat local l envoie un message marqueur $ tous les processus

    8n processus &I* $ la rception du marqueur sur son canal L * I \

    Enregistre son tat local +donnes* variables ... &ositionne ltat de chacun de ses canau! entrants L i* I \ $ vide Envoie un marqueur sur tous ses canau! sortants 3 $ tous ses voisins

    Ces ( tapes sont e!cutes en une squence atomique

    &our un processus &I* $ la rception du marqueur venant de&i* sur le canal entrant L i* I \ Enregistre ltat du canal L i* I \ 3 tous les messages re=us sur

    L i* I \ depuis la rception du premier marqueur venant de &

    #lgorit!me de !andy & Lamport

  • 7/25/2019 Cours Horloge

    45/49

    5

    :onctionnement algorithme Chand" Y %amport +fin &our un processus &I* lalgorithme est fini quand il a re=u

    un marqueur sur chacun de ses canau! %tat enregistr pour &I est compos de

    0on tat local +variable* donnes ...

    %es tats de tous ses canau! entrants &our constituer ltat global )n collecte lensemble des tats enregistrs par les

    processus 8ne fois que lon sait que tous les processus lont

    enregistrs

    #lgorit!me de !andy & Lamport & i i d d bl i d t t l

  • 7/25/2019 Cours Horloge

    46/49

    9

    &rincipe du double marqueur pour savoir quand tout lemonde a enregistr son tat local

    %e premier marqueur vient du processus initiateur %e processus &i F sarrMte H alors +ou passe dans une autre

    phase de son calcul l prcise $ tous ses voisins quil sest arrMt en leur envo"ant un

    marqueur l se met en attente de messages linformant que ses processus

    voisins se sont arrMts galement

    A la rception dun marqueur sur un canal* on sait quunde ses voisins sest arrMt Et que tous ses voisins se sont arrMts quand on a re=u un

    marqueur sur tous ses canau! Wuand tout le monde est au courant de larrMt de tout le

    monde 3 cest fini

    #lgorit!me de !andy & Lamport

  • 7/25/2019 Cours Horloge

    47/49

    ?

    ntrMt denregistrer les messages sur L i* I \ %es processus ne sont pas s"nchroniss et les temps de

    propagation des messages sont non nuls Ue sait donc pas quand un processus sarrMte et si tous

    les messages quil a envo" ont t re=us quand il le fait

    Donc doit enregistrer les messages venant de &i Comme les canau! sont ::)* si on re=oit le marqueur de &i* on

    sait que tous les messages envo"s par &i sont maintenus re=us*plus aucun nest en transit

    #lgorit!me de !andy & Lamport

  • 7/25/2019 Cours Horloge

    48/49

    &roprit de ltat global enregistr Correspond $ un tat cohrent

    %algorithme dfinit une coupure :ronti#re est forme pour chaque processus par lvnement

    denregistrement de ltat local et de diffusion du marqueur au!autres processus +via une squence atomique

    Cette coupure est cohrente Car canau! ::) 3 aucun message ne peut en doubler un autre %ocalement pour un processus &I* si un marqueur est re=u sur un canal

    L i*I \* cela implique quaucun message mis par &i et re=u par &I avant le

    marqueur na pu Mtre mis apr#s que &i mette son marqueur &as de message venant du futur

    &our un processus &I* les vnements dmission des messages en transit+$ destination dautres processus F coupant H la coupure ont forcmentlieu avant son vnement local dfinissant la fronti#re

    #lgorit!me de !andy & Lamport

  • 7/25/2019 Cours Horloge

    49/49

    E!emple avec ( processus totalement interconnects

    e 3 vnement denregistrement dtat et diffusion marqueur

    e: 3 vnement o> ltat local complet est enregistr

    6tats canau! 3 L(*1\ < Z m(* m [* L2*(\ < Z m5 [* autres sont vides