110 likes | 173 Views
Explore program computation in self-stabilizing systems, focusing on token ring stabilization problem. Understand the recovery process from different states and examine the impact of faults on system behavior. Investigate recovery guarantees and domain restrictions for variable values.
E N D
Consider nonmasking Fault-Tolerance • Invariant • Fault-Span • Program computation that starts from fault-span is guaranteed to reach invariant? • What if Fault-span = set of all states? • Such systems are called self-stabilizing
Defining stabilization • Starting from an arbitrary state, program eventually recovers to states from where subsequent computations are legitimate (i.e., meet the specification)
Token ring stabilization problem • Two problem cases: • no token • several tokens • Both cases are hard to detect locally • how can we make them easier to detect and/or correct locally? 4
Example • Consider a ring of processes 0..n • Each process has a variable x • Variable of j is x.j • Suppose x.j is an integer for now
Actions • At process j, j > 0 • x.j ≠ x.(j-1) x.j = x.(j-1) • At process 0 • x.0 = x.N x.0 = x.N+1 • Let initial state be such that all x values are 0
What if faults change value of x? • Can we show that recovery will be guaranteed from an arbitrary state • Assume that no processes actually fail.
What if we restrict domain of x? • Let x be from 0..M-1 • Change action at 0 as • x.0 = x.N x.0 = (x.N+1) mod M • What if M =2 (Assume N is arbitrary) • What if M = N?