Master d Informatique 2009-2010 spécialité «!SAR!»



Documents pareils
Introduction aux algorithmes répartis

Chapitre 4 : Exclusion mutuelle

Conception des systèmes répartis

Cours de Systèmes d Exploitation

Algorithmique répartie

Algorithmique des Systèmes Répartis Protocoles de Communications

Recherche dans un tableau

!" #$#% #"& ' ( &)(*"% * $*' )#""*(+#%(' $#),")- '(*+.%#"'#/* "'") $'

Codage d information. Codage d information : -Définition-

Propagation sur réseau statique et dynamique

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

L exclusion mutuelle distribuée

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Correction TD algorithmique

Plateforme PAYZEN. Définition de Web-services

UTILISATION DE LA BORNE PAR LE CLIENT

Définition des Webservices Ordre de paiement par . Version 1.0

R01 Import de données

Master e-secure. VoIP. RTP et RTCP

PROGRAMMATION EVENEMENTIELLE sur EXCEL

Cours 6 : Tubes anonymes et nommés

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

SPÉCIFICATION DE L'API VERISIGN OPENHYBRID CLOUD SIGNALING

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Algorithmes de recherche

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Algorithmique et Programmation, IMA

Système de sécurité de périmètre INTREPID

Programmation C++ (débutant)/instructions for, while et do...while

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Guide Numériser vers FTP

TD3: tableaux avancées, première classe et chaînes

Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I

STAGE IREM 0- Premiers pas en Python

Métriques de performance pour les algorithmes et programmes parallèles

Groupe de travail Métrologie. Les métriques IPPM.

Les messages d erreur d'applidis Client

Un modèle générique de Garbage Collection pour les éditeurs collaboratifs basé sur l approche TO dans les environnements P2P et mobiles

UNIVERSITE DE BORDEAUX Référence GALAXIE : 94

à la fonction remplie par la pièce. AMP 1200 est un système de ventilation décentralisée d'applications. AMP 1200 est une centrale

DYNAMIQUE DE FORMATION DES ÉTOILES

SysFera-DS : vers une solution de portail scientifique collaboratif chez EDF. Benjamin Depardon

Compression Compression par dictionnaires

Vérification de programmes et de preuves Première partie. décrire des algorithmes

Structures algébriques

Comprendre l Univers grâce aux messages de la lumière

.NET - Classe de Log

Génération de scripts automatiques pour la sécurité des cartes bancaires nouvelle génération (EMV)

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Cours Programmation Système

Impact des robots d indexation sur le cache de second niveau de SPIP IMBERTI Christophe - SG/SPSSI/CP2I/DO Ouest 06/06/2012 mis à jour le 05/07/2012

Les réseaux cellulaires vers la 3G

Guide abrégé ME301-2

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

L ALGORITHMIQUE. Algorithme

OCL - Object Constraint Language

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

1 Recherche en table par balayage

Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU

I. Introduction aux fonctions : les fonctions standards

Plus courts chemins, programmation dynamique

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

techniques de tirs a l avant - partie 2

Planche n o 22. Fonctions de plusieurs variables. Corrigé

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Application 1- VBA : Test de comportements d'investissements

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Conventions d écriture et outils de mise au point

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Publipostage et étiquettes

MIS 102 Initiation à l Informatique

EMPLOI DU TEMPS du 4 ème SEMESTRE

REALISATION d'un. ORDONNANCEUR à ECHEANCES

FileSender par RENATER - Guide utilisateur

Définitions. Numéro à préciser. (Durée : )

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

Développement d'un projet informatique

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Introduction à la programmation concurrente

Licence Sciences et Technologies Examen janvier 2010

Programmation Objet - Cours II

On appelle variable condition une var qui peut être testée et

VIII- Circuits séquentiels. Mémoires

Rafraichissement conditionné d'une page en.net

LE PROBLEME DU PLUS COURT CHEMIN

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

DTS MOBATime's Distributed Time System

Internet et Multimédia Exercices: flux multimédia

LES ACHATS SUR LE WEB (Version 3)

VMT Mod : Ventilation modulée pour le tertiaire

SysFera. Benjamin Depardon

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable

Continuité et dérivabilité d une fonction

Transcription:

UFR 919 février 2010 Master d Informatique 2009-2010 spécialité «SAR» Algorithmique Répartie (MI048) Cours 6 à 10 L. Arantès, C. Dutheillet, M. Potop-Butucaru, S. Dubois

83,9 "#$%&'($)*+,-%.$ /0/ 1%,%2345,3 :; :9%-4<=>%.49?; @4%.A,%.49 7; B*C.9.%.49$ D; 8-453&'($ E; F4=+=-(>4G*-(9%( :; 1H('+3(<I*%,%2345,3?; B*C.9.%.49<=$#$%&'(*%=<.* 7; J-,+G(<($*%,%$,>>($$.53($ D; )(',-K=($ "#$%&'($-*+,-%.$61%,%2345,3 7 83,9U7V :; L324-.%G'(<($9,+$G4%<( FG,9<#(%M,'+4-%NO?; P5Q(>%.C 7; R#+4%G&$($ :;:9%-4<=>%.49 D; L9,3#$( E; 8-.9>.+($ O; L324-.%G'( S; 1H('+3( T; 8-4+-.*%*$ "#$%&'($-*+,-%.$61%,%2345,3 D

