Selected topics in distributed computing Shmuel Zaks

Slides:



Advertisements
Similar presentations
Impossibility of Distributed Consensus with One Faulty Process
Advertisements

CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Consensus Steve Ko Computer Sciences and Engineering University at Buffalo.
Chapter 6 - Convergence in the Presence of Faults1-1 Chapter 6 Self-Stabilization Self-Stabilization Shlomi Dolev MIT Press, 2000 Shlomi Dolev, All Rights.
Vered Gafni – Formal Development of Real Time Systems 1 Statecharts Semantics.
Distributed Computing 1. Lower bound for leader election on a complete graph Shmuel Zaks ©
Snap-stabilizing Committee Coordination Borzoo Bonakdarpour Stephane Devismes Franck Petit IEEE International Parallel and Distributed Processing Symposium.
Distributed Computing 2. Leader Election – ring network Shmuel Zaks ©
Distributed Computing 8. Impossibility of consensus Shmuel Zaks ©
Self Stabilizing Algorithms for Topology Management Presentation: Deniz Çokuslu.
Announcements. Midterm Open book, open note, closed neighbor No other external sources No portable electronic devices other than medically necessary medical.
Outline. Theorem For the two processor network, Bit C(Leader) = Bit C(MaxF) = 2[log 2 ((M + 2)/3.5)] and Bit C t (Leader) = Bit C t (MaxF) = 2[log 2 ((M.
CSCE 668 DISTRIBUTED ALGORITHMS AND SYSTEMS Fall 2011 Prof. Jennifer Welch CSCE 668 Self Stabilization 1.
Lecture 4: Elections, Reset Anish Arora CSE 763 Notes include material from Dr. Jeff Brumfield.
UBE529 Distributed Algorithms Self Stabilization.
Distributed Computing 8. Impossibility of consensus Shmuel Zaks ©
Introduction to Self-Stabilization Stéphane Devismes.
Chapter 8 - Self-Stabilizing Computing1 Chapter 8 – Self-Stabilizing Computing Self-Stabilization Shlomi Dolev MIT Press, 2000 Draft of January 2004 Shlomi.
CPSC 668Set 3: Leader Election in Rings1 CPSC 668 Distributed Algorithms and Systems Spring 2008 Prof. Jennifer Welch.
Chapter 4 - Self-Stabilizing Algorithms for Model Conservation4-1 Chapter 4: roadmap 4.1 Token Passing: Converting a Central Daemon to read/write 4.2 Data-Link.
Termination Detection Presented by: Yonni Edelist.
CPSC 668Self Stabilization1 CPSC 668 Distributed Algorithms and Systems Spring 2008 Prof. Jennifer Welch.
CS294, YelickSelf Stabilizing, p1 CS Self-Stabilizing Systems
Self-Stabilization An Introduction Aly Farahat Ph.D. Student Automatic Software Design Lab Computer Science Department Michigan Technological University.
Binary Self - Stabilization By: Sukumar Ghosh Presented By: Ilan Cohen.
The stabilizing token ring in three bits Mohamed G. Gouda F. Furman Haddix Presented by: Marc Segal.
Message Passing Systems A Formal Model. The System Topology – network (connected undirected graph) Processors (nodes) Communication channels (edges) Algorithm.
Message Passing Systems A Formal Model. The System Topology – network (connected undirected graph) Processors (nodes) Communication channels (edges) Algorithm.
Regular Model Checking Ahmed Bouajjani,Benget Jonsson, Marcus Nillson and Tayssir Touili Moran Ben Tulila
Distributed Computing 5. Snapshot Shmuel Zaks ©
On Probabilistic Snap-Stabilization Karine Altisen Stéphane Devismes University of Grenoble.
Distributed Computing 5. Synchronization Shmuel Zaks ©
Representing distributed algorithms Why do we need these? Don’t we already know a lot about programming? Well, you need to capture the notions of atomicity,
On Probabilistic Snap-Stabilization Karine Altisen Stéphane Devismes University of Grenoble.
Distributed Algorithms – 2g1513 Lecture 9 – by Ali Ghodsi Fault-Tolerance in Distributed Systems.
Fault-containment in Weakly Stabilizing Systems Anurag Dasgupta Sukumar Ghosh Xin Xiao University of Iowa.
Snap-Stabilizing PIF and Useless Computations Alain Cournier, Stéphane Devismes, and Vincent Villain ICPADS’2006, July , Minneapolis (USA)
CS4231 Parallel and Distributed Algorithms AY 2006/2007 Semester 2 Lecture 10 Instructor: Haifeng YU.
Consensus and Its Impossibility in Asynchronous Systems.
Distributed Computing 3. Leader Election – lower bound for ring networks Shmuel Zaks ©
Fault-containment in Weakly Stabilizing Systems Anurag Dasgupta Sukumar Ghosh Xin Xiao University of Iowa.
By J. Burns and J. Pachl Based on a presentation by Irina Shapira and Julia Mosin Uniform Self-Stabilization 1 P0P0 P1P1 P2P2 P3P3 P4P4 P5P5.
The Complexity of Distributed Algorithms. Common measures Space complexity How much space is needed per process to run an algorithm? (measured in terms.
Autonomic distributed systems. 2 Think about this Human population x10 9 computer population.
Program correctness The State-transition model A global states S  s 0 x s 1 x … x s m {s k = set of local states of process k} S0  S1  S2  Each state.
Weak vs. Self vs. Probabilistic Stabilization Stéphane Devismes (CNRS, LRI, France) Sébastien Tixeuil (LIP6-CNRS & INRIA, France) Masafumi Yamashita (Kyushu.
Hwajung Lee. Why do we need these? Don’t we already know a lot about programming? Well, you need to capture the notions of atomicity, non-determinism,
Self-stabilization. What is Self-stabilization? Technique for spontaneous healing after transient failure or perturbation. Non-masking tolerance (Forward.
CS 542: Topics in Distributed Systems Self-Stabilization.
CSCE 668 DISTRIBUTED ALGORITHMS AND SYSTEMS Spring 2014 Prof. Jennifer Welch CSCE 668 Set 3: Leader Election in Rings 1.
1 Fault tolerance in distributed systems n Motivation n robust and stabilizing algorithms n failure models n robust algorithms u decision problems u impossibility.
Fault tolerance and related issues in distributed computing Shmuel Zaks GSSI - Feb
Fault tolerance and related issues in distributed computing Shmuel Zaks GSSI - Feb
Self-stabilization. Technique for spontaneous healing after transient failure or perturbation. Non-masking tolerance (Forward error recovery). Guarantees.
Fault tolerance and related issues in distributed computing Shmuel Zaks GSSI - Feb
Hwajung Lee.  Technique for spontaneous healing.  Forward error recovery.  Guarantees eventual safety following failures. Feasibility demonstrated.
Program Correctness. The designer of a distributed system has the responsibility of certifying the correctness of the system before users start using.
Fault tolerance and related issues in distributed computing Shmuel Zaks GSSI - Feb
Superstabilizing Protocols for Dynamic Distributed Systems Authors: Shlomi Dolev, Ted Herman Presented by: Vikas Motwani CSE 291: Wireless Sensor Networks.
1 Fault-Tolerant Consensus. 2 Communication Model Complete graph Synchronous, network.
Fault tolerance and related issues in distributed computing Shmuel Zaks GSSI - Feb
ITEC452 Distributed Computing Lecture 15 Self-stabilization Hwajung Lee.
1 Distributed Vertex Coloring. 2 Vertex Coloring: each vertex is assigned a color.
By J. Burns and J. Pachl Presented by: Irina Shapira Julia Mosin February1999 February 1999 Uniform Self-Stabilization.
Snap-Stabilizing Depth-First Search on Arbitrary Networks Alain Cournier, Stéphane Devismes, Franck Petit, and Vincent Villain OPODIS 2004, December
Self-Stabilizing Systems
Computer Science 425/ECE 428/CSE 424 Distributed Systems (Fall 2009) Lecture 20 Self-Stabilization Reading: Chapter from Prof. Gosh’s book Klara Nahrstedt.
第1部: 自己安定の緩和 すてふぁん どぅゔぃむ ポスドク パリ第11大学 LRI CNRS あどばいざ: せばすちゃ てぃくそい
New Variants of Self-Stabilization
Parallel and Distributed Algorithms
CS60002: Distributed Systems
Presentation transcript:

Selected topics in distributed computing Shmuel Zaks

l'Aquila, Distributed Computing, 12-14/1/092 Part 1: Part 1: Self stabilization

l'Aquila, Distributed Computing, 12-14/1/093 A new approach to fault tolerance A unified approach to transient failures by formally incorporating them into the design model

l'Aquila, Distributed Computing, 12-14/1/094 shared memory, synchronous x x x x x x x x x x clock synchronization Part 3.1: Clock synchronization (of Gouda and Herman)

l'Aquila, Distributed Computing, 12-14/1/095 Program at each processor p : choose a neighbor x of p ; if t(p) = t(x) then t(p):= t(p)+1; Stabilizing if all start with the same time, however …

l'Aquila, Distributed Computing, 12-14/1/ Is it stabilizing? no! (may even deadlock) if t(p) = t(x) then t(p):= t(p)+1;

l'Aquila, Distributed Computing, 12-14/1/097 Program at each processor p : choose a neighbor x of p ; if t(p) = t(x) then t(p):= t(p)+1; Is it stabilizing? if t(p) < t(x) then t(p):= t(x);

l'Aquila, Distributed Computing, 12-14/1/ x x x x x 8 8 x x 8 x 8 x x 8 Is it stabilizing?yes! if t(p) = t(x) then t(p):= t(p)+1; if t(p) < t(x) then t(p):= t(x);

l'Aquila, Distributed Computing, 12-14/1/ x x x x x 9 9 x x 8 x 8 x x 8 Is it stabilizing?no! if t(p) = t(x) then t(p):= t(p)+1; if t(p) < t(x) then t(p):= t(x);

l'Aquila, Distributed Computing, 12-14/1/0910 Program at each processor p : choose a neighbor x of p if t(p) = t(x) then t(p):= t(p)+1; if t(p) < t(x) then t(p):= t(x); fairly; Is it stabilizing? yes!

l'Aquila, Distributed Computing, 12-14/1/0911 proof

l'Aquila, Distributed Computing, 12-14/1/ n=5, range(S)=7-4=3, top(S)=2 S:

l'Aquila, Distributed Computing, 12-14/1/ n=5, range(S 1 )=7-7=0, top(S 1 )=5 S1:S1: x x x x x

l'Aquila, Distributed Computing, 12-14/1/ n=5, range(S 2 )=8-7=1, top(S 2 )=2 S2:S2: x x x x x

l'Aquila, Distributed Computing, 12-14/1/ n=5, range(S 3 )=9-8=1, top(S 3 )=2 S3:S3: x x x x x x x x x x

l'Aquila, Distributed Computing, 12-14/1/ hw: prove. Use for: correctness (especially termination) + complexity S :

l'Aquila, Distributed Computing, 12-14/1/0917 distributed control ring of (finite-state machine) processes for each machine define privileges (when a transition is enabled) nodes are influenced only by neighbors legitimate states in each legitimate state there is at least one privileged machine in each legitimate state each possible move will bring the system again to a legitimate state Part 3.2: Mutual exclusion (Dijkstra’s 1 st algorithm)

l'Aquila, Distributed Computing, 12-14/1/0918 A system is self-stabilizing if, regardless of the initial state and regardless of the privilege selected each time for the next move, at least one privilege will always be present and the system is guaranteed to find itself in a legitimate state after a finite number of moves.

l'Aquila, Distributed Computing, 12-14/1/0919 non-stable states stable states Finite number of transitions

l'Aquila, Distributed Computing, 12-14/1/0920 Token ring. N machines, denoted 0 through N-1. A machine is priviliged (“has token”) or not priviliged. daemon/scheduler determines which of the priviliged machines will make the next move Legitimate States: all states with exactly one privileged machine. In Dijkstra’s model:

l'Aquila, Distributed Computing, 12-14/1/0921 Notes to consider: scheduler (daemon) : points at each time to one of the privileged machines, or point at each time to one of the machines. centralized scheduler, distributed scheduler fairness: Do we need fairness, and of what kind? Unconditional Fairness: Each machine gets pointed to infinitely often. Type of fairness: - each machine is pointed at infinitely often, - round robin, or - other.

l'Aquila, Distributed Computing, 12-14/1/0922 N processors 0,1,…,N-1 Solution with k-state Machines machine P 0 if x[0] = x[N-1] then x[0] := x[0]+1 mod k machine P i ( i= 1,2,…,N-1) if x[i] ≠ x[i-1] then x[i] := x[i-1] Dijkstra’s 1 st algorithm

l'Aquila, Distributed Computing, 12-14/1/ p0p0 p3p3 p1p1 p2p2 N=4, K=3 State : 0,1,2

l'Aquila, Distributed Computing, 12-14/1/ p0p0 p3p3 p1p1 p2p2 machine P 0 : if x[0] = x[N-1] then x[0] := x[0]+1 mod k

l'Aquila, Distributed Computing, 12-14/1/ p0p0 p3p3 p1p1 p2p2 machine P i : if x[i] ≠ x[i-1] then x[i] := x[i-1]

l'Aquila, Distributed Computing, 12-14/1/ p0p0 p3p3 p1p1 p2p2 machine P i : if x[i] ≠ x[i-1] then x[i] := x[i-1] machine P 0 : if x[0] = x[N-1] then x[0] := x[0]+1 mod k So far:

l'Aquila, Distributed Computing, 12-14/1/ p0p0 p3p3 p1p1 p2p2 machine P i : if x[i] ≠ x[i-1] then x[i] := x[i-1] machine P 0 : if x[0] = x[N-1] then x[0] := x[0]+1 mod k K=3 Etc… Example 1

l'Aquila, Distributed Computing, 12-14/1/ p0p0 p3p3 p1p1 p2p2 machine P i : if x[i] ≠ x[i-1] then x[i] := x[i-1] machine P 0 : if x[0] = x[N-1] then x[0] := x[0]+1 mod k K= Etc… Example 2

l'Aquila, Distributed Computing, 12-14/1/ p0p0 p3p3 p1p1 p2p2 machine P i : if x[i] ≠ x[i-1] then x[i] := x[i-1] machine P 0 : if x[0] = x[N-1] then x[0] := x[0]+1 mod k K= Etc… Example 3

l'Aquila, Distributed Computing, 12-14/1/0930 Informally: “If machine is privileged, then make it non-privileged”. Note: machine P i : if x[i] ≠ x[i-1] then x[i] := x[i-1] machine P 0 : if x[0] = x[N-1] then x[0] := x[0]+1 mod k

l'Aquila, Distributed Computing, 12-14/1/0931 Legitimate States: exactly one privileged machine p0p0 p3p3 p1p1 p2p K=2 1 1 machine P i : if x[i] ≠ x[i-1] then x[i] := x[i-1] machine P 0 : if x[0] = x[N-1] then x[0] := x[0]+1 mod k 0

l'Aquila, Distributed Computing, 12-14/1/0932 Legitimate States …… K–1 K–1 K–1 …… K-1 K–1 K–1 K– … … K–1 K–1 K–1 K–1 K–1

l'Aquila, Distributed Computing, 12-14/1/0933 Goal: Show that from an arbitrary state, the system stabilizes to a legitimate state in a finite number of steps. Intuition:   N=5, K = 5 N=5, K = 4

l'Aquila, Distributed Computing, 12-14/1/ N=5, K = 3 hw: can you get to this configuration? hw: which configurations have the same property? (Check also for all other examples.)

l'Aquila, Distributed Computing, 12-14/1/0935 Theorem: Assuming a centralized scheduler: starting with any initial configuration, Dijkstra’s 1st algorithm stabilizes iff K > N-2.

l'Aquila, Distributed Computing, 12-14/1/0936 Lemma 2: (liveness) At every configuration, at least one machine is privileged. Lemma 3: Starting from any configuration, P 0 will eventually make a move. Corollary: Starting at any configuration, P 0 will make an infinite number of steps. (this still does not guarantee stabilization.) machine P i : if x[i] ≠ x[i-1] then x[i] := x[i-1] machine P 0 : if x[0] = x[N-1] then x[0] := x[0]+1 mod k Lemma 1: If all states are equal then the system is stabilized. (Hw)

l'Aquila, Distributed Computing, 12-14/1/0937 Definition: P i is called special in a configuration if Lemma 4: If P 0 is special in a configuration, then the system will eventually stabilize. Lemma 5: If in a configuration one of the states is missing, then the system will eventually stabilize. machine P i : if x[i] ≠ x[i-1] then x[i] := x[i-1] machine P 0 : if x[0] = x[N-1] then x[0] := x[0]+1 mod k

l'Aquila, Distributed Computing, 12-14/1/0938 Theorem: Assuming a centralized scheduler: starting with any initial configuration, Dijkstra’s 1st algorithm stabilizes iff K > N-2. Proof: Case 1: K< N-1 Case 2: K = N-1 Case 3: K = N Case 4: K > N

l'Aquila, Distributed Computing, 12-14/1/0939 Theorem: Assuming a centralized scheduler: starting with any initial configuration, Dijkstra’s 1st algorithm stabilizes iff K > N-2. Proof: (e.g., N=4, k=2) Case 1. k < N-1

l'Aquila, Distributed Computing, 12-14/1/0940 Theorem: Assuming a centralized scheduler: starting with any initial configuration, Dijkstra’s 1st algorithm stabilizes iff K > N-2. Proof: Case 4. k > N … Lemma 5

l'Aquila, Distributed Computing, 12-14/1/0941 Theorem: Assuming a centralized scheduler: starting with any initial configuration, Dijkstra’s 1st algorithm stabilizes iff K > N-2. Proof: Case 3. k = N … Lemma 5 Either one state is missing, or all states are distinct. … Lemma 4

l'Aquila, Distributed Computing, 12-14/1/0942 Theorem: Assuming a centralized scheduler: starting with any initial configuration, Dijkstra’s 1st algorithm stabilizes iff K > N-2. Proof: Case 2. k = N - 1 … Lemma 5 Either one state is missing, or one state occurs twice.

l'Aquila, Distributed Computing, 12-14/1/0943 … Lemma 4Either P 0 is special, or x[0] = x[i] i < N-1 i = N-1 P 0 is not enabled, and after any other move there is a mising state, and … Lemma 5. If P i, i 0 makes a move, there is missing state, and done by Lemma 5. If P 0 makes a move, we get back to the previous case. So, one state occurs twice.

l'Aquila, Distributed Computing, 12-14/1/0944 Theorem: Assuming a distrubted scheduler: starting with any initial configuration, Dijkstra’s 1st algorithm stabilizes iff K > N-1. hw: prove

l'Aquila, Distributed Computing, 12-14/1/0945 S = a configuration (a system state) r(S) = number of maximal runs of equal states Example: S = , f(S) = 4 r(S) + 1 if first(S) = last(S) f(S) = r(S) otherwise. Note: S is legitimate iff f(S) = 2. Use of a potential function

l'Aquila, Distributed Computing, 12-14/1/0946 Show: If K > N and f(S) > 2, then f(S) never increases and is eventually decreased. Recall: A common technique to prove termination and correctness Hw: 1. finish the proof. 2. use f to analyze complexity

l'Aquila, Distributed Computing, 12-14/1/0947 Applications Distributed data structures Digital and analog circuits Genetic algorithms Network protocols Sensor networks Some general comments on self stabilization

l'Aquila, Distributed Computing, 12-14/1/0948 is a special kind of fault tolerance guarantees an automatic recovery from a transient failure as a design goal is a too strong property and thus either too difficult to achieve or achieved at the expense of other goals Self stabilization

l'Aquila, Distributed Computing, 12-14/1/0949 Uniform protocol : same program at each processor Theorem: There is no uniform protocol that solves the mutual exclusion problem (under either a centralized or a distributed scheduler) Back to Dijkstra’s algorithm machine P i : if x[i] ≠ x[i-1] then x[i] := x[i-1] machine P 0 : if x[0] = x[N-1] then x[0] := x[0]+1 mod k

l'Aquila, Distributed Computing, 12-14/1/ p0p0 p3p3 p1p1 p2p2 0 0 p6p6 p5p

l'Aquila, Distributed Computing, 12-14/1/0951 N processors 0,1,…,N-1 Solution with 3-state Machines P 0: if x[0] +1=x[1] then x[0]:=x[0]-1 P N-1 : if (x[N-2] =x[0]) (x[N-1]≠ x[0]+1) then x[N-1]:=x[0]+1; P i ( i= 1,2,…,N-2) : if (x[i]+1=x[i-1]) (x[i]+1=x[i+1]) then x[i] := x[i]+1; Part 3.3: Mutual exclusion (Dijkstra’s 3 rd algorithm)

l'Aquila, Distributed Computing, 12-14/1/ p0p0 p4p4 p1p1 p2p2 State : 0,1,2 p3p3 0

l'Aquila, Distributed Computing, 12-14/1/0953 P 0: if x[0] +1=x[1] then x[0]:=x[0] p0p0 p4p4 p1p1 p2p2 p3p3 0

l'Aquila, Distributed Computing, 12-14/1/0954 P N-1 : if (x[N-2] =x[0]) (x[N-1]≠ x[0]+1) then x[N-1]:=x[0]+1; p0p0 p4p4 p1p1 p2p2 p3p3 0

l'Aquila, Distributed Computing, 12-14/1/0955 P i ( i= 1,2,…,N-2) : if (x[i]+1=x[i-1]) (x[i]+1=x[i+1]) then x[i] := x[i]+1; p0p0 p4p4 p1p1 p2p2 p3p3 0

l'Aquila, Distributed Computing, 12-14/1/0956 P i ( i= 1,2,…,N-2) : if (x[i]+1=x[i-1]) (x[i]+1=x[i+1]) then x[i] := x[i]+1; p0p0 p4p4 p1p1 p2p2 p3p3 0

l'Aquila, Distributed Computing, 12-14/1/0957 P i ( i= 1,2,…,N-2) : if (x[i]+1=x[i-1]) (x[i]+1=x[i+1]) then x[i] := x[i]+1; p0p0 p4p4 p1p1 p2p2 p3p3 0

l'Aquila, Distributed Computing, 12-14/1/ p0p0 p4p4 p1p1 p2p2 p3p3 0

l'Aquila, Distributed Computing, 12-14/1/ p0p0 p4p4 p1p1 p2p2 p3p3 1 If all are in the same state? if (x[N-2] =x[0]) & (x[N-1]≠ x[0]+1) then x[N-1]:=x[0]+1; if (x[i]+1=x[i-1]) v (x[i]+1=x[i+1]) then x[i] := x[i]+1; 2 2 if x[0] +1=x[1] then x[0]:=x[0]

l'Aquila, Distributed Computing, 12-14/1/

l'Aquila, Distributed Computing, 12-14/1/0961 For two neighbors

l'Aquila, Distributed Computing, 12-14/1/0962 s: f(s) = number of + 2 x number of f(s) = x 1 = 6

l'Aquila, Distributed Computing, 12-14/1/0963

l'Aquila, Distributed Computing, 12-14/1/0964 Lemma 1: If there is a unique arrow in a configuration, then it moves back and forth infinitely. Corollary: It suffices to show that from any configuration we eventually reach a configuration with a unique arrow. Lemma 2: (liveness) Starting from any initial configuration, at least one process is priveleged.

l'Aquila, Distributed Computing, 12-14/1/0965 Lemma 3: Starting from any configuration, eventually. Proof: if during an execution -. else - f=0, but then there is no arrow, and in the next step there is a unique arrow, and then apply Lemma 1.

l'Aquila, Distributed Computing, 12-14/1/0966 Lemma 4: Between every two successive moves of P N-1 there is at least one move of P 0. Proof: recall: the program for P N-1 : if (x[N-2] =x[0]) (x[N-1]≠ x[0]+1) then x[N-1]:=x[0]+1; After P N-1 makes a step x[N-1]=x[0]+1, And this condition makes P N-1 non-privileged. This condition can become true only after P 0 makes a step [ P 0: if x[0] +1=x[1] then x[0]:=x[0]-1 ].

l'Aquila, Distributed Computing, 12-14/1/0967 Lemma 5: A sequence of moves in which P 0 does not move is finite. (therefore – impossible by Lemma 2) Proof: by Lemma 4 – in such a sequence P N-1 makes at most one step. so, from some point only P i makes a steps,. steps 1,2,3,4,5. 1,2 – no change in arrows 3,4,5 – decrease no. of arrows..

l'Aquila, Distributed Computing, 12-14/1/0968 Lemma 5: A sequence of moves in which P 0 does not move is finite. (therefore – impossible by Lemma 2) Proof (cont.): from some point only steps 1 and 2. Follows from topology.

l'Aquila, Distributed Computing, 12-14/1/0969 Theorem: Starting from any initial configuration, the system eventually stabilizes. Proof: by Lemma 5 P 0 makes infinite no. of moves. P 0 … P 0 … P 0 … P 0 … P 0 … …

l'Aquila, Distributed Computing, 12-14/1/0970 Proof (cont.) P 0 … P 0 … P 0 … P 0 … P 0 … … phases “there exists a rightmost arrow, and it points to the right” Falsified in each phase. P 0 … P 0 … P 0 … P 0 … P 0 … … F T F T F T F T F T

l'Aquila, Distributed Computing, 12-14/1/0971 This is done only in steps 3, 4, ok so, assume only 3 and 4. in each phase: they have Δf=-3. 0 and 7 Δf<=2. others Δf=0. so, each phase f is decreased by at least 1.

l'Aquila, Distributed Computing, 12-14/1/0972 Complexity? (following Chernoy, Shalom and Z.) hw:

l'Aquila, Distributed Computing, 12-14/1/0973 E. W. Dijkstra, Self-stabilizing systems in spite of distributed control, CACM, 17,11, 1974, pp E. W. Dijkstra, A belated proof of self-stabilization, Distributed Computing, 1, 1, 1986, pp M. G. Gouda and T. Herman, Stabilizing Unison, Department of Computer Science, V. Chernoy, M. Shalom and S. Zaks, A Self- stabilizing algorithm with tight bounds for mutual exclusion on a ring, DISC References