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-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-7C#O#(.6-76#*(=#,-.-#7=7-7.)",-.-#7=7-7.) " # $%&'$%&'$%( # )% - " - ( P=#;<0/#*>#/6.(G&#@066&4(0=*#O#>=#,-.-#*>#434-5',(.6-7#? " * $%&+ " '$%&'$%( # )% " # $%&'$%&+ ( '$%( * )% D>.*6>()&-#K,-.-#)0@.)#AC#,-.-#E9C#,-.-#EFC#,-.-#)0@.)#BL - ( - ". (. " P=&#)%%=($#@066&4(0=*#O#>=&#-6.=47-70=#*+>=#,-.-#O#>=#.>-6>7-&#O#>=#,H,=&'&=-#? & ( C#6 ( C#& D #0>#6 D # " * $%&+ " $%+, " '$%&'$%( # )% " * $%&+ " '$%&+ ( '$%( * )% " * $%&'$%&+ ( $%+, ( '$%( * )% :;$#&%,@>-70=#(.6-7@>)756&#*>#434-5',(.6-7#@066&4(0=*#O#0;#@G&'7=&'&=-#*.=4# @&#/6.(G&#O#(.6-76#*&#)+,-.-#7=7-7.)" - " " # $%&+ " '$%&'$%( * )%. ". ( - ( " * $%&'$%&+ ( '$%( # )%. (. ".%&#*+',-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+