56782%-9,%-2: 56782%-9,%-2:NOP ;(<,1<=1>(1?*%,%0123,1>?=:$#$%&'()*+,)%-<2:$-$%(@+)(:>)(=:-:$%,:%,:*>( 1?*%,%>=$#$%&'(@=:'2'(:%>2::*>($2:(A*<=%-2:6B1=$-(=)$=%-1-$,%-2:$+2$C $-31($D 7C"#$%&'()*+,%)*-./(0'&123*$3)&0-.'4#$=)1?*%,%0123,1E+2=)$?,FF),:<G-)>=<,C ),<%&)()*+,)%->=$#$%&'(6/A('+1(D<,1<=1>($,92-)$>?=:(3,:H=(@+,)%-)>( <(=A>(<G,<=:($>($($,0(:<($6 I=%)( 3,:H=( >*3-% >*3-% I0(:<( L2)>(,=A I0(:<( B,)-$ >*3-% <)*>-% I0(:<( ;#2: <)*>-% I92-)$ 3,:H=( JI92-)$,0(:<(B,)-$ KI92-)$,0(:<(;#2: KI92-)$,0(:<(L2)>(,=A I=%)( 3,:H=( OC5#&3$&'()*+,#&-&4*/.(6-%"*4&-6.34E%(1$H=(1?-:%()C312<,0(2=1,%()'-:,-$2: >?=:,102)-%G'(>-$%)-3=*6,%%(:> BR B7,%%(:> 5:%()C312<,0(Q BR,%%(:> BO -:,<%-F B7 -:,<%-F '($$,0( (:%),:$-% U()'-:,-$2:Q -:,<%-F BR BO B7 T(%2: (:%),:$-% S(%2:+()>=Q BO "#$%&'($)*+,)%-$./%,%0123,1 4 "#$%&'($)*+,)%-$./%,%0123,1 M 56782%-9,%-2:NRP 56O[*F-:-%-2:$ RC7-2-44382'3&&3*+'4&0'6%#N*1-'-:,%-2:>($23T(%$H=-:($2:%+1=$)*F*)(:<*$ +,),=<=:>($+)2<($$=$>=$#$%&'()*+,)%-P6 B7 W7 WO '($$,0((:%),:$-% BO WR WX YR:?($%+1=$)*F*)(:<*+2=)1?-:$%,:% H=(>,:$1('($$,0((:%),:$-% YX:?($%+1=$)*F*)(:<* >,:$1($#$%&'()*+,)%- XC9(.#0-)$3*-%"*:-%&34D1?*%,%0123,1>=$#$%&'(($%$,=9(0,)>*+2=)$()9-)>( +2-:%>()(+)-$(6/:<,$>(+,::(>?=:>($$-%($E1($#$%&'()*+,)%-($%)(+1,<* >,:$1(>():-()*%,%0123,1$,=9(0,)>*E(%)(1,:<*@+,)%-)>(<(%*%,%6 &-&*.($-.*+,%)*;0($344%4*< ' *D9,1(=)>($9,)-,31($12<,1($>(B - N(%+1=$0*:*),C 1('(:%>($2:<2:%(A%(>?(A*<=%-2:P6 \2%(D$-B - ($%=:+)2<($$=$>*%()'-:-$%(E1?*%,%12<,1>(B - ($%>*%()'-:*+,)$2: *%,%-:-%-,1(%1,$=<<($$-2:>($*9*:('(:%$E:2%,''(:%1($*9*:('(:%$)*<(+%-2: $?*%,:%+)2>=-%$=)B - 6 &-&*+%*$-)-.*+3*$(22%)'$-&'()*= '> *(:%)(1($+)2<($$=$B - (%B T *D(:$('31(N2)C >2::*E$-1(<,:,1($%]5]WP>($'($$,0($(:%),:$-%(:%)(B - (%B T 6 \2%(D2:<2:$->&)(-<-H=(1($<,:,=A>(<2''=:-<,%-2:$2:%=:->-)(<%-2::(1$^-1#,>(=A<,:,=A>(<2''=:-<,%-2:(:%)(1($+)2<($$=$B - (%B T D_ -T E>(B - 9()$B T E(% _ T- E>(B T 9()$B - 6 B7 &-&*/.(6-.*+,%)*4?4&@23*0#;-0&'*D=:-2:>(1?(:$('31(>($*%,%$12<,=A>($+)2C <($$=$B - (%>(1?(:$('31(>($*%,%$>($<,:,=A_ -T <2:$%-%=,:%1($#$%&'()*+,)%-6 _ 7O _ O7 BO "#$%&'($)*+,)%-$./%,%0123,1 V "#$%&'($)*+,)%-$./%,%0123,1 Z

5678*9-:-%-2:$;7< 56?=)231&'($ A:*%,%0123,1+(B%C%)()(+)*$(:%*+,)B:(D2B)3(E,++(1*(,B$$-"#$#%&E$B)1( F-,0),''(%('+2)(1FB$#$%&'()*+,)%-6G,D2B+B)(F-H-$(1(F-,0),''((:F(BI J2:($;$B)DK,LB(+)2D($$B$<M+,$$*(%9B%B)6 =)231&'(F(1,"''&(&F($*%,%$M S/;= - <:T($%F-)(D%('(:%(%-''*F-,%('(:%23$()H,31(LB($B)= - S/;N -U <:T($%U,',-$F-)(D%('(:%23$()H,31(E:-$B)= - E:-$B)= U => ' 7 / >E>7 *%,%W N >7 QW N >7 QWW =7 / 7E4 => =7 => ' 7 ' > =7 =? ' > /?E7> *%,%QXYZ ' >,))-H*W ' 7,))-H*W =@ '? / @E>O N> N7 N? / N> ;"P<Q/;= > <Q/ >E>7 /;= 7 <Q/ 7E4 /;=? <Q/?E7> /;= @ <Q/ @E>O /;N >7 <Q {' 7 } /;N @? <Q {'? } =)231&'(F(1,")*%&+&F($*%,%$D211(D%*$M 5F*,1('(:%E-19,BF),-%9-0()1T*%,%F($F-99*)(:%$*1*'(:%$;+)2D($$B$(%D,:,BI<,B 'C'(-:$%,:%,3$21B;(I('+1(MD2B+B)(N7<+2B)LBT-1$$2-(:%%2B$(:D2K*)(:D(6 V,-$-1:T#,+,$F()*9*)(:D(%('+2)(11(D2''B:(M-19,B%F*9-:-)B:D)-%&)(F(D2S K*)(:D(+1B$$2B+1(E',-$LB-F2::(:*,:'2-:$B:*%,%0123,1(I+12-%,31(6 "#$%&'($)*+,)%-$./%,%0123,1 4 "#$%&'($)*+,)%-$./%,%0123,1 >R 56@N2B+B)(D2K*)(:%( 56@N2B+B)(D2K*)(:%(;7< A:(D2B+B)(,($%,")*%&+(&$-(11(F*9-:-%B:+,$$*9()'*+2B)1,)(1,%-2:F(+)*D*S F(:D(D,B$,1(6[2B$1($*H*:('(:%$,#,:%+2%(:%-(11('(:%D,B$*B:*H*:('(:% LB(1D2:LB($($-%B,:%,H,:%1,D2B+B)($2:%*0,1('(:%,H,:%1,D2B+B)(6\2)'(1S 1('(:%M => =7 ' 7 ' > ND2B+B)(D2K*)(:%("#($=,$$*;N<E(T] (%(T$=,$$*;N< =? 5:%B-%-H('(:%M1,D,B$(FTB:*H*:('(:%:(+(B%C%)(F,:$1(9B%B);F(1,D2B+B)(<6 NT($%1,D2:F-%-2:'-:-',1(+2B)LBTB:(D2B+B)(+B-$$(D2))($+2:F)(^B:*%,%012S 3,1)*(11('(:%,%%(-:%12)$F(1T(I*DB%-2:FB$#$%&'()*+,)%-;$,:$LB(D(%*%,%012S 3,1,-%"#$%%&'($)$**%*,%%(-:%<6 =,)F*9-:-%-2:EB:*%,%-'"./',")*%&+(($%B:*%,%0123,123%(:B$(12:B:(D2BS +B)(D2K)*:%(6 =@ '? N>(%N7$2:%D2K*)(:%($ N> N7 N? N?+0&1(,$/1D2K*)(:%(M )*D(+%-2:;' _ <$ =,$$*;N?<(% *'-$$-2:;' _ <&=,$$*;N?< =2B)F*%()'-:()$-B:(D2B+B)(($%D2K*)(:%(E-1$B99-%FT(I,'-:()1($'($$,0($(: %),:$-%M,BDB:'($$,0(:(F2-%,11()FB9B%B)H()$1(+,$$*6 ' _ "#$%&'($)*+,)%-$./%,%0123,1 >> "#$%&'($)*+,)%-$./%,%0123,1 >7

"9#;,<7=7-70=#*>#434-5'&#,->*7, 234-5'&#6,(.6-7#,->*7,#?#*&>%#(60@&44>4#A#&-#BC#@0''>=7D>.=-#(.6#*&>%#@.=.>%# >=7*76&@-70==&)4#E 9 #&-#E F " E 9 "#$%&'()&#*+,-.-#/)01.) A E F EG.@>=#*&4#(60@&44>4#A#&-#B#&=H07&#(>74#6&@07-#>=#'&44./&C#.)-&6=.-7H&'&=-"#I>J -0'.-&4#*&4#(60@&44>4#?,-.-#7=7-7.) B,-.-#7=7-7.) " & " % #?#6,@&(-70= *+>=#'&44./& $ #?#,'74470= *+>=#'&44./& % & #?#6,@&(-70= *+>=#'&44./& $ & #?#,'74470= *+>=#'&44./& # & # '()(*+,-.),*/0*121(34$#?#D>.*6>()&-#K,-.-#)0@.)#AC#,-.-#E9C#,-.-#EFC#,-.-#)0@.)#BL # #234-5'&4#6,(.6-74#8#$-.-#/)01.) 9: "F#N6.(G&#*&4#,-.-4#.@@&4471)&4 "F#N6.(G&#*&4#,-.-4#.@@&4471)&4#RFS 5%)6$*/$1*7()(1*)88$119.,$1#?#@+&4-#)+&=4&'1)&#*&4#,-.-4#D>&#(&>-#(6&=*6&#)&# 434-5'&#6,(.6-7C#O#(.6-76#*&#40=#,-.-#7=7-7.)",-.-#7=7-7.) " # $%&'$%&'$%( # )% - " - ( P=#;<0/#*>#/6.(G&#@066&4(0=*#O#>=#,-.-#*>#434-5'&#6,(.6-7#? " * $%&+ " '$%&'$%( # )% " # $%&'$%&+ ( '$%( * )% D>.*6>()&-#K,-.-#)0@.)#AC#,-.-#E9C#,-.-#EFC#,-.-#)0@.)#BL - ( - ". (. " P=&#)%%=($#@066&4(0=*#O#>=&#-6.=47-70=#*+>=#,-.-#O#>=#.>-6&#4>7-&#O#>=#,H,=&'&=-#? & ( C#6 ( C#& D #0>#6 D # " * $%&+ " $%+, " '$%&'$%( # )% " * $%&+ " '$%&+ ( '$%( * )% " * $%&'$%&+ ( $%+, ( '$%( * )% :;$#&%,@>-70=#(.6-7@>)756&#*>#434-5'&#6,(.6-7#@066&4(0=*#O#0;#@G&'7=&'&=-#*.=4# @&#/6.(G&#O#(.6-76#*&#)+,-.-#7=7-7.)" - " " # $%&+ " '$%&'$%( * )%. ". ( - ( " * $%&'$%&+ ( '$%( # )%. (. ".%&#*&#43',-67& # #234-5'&4#6,(.6-74#8#$-.-#/)01.) 9M # #234-5'&4#6,(.6-74#8#$-.-#/)01.) 9Q

66789(',):;($ H,?2AA,-$$,A?(B;0),+@(B($*%,%$,??($$-31($+()'(%B(B*B;-)(+1;$-(;)$ +)2+)-*%*$-A%*)($$,A%($B;$#$%&'(= 4>-1AD(I-$%(,;?;A*%,%+;-%J$,A$,))K%($2)%,A%(LB,A$1(0),+@(=?(1,%),B;-% 1D,3$(A?(B(B(,B12?M+2;)%2;%((I*?;%-2AB;$#$%&'()*+,)%-7 N>2A?2A$%,%(:;(+2;)%2;%((I*?;%-2AC-1#,,;+1;$B(;I'($$,0($B,A$1($?,A,;IO4(%ON=?(1,+()'(%B(B-'(A$-2AA()?($?,A,;IE+)-2)-7 6667<102)-%@'(B($A,+$@2%B( O@,AB#(%H,'+2)%GP <;%)($)(',):;($= >?@,?;AB($*%,%$B;0),+@(($%?2@*)(A%C+;-$:;D-1?2))($+2ABE;A*%,%)*(11(> '(A%,??($$-31(7 >1($#$%&'()*+,)%-($%$#'*%)-:;(=1(0),+@(($%*0,1('(A%$#'*%)-:;(7 >3-(A:;(1($#$%&'($2-%$-'+1(C1(0),+@(?2'+)(ABB*FEG*%,%$7 "#$%&'($)*+,)%-$./%,%0123,1 45 6667PR3F(?%-S 6667N\#+2%@&$($ 61$D,0-%B(?,1?;1()"#$%&'()%)#*;A+*$*,-./0$.,1/2+3)#*BD;A$#$%&'()*+,)%- (A?2;)$BD(I*?;%-2A= >B(S,T2A$-'+1(C >$-+2$$-31($,A$-A%()S*)(),U(?1(S2A?%-2AA('(A%A2)',1B;$#$%&'(7 H($+)2?($$;$A(%2'3(A%4$5,)#,4$##)JB;),A%1($A,+$@2%L7 H()*$(,;BD-A%()?2AA(I-2A($%S2)%('(A%?2AA(I((%1($?,A,;IB(?2'';A-?,%-2A $2A%6&$0.)5(%78797 <0(A?( W,)-$?)*B-%?)*B-% <;%)( 3,A:;( ]A+)2?($$;$,1/..)1*)(3,($%B*$-0A*+2;)?211(?%()1D*%,%0123,1C?(+)2?($$;$($%?2AA;B(%2;$1($,;%)($J?D($%*U(A%;(11('(A%1D;ABD(A%)((;IL7 B*3-% <;%)( 3,A:;( B*3-% <0(A?( Y2)B(,;I B*3-% <0(A?( H#2A W4 W8 *%,%12?,1 O211(?%(;) <U2-)$ 3,A:;( V<U2-)$,0(A?(W,)-$ X<U2-)$,0(A?(H#2A X<U2-)$,0(A?(Y2)B(,;I Z WN "#$%&'($)*+,)%-$./%,%0123,1 4Q "#$%&'($)*+,)%-$./%,%0123,1 N[

666789:,1#$( 666789:,1#$(H4J ;:+,)%<(1=,102)-%>'(1(+1?$$-'+1(+2?)1-$%()1($+)231&'($@)*$2?<)(7A:+)2B C($$?$<*C1(:C>(1(C,1C?1<=?:*%,%0123,1D-1$,?E(0,)<($2:%*%,%12C,1(%<(',:B <(,?F,?%)($+)2C($$?$<=(:G,-)(,?%,:%(:1(?)(:E2#,:%?:'($$,0($+*C-,1 H',)I?(?)J7 K5 / 5."#$%&'&D?:'($$,0(*'-$/)%01?:($,?E(0,)<(<2-%M%)()(N?/)%011,$,?B E(0,)<(C2))($+2:<,:%(<?+)2C($$?$<($%-:,%,-)(7 B<(K 4 E()$K 5 (%K 8 D+,$<(+)231&'(+?-$I?(1($C,:,?F$2:%O6O; B<(K 8 2?K 5 E()$K 4 D+,$<(+)231&'((:),-$2:<(1,C,?$,1-%* B,?C?:(0,),:%-(+2?)1($,?%)($C2?+1($<(+)2C($$?$ K4 / 4 D',)I?(?) K5 / 5 K8 / 8 K4 / 4 C2?+?)( / 8 ;:<2-%,$$?)()<(?F+)2+)-*%*$D1,"#$%&'&<(1,C2?+?)(L(%1,"()*$+,-& 1=*%,%$,?E(0,)<*+2?)1($C,:,?F<(C2''?:-C,%-2:7 K8 2 C2?+?)( "#$%&'($)*+,)%-$./%,%0123,1 45 "#$%&'($)*+,)%-$./%,%0123,1 44 666789:,1#$(H8J 666789:,1#$(HRJ 3"*,+4"'5+2?)1,C2>*)(:C(D+)2+,0()1(',)I?(?)7P>,I?(+)2C($$?$G,-$,:%?:( $,?E(0,)<(H)*JB*'(%1(',)I?(?)E()$%2?$1($,?%)($7P>,I?(+)2C($$?$G,-%?:( $,?E(0,)<($?))*C(+%-2:<?+)('-()',)I?(?)L',-$+,$$?)1($$?-E,:%$7 K5 K4 / 4 / 5."()*$+,-&D?:'($$,0($*'-$/6/'+?:($,?E(0,)<(<2-%M%)(C2'+%,3-1-$*D B$2-%<,:$1,$,?E(0,)<(<?<($%-:,%,-)((:*%,:%)(N?/6/'+C(%%($,?E(0,)<(L B$2-%<,:$1=*%,%<?C,:,1+,)C(I?=-1,*%*)(N?,+)&$C(%%($,?E(0,)<(7 K)231&'(DI?,:<<*3?%()(%,))M%()1=(:)(0-$%)('(:%<($'($$,0($(:%),:$-%S T?(1$$2:%1($'($$,0($*'-$I?-2:%*%*)(N?$,E,:%1,$,?E(0,)<(<?<($%-:,B %,-)(S K5 S / 5 K8 / 8 K4 / 4 Q,$,?E(0,)<(/ 8,*%*,E,:C*(L<($2)%(I?(1('($$,0(<(K 5 E()$K 8 I?-+2$,-%+)231&'(,))-E( ',-:%(:,:%,+)&$1,$,?E(0,)<(7 K8 / 8 C2'+%,3-1-$* @C2'+%,3-1-$() <,:$/ 8 <,:$P 58 S @:(+,$C2'+%,3-1-$() <,:$P 58 "#$%&'($)*+,)%-$./%,%0123,1 48 "#$%&'($)*+,)%-$./%,%0123,1 4R

666789:,1#$(;5< 6667NH)-:>-+($ "#$%&"'(+2=)1,>2'+1*%=?(@+,)%-):2:?($'($$,0($*'-$A',-$?($'($$,0($ )(B=$A(%=%-1-$()1C,=$$-1($',)D=(=)$+)2+,0*$7E($'($$,0($(:%),:$-%$2:% >(=F,))-G*$,+)&$1,$,=G(0,)?((%,G,:%1()(:G2-?=',)D=(=)+,)1($+)2>($$=$ *'(%%(=)$7 O%-1-$,%-2:?('($$,0($)*+,$-$+.;'($$,0($?($()G->(A(:+1=$?($'($$,0($,++1->,%-L$:2)',=F<7 HI H4 H8 / 4 / I / 8 >2'+%,3-1-$*?,:$/ 8 (:)(0-$%)('(:%?(J I8 K2%(@J 48 ($%+,)?*L-:-%-2:G-?(>,)H 8 )(B2-%$2:+)('-()',)D=(=)?(H 4 7 P-$((:2(=G)(?(?(=F)&01($@ Q )&01(?R(:G2-?=',)D=(=)@D=,:?=:+)2>($$=$$,=G(0,)?($2:*%,%A-1(:G2-(=: ',)D=(=)C%2=$1($,=%)($A*/*'%%2=%'($$,0(,++1->,%-L Q )&01(?()*>(+%-2:?=',)D=(=)@$=))*>(+%-2:?=+)('-()',)D=(=)A=:+)2>($S $=$$,=G(0,)?($2:*%,%A(%?*3=%(1R(:)(0-$%)('(:%?($'($$,0($)(B=$$=)>T,S >=:?($($>,:,=FA(:)(0-$%)('(:%D=-$(%()'-:($=))*>(+%-2:?=',)D=(=),$S $2>-*,=>,:,1 O:+)2>($$=$$2=T,-%,:%?*3=%()1,>211(>%(?R=:*%,%0123,1,0-%>2''($=))*>(+S %-2:?R=:',)D=(=);L->%-L<7 "#$%&'($)*+,)%-$./%,%0123,1 45 "#$%&'($)*+,)%-$./%,%0123,1 4M 666759102)-%T'( 666759102)-%T'(;4< 0*+&*1#-.(#"2*#-.@ (:)(0 - VL,=FW (%,%E2>,1 - V W (%,%J,:,1XKY - VZAA[\W ',)D](>=XKY - VZL,=FAL,=FA[\W.*$/-5*+6-+34@ (:)(0 - VG),-W (%,%E2>,1 - V(%,%E2>,1;<W H`O]^VI9K"9Ob- (:G2#();P9]_AH^ < (%,%J,:,1X^Y - VW ',)D](>=X^Y - VL,=FW bh`o] +-2-/"&+3('AH^(4@ "6'VVP9]_9E`]" "6a(:)(0-9E`]" $,=G(0,)?();< b"6 ',)D](>=X^Y - VG),-W "6%2=%](>=;<9E`]" (:G2#();c(%,%E2>,1 - A(%,%J,:,1XY - AJ211(>%(=)<W (:)(0 - VL,=FW ',)D](>=XY - VZL,=FAL,=FA[\W b"6 ]/d`o]k/] b"6 "6(:)(0 - /da',)d](>=x^y - 9E`]" (%,%J,:,1X^Y - "VZ'\W b"6 "#$%&'($)*+,)%-$./%,%0123,1 4U -%*%8"2*34@ ]/d`o]k/]g,)-,31($12>,1($?= +)2>($$=$ %"$%7-2$34@ H`O]^VI9K"9Ob- "6a',)D](>=X^Y - 9E`]" ]/d`o]k/]l,=fw b"6 bh`o] ]/d`o]k/]g),-w "#$%&'($)*+,)%-$./%,%0123,1 4e

666789)2+)-*%*$ O-31-20),+<-( :;,102)-%<'($(%()'-=(7 P7Q,)0/1('(=%$2EC-$%)-3A%(C>2'+A%-=0 :;*%,%0123,1(=)(0-$%)*($%>2'+1(%7 Q7R(16=%)2CA>%-2=%2C-$%)-3A%(C,102)-%<'$ :;*%,%0123,1(=)(0-$%)*($%>2<*)(=%7 97"(=$"#$%&'($)*+,)%-$K',=A$>)-%L?(',)@A(B :;*%,%(=)(0-$%)*+(A%=(+,$>2))($+2=C)(DA=*%,%0123,1(EE(>%-F('(=%,%%(-=%+,) 1($#$%&'(,A>2A)$C(1,'G'((H*>A%-2=7I,-$2=+(A%'2=%)()@A;-1>2))($+2=CD A=*%,%0123,1@A(1($#$%&'(,A),-%,%%(-=%(=)*2)C2==,=%1($*F*=('(=%$C(E,J2= >2'+,%-31(,F(>1,>,A$,1-%*K-7(7(=)*2)C2==,=%1($$(A1$*F*=('(=%$>2=>A))(=%$L S(,=TI-><(1OA$>,."#$%&'($)*+,)%-$K%),=$+,)(=%$C(>2A)$L "#$%&'($)*+,)%-$./%,%0123,1 45 "#$%&'($)*+,)%-$./%,%0123,1 MN

"#$%&'()*;1)%+$, "#$%&'()*$%+$, -./'.0/.*')./'12(&(3451&1%./1 6)'7$/8'&92./'8: < =&.)&*())91)$)8$>?#$*$3/(%$8818%+('8'/ 1)1)'@1$%+$,A8B/$&9C$)1)&$>38,')' A7'7.%'&9C < D33#'%.&'()8E F G$%/9.&'()*;1)H$&()3$/*1E1)'@1$>$)&#$%+$,.1/. #$*/('&*;')&/(*1'/$1))(17$.1H$&() F I()8&/1%&'()*;./?/$%(17/.)&E#$%+$,*$7'$)&#. /.%')$*$#;./?/$$&3$1&')'&'$/%$&&$%()8&/1%&'()3./ *',,18'() F J.)8#$88K8&L>$8M>.N&/$4$8%#.7$OP$)%.8*$#. *9,.'##.)%$*1>.N&/$9#'/$1))(17$.1>.N&/$ I()8&/1%&'()*;1)./?/$%(17/.)& A*',,18'()C < 6)1)'@1$./?/$%(17/.)&$8&%()8&/1'&A8B/$&9C $)1)&$>38,')'A7'7.%'&9C < 6&'#'8.&'()*;1)%+$, F Q$%+$,%(>>$)%$#.%()8&/1%&'()*$#;./?/$ %(17/.)&$)$)7(K.)&1)>$88.R$839%','@1$-S8$8 7('8')8T1)3/(%$8818@1'/$U('&#$>$88.R$-3/$)* %(>>$3L/$#;$V39*'&$1/*1>$88.R$$&#$*',,18$S 8()&(1/ I()8&/1%&'()*;1)./?/$%(17/.)& A*',,18'()C < W&/1%&1/$8E F 2./$)&E3(')&$/7$/8#$3L/$*1)X1**.)8 #;./?/$%(17/.)&A')'&'.#$>$)&Y6QQC F I+'#*/$)E$)8$>?#$*$8,'#8A')'&'.#$>$)&7'*$C F Z&+$/8E#$87('8')8@1')$8()&3.8*$,'#8 A')'&'.#$>$)&7'*$C

"#$%&'()&*#$+,($-'.'/)#(0'-$& 1+*22(%*#$3 4*&/*$/'/5#*&6-%+/7/%%-8/ *2)9/2-$+6-'/$&:;<==&9/$ /$0#>/'?-(@0#*%*$%A6-'/$&:* 4*&/*'/5#*&7/%%-8/?+/6(*%%*&/B *26-'/$&:;<==&9/$ 6-'/$&:B /$0#>/'C6-'/$&DEB /$0#>/'?-(@0#*%*$%FG&/H%I(/FJB /H%//$0#>/'C'/B/&D&#B 4*&/*'/5#*&C6-'/$&D+/6(*%%*&/B )9*H+'/$:)9*H+'/$<KBL *2)9*H+'/$<#&9/'%:0#*%*$%MK6-'/$&L&9/$ 2*$ O S N R T P Q "#$%&'()&*#$+,($-'.'/)#(0'-$& 1+*22(%*#$3 4*&/*$/'/5#*&6-%+/7/%%-8/ *2)9/2-$+6-'/$&:;<==&9/$ /$0#>/'?-(@0#*%*$%A6-'/$&:* 4*&/*'/5#*&7/%%-8/?+/6(*%%*&/B *26-'/$&:;<==&9/$ 6-'/$&:B /$0#>/'C6-'/$&DEB /$0#>/'?-(@0#*%*$%FG&/H%I(/FJB /H%//$0#>/'C'/B/&D&#B 4*&/*'/5#*&C6-'/$&D+/6(*%%*&/B )9*H+'/$:)9*H+'/$<KBL *2)9*H+'/$<#&9/'%:0#*%*$%MK6-'/$&L&9/$ 2*$ O S N R T P Q 4*&/*'/5#*&C'/B/&D+/6(*%%*&/B #&9/'%:#&9/'%<KBL *2)9*H+'/$<#&9/'%:0#*%*$%MK6-'/$&L&9/$ 2*$ 4*&/*'/5#*&C'/B/&D+/6(*%%*&/B #&9/'%:#&9/'%<KBL *2)9*H+'/$<#&9/'%:0#*%*$%MK6-'/$&L&9/$ 2*$ U&9/'%1S3:KRL U&9/'%1R3:KTGSL U&9/'%1P3:KQL U&9/'%1Q3:KPL U&9/'%1T3:KRL VH/)&*#$+,($)9/2 W XH$Y/@*%&/6-%+Y-H8#'*&97/+Z&/'7*$*%&/+YZH/)&*#$+/ )9/2+-$%H/%'Z%/-(@-$#$>7/%/&($*2#'7/% W X+Z/+/H-6'/(0/[ \ =/'Z%/-(/%&-$#$>7/+#$)H-)#$2*8('-&*#$+/ +Z6-'&6/(&]&'/%>7Z&'*I(/ \ =-)#$2*8('-&*#$#.B/)&*21)/HH/#^($H/-+/'/%& ZH(3/%&($/)#$2*8('-&*#$-%>7Z&'*I(/ \ XH/@*%&/($//@Z)(&*#$+(%>%&_7/&/HH/I(YE6-'&*' +Y($/)#$2*8('-&*#$%>7Z&'*I(/#$6-%%/&#(B#('% +-$%($/)#$2*8('-&*#$%>7Z&'*I(/ VH/)&*#$+,($)9/2 W "#$&#('$/'H/%'Z%(H&-&%+Y*76#%%*.*H*&Z[ \ 0*-H/%*+/$&*2*-$&% W "9-$8/&`#./'&%1-$$/-(3 W a*'%9./'8b4*$)h-*' W +*22(%*#$ \ 0*-H/%-H8#'*&97/%6'#.-.*H*%&/% W X&-*/&`#+/9

"#$%&'()*+,)%-$./0-1)2$& 3(4$5&6 7 &(8(#(2'$/1))$1,,)'*'5$%&'())$# 9%-1:,$6'&$'*'68(6$*+,)8(')&$,5;$56 6()6,%%$66$,56,%%<'=> 7 8#,6'$,56%1)*'*1&66'?,#&1)@68(66'4#$6 7 A*@$/%-1:,$%1)*'*1&*'..,6$1,&(,5*$ #+1))$1,61%1)*'*1&,5$B#$85(%$66,6 1C1)&#+'*$)&'.'1)&?1D212)$ "#$%&'()*+,)%-$./0-1)2$& 3(4$5&6 01)*'*1&,5$6'&$' %1)*'*1&E'F;51' $);(C$590G"HI'>J6,%%<'=KL'*'..,6$61%1)*'*1&,5$ 3@%$8&'()6,56'&$'*,?$6612$90G"HIM>*$8,'66'&$M 016$ MN'/$);(C$590G"HIM>J6,%%<'= MO'/'.)(&%1)*'*1&E' %1)*'*1&E'F;51'B$);(C$590G"HI'>J6,%%<'= MF'/*'..,6'()90G"HI'>KL$);(C$5J&(,6#$5@6,#&1&*$ #+@#$%&'() T "#$%&'()*+,)$%-$.P0-1)2Q 3(4$5&6 R S T S R R U U R 0(?8#$D'&@0-1)2$&3(4$5&6 V$?$'##$,5%16/W9)> V$6'*$)&'.'1)&66()&(5*())@6*1)6#X(5*5$%5('661)& 1,&(,5*$#X1))$1, Y S U T S T S U U T

"#$%&'()*+",-./'*0#1'2*3 4'%)2'5-3678. 9 : 4'3);'.*)<)-.*33#.*#2;#..+3;-.3&=#2;2' ;'52#)33-.*->*#>2;'&=-..'-> 4=);'.*)<)-.*?@)@AB)3)*').#'>;3-B-.*;';+5);'23#. 3*-*>3 C "#$%&'()*+",-./'*0#1'2*3 F.$#G'..'678.&#/.: 0+%'2*#2)'2*#>*'3&'3%#33)1)&)*+3;=-22-./'2&'3 );'.*)<)-.*3->*#>2;'&=-..'-> 8.HE:I83-.3&'35#.<)/>2-*)#.3)3#$#2%,)J>'3: K-2)-1&'-&+-*#)2'LMN6O#$12';'$'33-/'33)&='&+5*)#.+*-)* %-2*)';>.#'>;N FPLMNQRFPLMNQ%#>2N;'ES. E D 9 U F&'5*)#.;T>.5,'<B)-;)<<>3)#. 8E: V;+'6 W 5,-J>'5-.;);-*'.B#)'3#.);'.*)*+->(->*2'3.X>;3;> 2+3'-> W >.3)*'2+%#.;S5'>(;'.>$+2#).<+2)'>2->3)'. W Y.%2#5'33>3J>).'2'Z#)*%-3;'2+%#.3''3*&'5,'< U F&'5*)#.;T>.5,'<B)-;)<<>3)#. 89: V;+'6 W 5,-J>'5-.;);-*'.B#)'3#.);'.*)*+->(->*2'3.X>;3;> 2+3'->'*-**'.;&'3).;'.*)*+3;'3->*2'33)*'3 W "-&5>&;>$-(]$).3>2&='.3'$1&';=).;'.*)*+32'5>3 U [G%#*,\3'65#$$>.)5-*)#.<)-1&''*3G.5,2#.'81#2.' 5#..>'3>2&'*'$%3;'5#$$>.)5-*)#.: U [G%#*,\3'65#$$>.)5-*)#.<)-1&''*5#..-)33-.5';>.#$12';'%2#5'33>3;-.3&'2+3'->

"#$%&'()$*+,#-&./#$ 0 1232.2*#)4/--)/5(#6#$)&7#2--). 0 89/.*2$#7':)7$/;/#..))-$25-6)% 0 <-#=5):)-7.)%3$2&)%%5%=5#*/*-)-7.9>.)&7#2-65$25-6)"#$%&'&#()%"$*"+*),( -. 0?.*2$#7':4@ # )%7.).)/6)$6/-%.)$25-6) %%#@ # )%7.9#6)-7#A#/-7:/B#:/.6/-%.9)-%):(.)6)-2)56%C6#%7/-&)/53.5%D $ 6)@ # "#$%&'()$*+,#-&./#$ 0 E-#7#/.):)-74 F 125%.)%3$2&)%%5% %2-7&')A% 0 G25-6)H4 F IJK)7L%2-7&')A% 0 G25-6M4 F KJL%2-7&')A% 0 G25-6D4 F L)%7.)%)5.&')A F /53.5%.2*NOP $25-6)% E7/#+G26)' 0 Q/%>%5$.9/.*2$#7':)6)R'/-*)7G2()$7% 0 R'/=5)3$2&)%%5%&'2#%#7/.>/72#$):)-75-#6>-7#A#/-7 6/-%.9)-%):(.)MSS-N6)5B3$2&)%%5%3)5;)-7&'2#%#$.) :T:)#6)-7#A#/-7P 0 R'/=5)3$2&)%%5%&/-6#6/7)-;2#)5-U)72-/;)&6)5B &'/:3%4 F V&25-7)$W#-#7#/.#%>CM F V/-27')$W#-#7#/.#%>CA/5BN6X%=5).)U)72-$)-&2-7$) 5-&/-6#6/7/;)&.):T:)#6)-7#A#/-7JV/-27')$W3/%%) C;$/#P 0 8)%.)/6)$%6)./$25-6)V#W$)&2::)-&)-7.9/.*2$#7':) Y.)&7#2-6)&')A+?33.#&/7#2-% 0 R/.&5.6)./7/#..)695-$>%)/5 0 Z)77$))-3./&)695-%[%7X:)6)7[3) 35(.#%'\%5(%&$#() 0 E:3.>:)-7)$.9/..2&/7#2-6)$)%%25$&)%)- )B&.5%#2-:575)..) 0?&&X%/5B62-->)%$>3.#=5>)% 0 E:3.>:)-7)$.)&2-%)-%5% 0 ]>7)&7)$./7)$:#-/#%2-695-/.*2$#7':) 0,2$7#$6)%%#75/7#2-%6)(.2&^/*) 0 89/.*2$#7':)%)7)$:#-)/;)&3$2(/(#.#7>M

"#$%&'()*$#$+*$, -./0$+12*$,(3(&0 4 5(#1&'()06,(3+3'#'0&$0 -./0$+12*$%+6&$1,0 4 7'0$$)6#+%$*$0+#8(,'&9:$0#(%+12 6,(3+3'#'0&$0 -./0$+12;<; 4 ='>>'%'#$*$%9('0',1)#$+*$,%+,'#6$1&?&(1& :(:$)&@1'&$,#$0A0&B:$C'%'*$00(#1&'()0 +#&$,)+&'D$00E':6(0$)&F

Plan Détection Répartie de la Terminaison Définition du Problème " Exemple de mauvais algorithme Exemple d'algorithmes " Algorithme de Misra [1983] " Modèle à communication instantanée Algorithme de Rana[1983] Algorithme de Dijkstra [1983] " Modèle atomique : Algorithme des quatre compteurs (Mattern [1987]) 10/03/10 AR: Détection répartie de la terminaison 1 10/03/10 AR: Détection répartie de la terminaison 2 Détection Répartie de la Terminaison Détection Répartie de la Terminaison Construction d'une couche de contrôle afin de détecter la terminaison d'une application répartie. " Distinguer l'algorithme de détection de terminaison de l'algorithme de l application. Pas d'influence dans l exécution de l application Configuration terminale " aucune action supplémentaire de l'application ne peut être exécutée " Tous les canaux de communication sont vides État " actif : si une action interne ou l action émettre() est applicable " passif Dans le cas contraire Message " Applicatif ("basic message"): Message de l'application " Contrôle Message de l'algorithme de détection de la terminaison. 10/03/10 AR: Détection répartie de la terminaison 3 10/03/10 AR: Détection répartie de la terminaison 4

Détection Répartie de la Terminaison Un modèle est défini pour une exécution répartie en définissant les actions des processus actifs et passifs. Les processus suivent les règles suivantes: 1. Initialement, chaque processus p peut être dans l'état actif ou passif 2. Un processus p peut passer spontanément de l'état actif à passif. 3. Seuls les processus actifs peuvent envoyer des massages applicatifs. 4. Lors de la réception d'un message applicatif, un processus p passif passe à actif. Seule façon pour un processus passif de passer à actif. " Observations : Un message de contrôle émis lorsque le processus est passif ne le rend pas actif. La réception d'un message de contrôle par un processus passif ne le rend pas actif. 10/03/10 AR: Détection répartie de la terminaison 5 Détection Répartie de la Terminaison Terminaison " : ensemble de processus C : ensemble de canaux Prédicat TERM : TERM <=> (# p _ " : p passif) et (# c _ C: c vide) $ TERM est un prédicat stable : % TERM (t) = true => # t' > t : TERM (t') = true 10/03/10 AR: Détection répartie de la terminaison 6 Détection Répartie de la Terminaison Détection Répartie de la Terminaison Propriétés : " Sûreté : Si un processus détecte la terminaison à l'instant t, alors TERM(t) = true # Pas de fausse détection " Vivacité : # Si à un instant t, TERM(t) = true, alors l'algorithme de détection finira par détecter cette terminaison. Exemple d'un mauvais algorithme de détection répartie de la terminaison " Les sites se trouvent soit dans l'état passif soit dans l'état actif " Algorithme : Faire circuler un jeton (message de contrôle) selon une structure d'anneau, envoyé initialement par P 0. Lorsqu'un site est passif et possède le jeton, il l'envoie au site suivant. Lorsque le jeton revient à P 0, la terminaison est détectée. 10/03/10 AR: Détection répartie de la terminaison 7 10/03/10 AR: Détection répartie de la terminaison 8

Mauvais algorithme de détection de la terminaison Terminaison sur un anneau Algorithme de Misra P 5 P 4 P 3 P 0 Terminaison P 2 Faux : P 1 actif P 1 : processus actif : processus passif : msg applicatif : msg contrôle " Anneau logique Canaux FIFO unidirectionnels. " Chaque site une couleur noir ou blanc. noir =actif blanc = passif " Jeton porte un compteur Nombre de sites trouvés passif par le jeton. " Terminaison détectée : tous les sites sont blancs après un tour. 10/03/10 AR: Détection répartie de la terminaison 9 10/03/10 AR: Détection répartie de la terminaison 10 Algorithme de Misra Algorithme de Misra init: state =actif color = black if (i==0) token = true else token = false; Upon fin: state =passif Upon reception application msg: etat =actif color = black N sites Upon reception TOKEN (count) token = true; Nb=count; if ((Nb== N) and (color== white)) termination detection; Upon (token== true) and (state==passif) if (color == white) send (TOKEN, Nb+1) else send (TOKEN,1): color = white; token = false; Terminaison detectée P 5 passif token,1 token,6 passif P 4 token,1 token, 5 token,1 P 0 P 3 passif passif token,1 token,4 token,1 token,2 token,1 token,3 P 2 passif N: 6 P 0 : token P 1 passif 10/03/10 AR: Détection répartie de la terminaison 11 10/03/10 AR: Détection répartie de la terminaison 12

Détection Répartie de la Terminaison Modèle à communication instantanée Modèles afin de simplifier le problème : " A communication instantanée : Communication synchrone : exemple CSP TERM <=> ( p _ ": p passif) " Atomique : Le moment d'activité des processus est négligeable. # TERM <=> ( c _ C: c vide) Algorithme de Rana [1983] " Communication instantanée (e.g. CSP) " N sites organisés dans un anneau logique unidirectionnel. Messages transmis sur l'anneau. " A chaque fois qu'un processus reçoit soit un message applicatif soit un message de contrôle, il met son horloge logique locale à jour. " Les messages de contrôles circulent sur l'anneau. Message de contrôle: <H, compteur> Chaque site envoie le message de contrôle à son successeur et le reçoit de son prédécesseur; " Observation : Huang [1988] a étendu l'algorithme de Rana TD terminaison 10/03/10 AR: Détection répartie de la terminaison 13 10/03/10 AR: Détection répartie de la terminaison 14 Algorithme de Rana Lorsqu'un processus devient passif, il enregistre la valeur de son horloge locale(h pas ) et envoie le message de contrôle < H pas,1> à son successeur; Lors de la réception d'un message de contrôle : " Si le site est actif, il ignore le message; " Sinon Si (compteur =N) # Si la valeur de son passage à passif H pas > H msg du message de contrôle reçu, le message est ignoré; # Sinon, le message est envoyé à son successeur avec le compteur incrémenté < H pas,compteur+1>; Sinon # Terminaison détectée. # Le site envoie à son successeur un message de terminaison; Le message fera le tour de l'anneau. 10/03/10 AR: Détection répartie de la terminaison 15 Algorithme de Rana P H pas =5 0 <8,2> <8,3> P 5 <4,1> H pas = 4 <5,1> P 1 H pas = 1 <8,1> H pas = 8 <5,2> <8,4> Terminaison P 4 : processus actif <5,4> <5,3> <8,6> P 2 : processus passif H pas = 3 P 3 <8,5> H pas = 3 : msg contrôle : msg terminaison 10/03/10 AR: Détection répartie de la terminaison 16

Modèle à communication instantanée Algorithme de Dijkstra [1983] " Modèle à communication instantanée " N sites organisés dans un anneau logique. " Existence d'un jeton " Les sites peuvent être de couleur blanche ou noire ainsi que le jeton. Initialement tous les sites et le jeton sont blancs. 10/03/10 AR: Détection répartie de la terminaison 17 Il y a un site initiateur P 0. Algorithme de Dijkstra " Quand P 0 devient passif, il envoie le jeton couleur blanche à P N-1. Lorsque le site P i, qui détient le jeton, devient passif, P i envoie le jeton au site P i-1 : " Si P i est blanc : P i envoie à P i-1 le jeton sans changer la couleur du jeton ; " Sinon, P i change la couleur du jeton à noire avant de l'envoyer à P i-1. P i devient blanc ; Un site P i devient noire en envoyant un message applicatif au site P j. Lorsque P 0 reçoit le jeton : " Si le jeton est blanc et P 0 est blanc et dans l'état passif terminaison détectée " Sinon lorsque P 0 devient passif, il renvoie le jeton couleur blanche à P N-1. 10/03/10 AR: Détection répartie de la terminaison 18 Détection Répartie de la Terminaison Algorithme de Dijkstra actif passif terminaison P 0 Modèle atomique L'algorithme de détection ne "voit" jamais un processus local dans l'état actif : l'algorithme n'est activé que lorsque le processus est passif passif P 5 passif P 1 passif actif P 4 passif actif Devient: passif P 3 P 2 : msg applicatif : msg contrôle 10/03/10 AR: Détection répartie de la terminaison 19 10/03/10 AR: Détection répartie de la terminaison 20

Modèle atomique Terminaison détectée lorsque tous les canaux son vides. terminé terminé t 1 t2 t 3 Détection Répartie de la Terminaison " Modèle atomique : Une mauvaise solution avec deux compteurs # N processus # Supposons qu'un processus i (initiateur) veut savoir si le système se trouve dans un état terminal : tous les canaux vides $ i envoie un message de contrôle à tous les N-1 autres processus à un instant t. # Chaque processus j répond à i avec le nombre de messages reçus r j (t) et nombre de messages envoyés s j (t) ; # En recevant tous les messages, le site i calcule : S(t) = " s j (t j ) et R(t) = " r j (t j ) Si S(t) = R(t), le nombre de messages envoyés = nombre de messages reçus alors - les canaux sont vides => détection de la terminaison FAUX # Pourquoi? 10/03/10 AR: Détection répartie de la terminaison 21 10/03/10 AR: Détection répartie de la terminaison 22 Détection Répartie de la Terminaison Détection Répartie de la Terminaison initiateur " Inexistence d'un temps global absolu: le moment où les processus j ont reçu les messages de contrôle est t j et non pas t, le moment de l'envoi du message de contrôle par i. La ligne qui connecte tous les t j forme une vague de contrôle ("a time cut"). P 4 P 3 P 2 P 1 t s 1 (t)=0; s 2 (t 2 )=0; s 3 (t 3 )=1; s 4 (t 4 )=0; r 1 (t)=0; r 2 (t 2 ) = 0; r 3 (t 3 )=0; r 4 (t 4 )=1; t 2 t 3 10/03/10 AR: Détection répartie de la terminaison 23 t 4 vague de contrôle S(t) = " s i (t i ) =1 = R(t) = " r i (t i ) =1 S(t) = R(t) : canaux vides : Détection de la terminaison => FAUX Solution : L'algorithme des quatre compteurs " Mattern [1987]. " Compter deux fois : Fin de la première vague de contrôle: l'initiateur accumule les valeurs de s i (t i ) et r i (t i ) # i : 1 i N dans S* et R*. Fin de la deuxième vague de contrôle: l'initiateur accumule les valeurs de s i (t i ) et r i (t i ) # i : 1 i N dans S'* et R'* (depuis le début de la première vague). " L' exécution est terminé si : S* = R* = S'* = R'* L'exécution est terminée à la fin de la première vague. 10/03/10 AR: Détection répartie de la terminaison 24

Détection Répartie de la Terminaison Détection Répartie de la Terminaison P 4 P 3 P 2 P 1 initiateur L'algorithme des Quatre Compteurs Application n'a pas terminé : S*=R*=R'*=1 mais S'*=2 m1 t 1 première vague de contrôle 1 m2 2 3 4 5 t t 3 2 S*=R*=1 deuxième vague de contrôle t 4 S'*=2; R'*=1 : Site P i reçoit le msg de contrôle de P 1 et renvoi les information sur s(t 2 ) i et r(t 2 ) i Deuxième vague commence après la reception de tous les messages de contrôle: après t 2 initiateur P 4 P 3 P 2 P 1 L'algorithme des Quatre Compteurs Application a terminé: S*=R*=S'*=R'*=4 première vague de contrôle deuxième vague de contrôle t 1 R* = S'* => l'exécution s'est terminée à la fin de la première vague: t 2 Terminaison détectée à la fin de la deuxième vague : t4 t 2 S*=R*=4 t 4 S'*=R'*=4 10/03/10 AR: Détection répartie de la terminaison 25 10/03/10 AR: Détection répartie de la terminaison 26 Détection Répartie de la Terminaison L'algorithme des quatre Compteurs (cont.) " R*= S'*, alors l'exécution répartie s'est terminée à la fin de la première vague. Soient t 2 la date où la première vague s'est terminée et t 3 t 2 la date du début de la deuxième vague. R*= S'* => R(t 2 ) = S(t 2 ) 10/03/10 AR: Détection répartie de la terminaison 27 Détection Répartie de la Terminaison L'algorithme des quatre Compteurs (1) Les compteurs locaux sont monotones, t t' implique s i (t) s i (t') et r i (t) r i (t'). Preuve : suit de la définition. (2) Le nombre de messages envoyés et reçus est monotones, t t' implique S(t) S(t') et R(t) R(t'). Preuve : suit de la définition et (1). (3) R* " R(t 2 ). Preuve : suit de (1) et le fait que toutes les valeurs de r i sont collectées avant (" ) t 2. (4) S'* S(t 3 ). Preuve : suit de (1) et le fait que toutes les valeurs de s i sont collectées après ( ) t 3. (5) t, R(t) " S (t). " Preuve: la différence non négative D(t) = S(t) R(t) correspond au nombre de messages en transit. D(t) " 0. 10/03/10 AR: Détection répartie de la terminaison 28

Détection Répartie de la Terminaison Détection Répartie de la Terminaison L'algorithme des Quatre Compteurs R*= S'* => R(t 2 ) S (t 3 ) (3,4) Cela dit, l'exécution s'est terminée à l'instant t 2 => R(t 2 ) S(t 2 ) (2) => R(t 2 ) = S(t 2 ) (5) 10/03/10 AR: Détection répartie de la terminaison 29 Bibliographie " J. Misra, Detecting termination of distributed computations using markers. PODC, pages 290-294. " E.W.Dijkstra, Derivation of a termination detection algorithm for distributed computations. Information Processing Letters 16, pages 217-219, 1983 " F. Mattern, Algorithms for distributed termination detection. Distributed Computing, Vol 2, pages 161-175, Springer Verlag, 1987. " S. P. Rana, A distributed solution of distributed termination problem. Information Processing Letters 17, pages 43-46, 1983. " J. Matocha and T. Camp, A taxonomy of distributed termination detection algorithms. The Journal of Systems and Softwares 43, pages 207-221, 1998. 10/03/10 AR: Détection répartie de la terminaison 30

"#$%&'$()'($*&+,-.*$/%0&1++ 2('-3 4-"&'$()'5-"+*'+266/5)%'5-"& @ @ "#$%&'$()'($*&+=+*>*?6/*& "'*$"*' AB&*%(>+CDC+=+5"#$%&'$()'($*&+/-E5F(*&+ G "-"=&'$()'($B*& G &'$()'($B*&+,H5&'$5I('*:+J%&K+L%I/*&1+ 7%$5%89$%:5"%$5(;/56<8#$ @ AB&*%(>+7-I5/*&+M+AB&*%(>+:*+)%6'*($&+ G 4/(&'*$5"E+G+)*//(/*&N+65)-=)*//(/*& G 4-(.*$'($*&+)-""*>*& G I%)OI-"*& "#$%&'$()'($*&+=+%66/5)%'5-"& "#$%&'$()'($*&+=+%66/5)%'5-"& @ A-('*$+*'+$*)K*$)K*$+:*&+:-""B*&+*'+ &*$.5)*& G 9"('*//%N+P%Q%%N+R5'L-$$*"' @ 4-??("5F(*$+*'+)-//%I-$*$+ G 4K%'S$)N+T*U&9$-(6& G "&'%"'+7*&&%E5"E+,2-/N+)FN+V%K--N+7&"1 @ C%$'%E*$S$B6%$'5$+:*&+:-""B*&N+I%":*+6%&&%"'*N+ 6(5&&%")*+:*+)%/)(/+-(+&'-)O%E*+ G T%6&'*$N+C(I/5(&N+W$**"*'N+7-X-T%'5-"N+W$**J%.*"N+ 9$--.*N+*=:-"O*0N+4K-$:N+4%"N+C%&'$0N+L%6*&'$0 G Y-5)*SC+,ZO06*1 G Z*'5;K-?*+,%&'$-"-?5*1 G E*"-?*;K-?*+,2HT1 G #-/:5"E;K-?*+,$*6/5*?*"'+:*&+6$-'B5"*&1

"#$%&'()*(+()+&,-'.,/0&.).1'(+(#$2.'0,)0+2,+$3'//,)*(+')30'2'/%(+-(+ 1'22'.)/+-4.&-'),0(3&/+*.))(*0%/+5',+6)0(&)(0+-,)/+3)+$&.7(0+-(+ 8(*9(&*9(+-43)(+6)0(22':()*(+"#0&,;0(&&(/0&(+<=(,&*9+>.&+"#0&,;?(&&(/0&',2+6)0(22':()*(@+,2',/+="?6AB C(/+.&-'),0(3&/+*9,&:()0+(0,),2D/()0+2(/+-.))%(/+*.22(*0%(/+-3+$23/+ :&,)-+&,-'.0%2(/*.$(+,3+1.)-(+E+F&(*'G.B H@I+1'22'.)/+-(+$,&0'*'$,)0/+-(+HHJ+$,D/+(0+0(&&'0.'&(/ "#$%&'()*)+,(-'.+&/,0+&112&3,4+ 5166&,007-+&89:&;&<='. "$&>-.,?*=3+&+='(-0'&@A-&B,.(C& D)E'*,(=.&F,3=0,)+&=G()-0(&H6&>?I 5#J&K-((,L*=3&@56 15 I&3='.&*-+&"& /-.0)M.-+&,007-+ >.M+&C7(7.=NM0-&O&PJJ&(43-+&/-& 3.=Q-++-'.+&/)LL-.-0(+& +K.1$&()-&(+2(+&($2'(1()0+(0+2L,:&%:,0'.)+-(/+$&.0%')(/+(0+2(/+1,2,-'(/+M3'+ /.)0+2'%(/ +"03-(+-(+1,2,-'(/+*.11(+*(22(+-LF2N9('1(&@+2,+>'G&./(+*D/0'M3(@+2L"O=+<2,+ P,*9(+Q.22(A@+3)(+>.&1(+9%&%-'0,'&(+-(+2L(1$9D/R1(+(0+-(+).1G&(3#+*,)*(&/+ &%/320()0+-L3)+&($2'(1()0+,).&1,2+-(/+$&.0%')(/B +S($3'/+2(+T(&+.*0.G&(+HUUU@+$23/+-(+VUU@UUU+KWX/+.)0+$,&0'*'$%+,+*(+ $&.:&,11( R7+-,'S&919

"#$%&'$()'($*&+,-,. "/"+0&'$()'($1*&+23"('*44%5+6%7%%+8 0 4%+'/9/4/:;*+<(+&=&'>?*+*&'+<1'*$?;"1*+9%$+4*&+ (';4;&%'*($&+ 0 4*+94%)*?*"'+<*&+</""1*&+<%"&+4*+&=&'>?*+"*+';*"'+ 9%&+)/?9'*+<*+4%+'/9/4/:;*+<(+&=&'>?*. &'$()'($1*&+2@A/$<5+@BC5+,%&'$=5D%9*&'$=8 0 4*+94%)*?*"'+<*&+</""1*&+<%"&+4*+&=&'>?*+*&'+#%;'+E+ <*&+4/)%';/"&+9$1);&*&+2(';4;&%';/"+<*&+#/")';/"&+<*+F+ A%&A+G8 0 4%+'/9/4/:;*+<(+$1&*%(H+%+<*&+#/$?*&+9%$';)(4;>$*&+ 2*HI+%""*%(5+%$J$*5+:$;44*8+ K1&*%(H+,-,+"/"L&'$()'($1*&+ 3"('*44%.,$/'/)/4*+<*+$*)A*$)A*+<*+</""1*&+*'+ &*$M;)*& 0 +)A%N(*+"O(<+*&'+E+4%+#/;&+)4;*"'+*'+&*$M*($. P*&&%:*&+3"('*44%+2D;?*D/Q;M*8 0 <1)/(M*$'*+<*+"O(<&+,C3R,SC3+ 0 <1)/(M*$'*+<*+</""1*&+2#;)A;*$&8+*'+&*$M;)*&. T(*$=. T(*$=U;' K1&*%(H+,-,+"/"L&'$()'($1*&+ 3"('*44% $%&'( $%&'( #, $%&'()*+ " K1&*%(H+,-,+&*?;L&'$()'($1*&+ V$**C*'. W'/)X%:*+9*$&;&'%"'+<*+</""1*&+*'+ &*$M;)*&+ 0 Y/""1*&+;<*"';#;1*&+9%$+("*+)41+J;"%;$*+ 2#/")';/"+A%&A8 0 4*&+</""1*&+N(;+'$%M*$&*"'+("+"O(<+&/"'+ )/9;1*&+<%"&+4*+)%)A*+<(+"O(<+. QZ(';4;&%';/"+<*+4%+9/4;';N(*+QK[+9/($+4%+:*&';/"+<(+ )%)A*. QZ;"#/$?%';/"+&'/)X1*+9%$+</""1*+2#;)A;*$8 0 )/<*+A%&A 0 Q*+<*$";*$+'*?9&+<Z%))>&R?/<;#;)%';/"

"#$%&'()*)(#$+,-#./&0.&/"$#( 1/$$2$. 34&.$55%(6#7(1/$$2$. 8 9&.%:$(;%#"(#&/(5%(<,==&#,94(>=599<,4:?((6#7(9&.%:$( <@4%+,A&$(;%#"(#&/(5%(#,+,5%/,."(<$#(05"# 8 B&0&4$(+"+9,/$(<&(./%=,A&$(C%##"(6#7(D%;5$#(<$( /9&.%:$ ( 8 $%<-945@(6#7($%<EF/,.$ 8 G@#.H+$(494(#"0&/,#"(6#7(G@#.H+$((#"0&/,#" "#$%&'()*)(#./&0.&/"$#(( IJ9/< "#$%&'()*)(#./&0.&/"$#(( IJ9/<(>5Q%##90,%.,94(05"#(-(49$&<#? 8 &4$(,4=/%#./&0.&/$(<$(#.90K%:$($.(/9&.%:$ 8 L(0J%A&$(&.,5,#%.$&/($.(L(0J%A&$(=,0J,$/(<%4#( 5$(#@#.H+$(94(%##90,$(&4,<$4.,=,%4.(#&/(+( ;,.#(>* + (,<$4.,=,%4.#?( M N<(&.,5,#%.$&/(O(J%#J>N)?( M N<(=,0J,$/(9&(05"(=,0J,$/(O(J%#J>094.$4&? M PQ$#C%0$(<$#(NR#(9/:%4,#"($4(%44$%& M S4(=,0J,$/(<$(05"(K($#.(#.90K"(#&/(5$(C/$+,$/(49$&<( <%4#(5$(#@#.H+$(%@%4.(5Q,<$4.,=,%4.(@(>@TK(+9<(* + (?( "##$$"%&-()*). ( & $ % " ' )*+,-).)/,-,0+1* 2 345 " "##$$"%&'()*)' # # "##$$"%&+()*), #

"#$%&'()*)(#+,&-+&,"$#((./0,1(234%##0-5%+506(-3"(7(60$&1#8 "#$%&'()*)(#+,&-+&,"$#((./0,1(234$6+,"$(1&(69&1(:8 )*+ $ )*+, ( & )*+, & ( & )*+, & $ # )*+, $ $ # % " ' )*+, # % " ' )*+, # "#$%&'()*)(#+,&-+&,"$#((./0,1(23$#(,%--0&,-5#8 "#$%&'()*)(#+,&-+&,"$#((./0,1(23%(,$-/$,-/$(1$(3%(-3"(;<8 -./0123456*1 <=28,4524,7))8 ;# ;# & ;# # & # " & ' 91:, $ $ ( & # -./0123456*1 <=28,4524,7))8 &;# # ' &;# & ' ' &;# # % 91:, & % " ' -./0123456*1 <=28,4524,7))8 ';# " ';# & % ';# # ( 91:, #

"#$%&'()*)(#+,&-+&,"$#((./0,1( "#$%&'()*)(#+,&-+&,"$#((.C;( 2 3%(4"405,$(&+535#"$(6%,(70$&1(8930:9;<< 2 3$(+$46#(1$(,$-/$,-/$(1=&7$(-3"( 8930:9;<< 2 3$(#>#+?4$($#+(%&+0@,$-07A5:&,%B3$($+( +03",%7+(%&'(1"A%533%7-$# 2 D1"$(1$(-07-$6+507(E F $#6%-$(-%,+"#5$7(G5,+&$3(*@154$#5077$3(( F -/%H&$(7I&1(1&(#>#+?4$($#+(3$(6,06,5"+%5,$((1=&7$( J07$(1%7#(3=$#6%-$(G5,+&$3 F 3$#(1077"$#(#07+(#+0-K"$#(#0&#(3%(A0,4$(9-3"L(G%3<( 2 /%#/9-3"<(@@M(&7(6057+(9'L><(1%7#(3=$#6%-$(G5,+&$3( 2 9-3"L(G%3<(($#+(#+0-K"(6%,(3$(7I&1(6,06,5"+%5,$(1$( 3%(J07$((107+(A%5+(6%,+5$(9'L><( "#$%&'()*)(#+,&-+&,"$#((.C;(93$(,0&+%:$< "#$%&'()*)(#+,&-+&,"$#((.C;(93=57#$,+507(1&(7I&1(N< $# "% "# "% & $# $% "# $%

"#$%&'()*)(#+,&-+&,"$#((./0(12$(3"4%,+(3&(56&3(78 95:,%#+,&-+&,$#()*)( "42;-%+;<5(3$(3<55"$# = >,$$0$+(=(2$#(3<55"$#(#<5+(-<4;"$#(4%,(2$#( 56&3#(?&;(4%,+;-;4$5+(@(2$&,(,<&+%A$ = B<C<0%+;<5(=(2$#(-<4;$#(3$#(3<55"$#(+,D#( 3$E%53"$#(#<5+(3;##"E;5"$#(3%5#(2$(,"#$%&( 4%,(&5(#$,F$&,( =./0(1E&2+;G3;E$5#;<55$28(=(&5$(3<55"$(4$&+( %F<;,(&5$(-2"(4%,(3;E$5#;<5( 95:,%#+,&-+&,$#()*) H"-&,;+" 95:,%#+,&-+&,$#()*) H"-&,;+" I "F;+$,(2$#(-<55$';<5#(3;,$-+$#($5+,$(2$ 3$E%53$&,(3J;5:<,E%+;<5($+(2$(4,<4,;"+%;,$( 1>,$$0$+8 I &+;2;#$,(3$#(KKL(-M<;#;#(%2"%+<;,$E$5+ I 3;##<-;$,(2$(4,<4,;"+%;,$(3J&5(3<-&E$5+(3$ 2J$E42%-$E$5+(<N(2$(3<-&E$5+($#+(#+<-O"( 1./0P(.M<,38 (

"#$%&'$()'($*&+,-,./)($0'/ 1 +2%+3/$0#0)%'04"+5*&+54""/*&+ 6 )2/&+)$78'49$%8:0;(*&++<=>.?+,%&'@ 1 2%+50&&/A0"%'04"+5*&+54""/*& 6 2*&+#0):0*$&+B+&'4)C*$+&4"'+5/)4A84&/&+*"+"+ D24)&+5*+'*22*+A%"0E$*+B+)*+;(*+A+D24)&+<AF"@+ &4"'+&(##0&%"'&+84($+$*)4"&'0'(*$+2*+#0):0*$+ <,(D20(&?+G"*A4&7"*?+>$**H%3*"@ "#$%&'$()'($*&+,-,./)($0'/ 1 ++I+#$**J$050"9+K+*'+)422(&04"+ 6 +("+4(+82(&0*($&+('020&%'*($&+8$4#0'*"'+5(+ &7&'EA*+&%"&+8%$'%9*$+2*($+$*&&4($)*& 6,$4D2EA*+L+/)$4(2*A*"'+5(+&7&'EA* 6.42('04"&+L 1 M'020&%'04"+5*&+'*):"0;(*+5N0")0'%'04"+B+2%+ 8%$'0)08%'04" 6 O/)4(3*$'*+5*&+$*&&4($)*&+5(+&7&'EA*+8$484$'04""*22*+B+ 2% 8%$'0)08%'04" 6,%7*A*"'+30$'(*2+4( A0)$4J8%7*A*"'+<G4P4Q%'04"@+ 1.($3*022*$+2*&+8%0$&++ "#$%&'$()'($*&+,-,./)($0'/ 1 ++I+&7D02+%''%)C+K+RO4()*($+-SS-T 6 M"+('020&%'*($+8*('+*"'$*$+5%"&+2*+$/&*%(+*"+ ('020&%"'+82(&0*($&+05*"'0'/& 6,$4D2EA*&+5%"&+2*&+&7&'EA*&+;(0+('020&*"'+2%+ $/820)%'04"+4(+2%+#$%9A*"'%'04"+5*+54""/*& 6.42('04"+<('480;(*@+L+2N05*"'0#0)%'04"+("0;(*+5*&+ $*&&4($)*&+5N("+"U(5+