Hwajung Lee. The State-transition model The set of global states = s 0 x s 1 x … x s m {s k is the set of local states of process k} S0  S1  S2  Each.

Slides:



Advertisements
Similar presentations
CS 267: Automated Verification Lecture 8: Automata Theoretic Model Checking Instructor: Tevfik Bultan.
Advertisements

Partial Order Reduction: Main Idea
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
Program correctness The State-transition model A global state S  s 0 x s 1 x … x s m {s k = local state of process k} S0  S1  S2  … Each state transition.
PROTOCOL VERIFICATION & PROTOCOL VALIDATION. Protocol Verification Communication Protocols should be checked for correctness, robustness and performance,
Hoare’s Correctness Triplets Dijkstra’s Predicate Transformers
Process Synchronization Continued 7.2 The Critical-Section Problem.
Multiprocessor Synchronization Algorithms ( ) Lecturer: Danny Hendler The Mutual Exclusion problem.
Distributed Computing 8. Impossibility of consensus Shmuel Zaks ©
Distributed Computing 5. Snapshot Shmuel Zaks ©
Sept COMP60611 Fundamentals of Parallel and Distributed Systems Lecture 12 The Critical Section problem John Gurd, Graham Riley Centre for Novel.
Distributed Computing 8. Impossibility of consensus Shmuel Zaks ©
Lecture 2: Reasoning with Distributed Programs Anish Arora CSE 6333.
Concurrency in Distributed Systems: Mutual exclusion.
Operating Systems CSE 411 CPU Management Oct Lecture 13 Instructor: Bhuvan Urgaonkar.
Distributed Mutual Exclusion
Distributed Computing 5. Snapshot Shmuel Zaks ©
Selected topics in distributed computing 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,
Correctness requirements. Basic Types of Claims Basic assertions End-state labels Progress-state labels Accept-state labels Never claims Trace assertions.
Sept COMP60611 Fundamentals of Parallel and Distributed Systems Lecture 15 More Advanced Program Properties: Temporal logic and jSpin John Gurd,
Concurrency. A process is a program executing on a virtual computer Processor speed and multiplexing of shared resources are ignored Order of thread execution.
Reading and Writing Mathematical Proofs Spring 2015 Lecture 4: Beyond Basic Induction.
The Complexity of Distributed Algorithms. Common measures Space complexity How much space is needed per process to run an algorithm? (measured in terms.
Chapter 5: Sequences, Mathematical Induction, and Recursion 5.5 Application: Correctness of Algorithms 1 [P]rogramming reliability – must be an activity.
Program correctness The State-transition model The set of global states = so x s1 x … x sm {sk is the set of local states of process k} S0 ---> S1 --->
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Global States Steve Ko Computer Sciences and Engineering University at Buffalo.
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.
Defining Liveness by Bowen Alpern and Fred B. Schneider Presented by Joe Melnyk.
Hwajung Lee. The State-transition model The set of global states = s 0 x s 1 x … x s m {s k is the set of local states of process k} S0  S1  S2  Each.
Physical clock synchronization Question 1. Why is physical clock synchronization important? Question 2. With the price of atomic clocks or GPS coming down,
Hwajung Lee. Well, you need to capture the notions of atomicity, non-determinism, fairness etc. These concepts are not built into languages like JAVA,
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,
ITEC452 Distributed Computing Lecture 6 Mutual Exclusion Hwajung Lee.
Several sets of slides by Prof. Jennifer Welch will be used in this course. The slides are mostly identical to her slides, with some minor changes. Set.
Self-stabilization. What is Self-stabilization? Technique for spontaneous healing after transient failure or perturbation. Non-masking tolerance (Forward.
Hwajung Lee. Mutual Exclusion CS p0 p1 p2 p3 Some applications are:  Resource sharing  Avoiding concurrent update on shared data  Controlling the.
Hwajung Lee. Mutual Exclusion CS p0 p1 p2 p3 Some applications are: 1. Resource sharing 2. Avoiding concurrent update on shared data 3. Controlling the.
CIS 720 Lecture 5. Techniques to avoid interference Disjoint variables –If the write set of each process is disjoint from the read and write set of other.
Fault tolerance and related issues in distributed computing Shmuel Zaks GSSI - Feb
Model Checking Lecture 1. Model checking, narrowly interpreted: Decision procedures for checking if a given Kripke structure is a model for a given formula.
Ordering of Events in Distributed Systems UNIVERSITY of WISCONSIN-MADISON Computer Sciences Department CS 739 Distributed Systems Andrea C. Arpaci-Dusseau.
Program Correctness. The designer of a distributed system has the responsibility of certifying the correctness of the system before users start using.
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
Presented by: Belgi Amir Seminar in Distributed Algorithms Designing correct concurrent algorithms Spring 2013.
CSE 486/586 CSE 486/586 Distributed Systems Global States Steve Ko Computer Sciences and Engineering University at Buffalo.
Model Checking Lecture 1: Specification Tom Henzinger.
Hwajung Lee. Mutual Exclusion CS p0 p1 p2 p3 Some applications are:  Resource sharing  Avoiding concurrent update on shared data  Controlling the.
Agenda  Quick Review  Finish Introduction  Java Threads.
Semaphores Chapter 6. Semaphores are a simple, but successful and widely used, construct.
Introduction to distributed systems description relation to practice variables and communication primitives instructions states, actions and programs synchrony.
Proof of liveness: an example
Model and complexity Many measures Space complexity Time complexity
Lecture 3: State, Detection
Hwajung Lee ITEC452 Distributed Computing Lecture 8 Representing Distributed Algorithms.
Self-stabilization.
Atomicity, Non-determinism, Fairness
CS60002: Distributed Systems
ITEC452 Distributed Computing Lecture 5 Program Correctness
Presented By: Raquel Whittlesey-Harris 12/04/02
Mutual Exclusion CS p0 CS p1 p2 CS CS p3.
Semaphores Chapter 6.
Abstraction.
Physical clock synchronization
Linear Time Properties
ITEC452 Distributed Computing Lecture 7 Mutual Exclusion
CIS 720 Lecture 5.
CIS 720 Lecture 5.
Proof of liveness: an example
Presentation transcript:

Hwajung Lee

The State-transition model The set of global states = s 0 x s 1 x … x s m {s k is the set of local states of process k} S0  S1  S2  Each transition is caused by an action by an eligible process. We reason using interleaving semantics action state Initial state transition

 Safety properties ▪ Bad things never happen  Liveness properties ▪ Good things eventually happen

Testing: Apply inputs and observe if the outputs satisfy the specifications. Fool proof testing can be painfully slow, even for small systems. Most testing are partial. Proof: Has a mathematical foundation, and a complete guarantee. Sometimes not scalable.

To test this program, you have to test all possible interleavings. With n processes p 0, p 1, … p n-1, and m steps per process, the number of interleavings is (n.m)! (m!) n The state explosion problem p0p1p2p3 step 1 step 2 step 3

Process 0Process 1 do true  Entry protocolCritical sectionExit protocolod Safety properties (1) There is no deadlock (2) At most one process enters the critical section. Liveness property A process trying to enter the CS must eventually succeed. (This is also called the progress property) CS

program mutex 1 {two process mutual exclusion algorithm: shared memory model} define busy :shared boolean (initially busy = false} {process 0}{process 1} do true  do busy  skip od;do busy  skip od;busy:= true; critical section;critical section busy := false;busy := false{remaining codes}od Does this mutual exclusion protocol satisfy liveness and safety properties?

Invariant means: a logical condition which should always be true. 1. The mutual exclusion problem. N CS ≤ 1, where N CS is the Total number of processes in CS at any time producer consumer buffer 2. Producer-consumer problem. 0 ≤ N P - N C ≤ buffer capacity (N P = no. of items produced, N C = no. of items consumed)

What can be a safety invariant for the readers and writers problem? Let N W denote the number of writer processes updating the file and N R denote the number of reader processes reading the file.  ((N W ≤ 1) Λ (N R =0)) V ((N W =0) Λ (N R ≥0))

Color the nodes of a graph so that no two adjacent nodes have the same color. program colorme {for process P i } define color c  {0, 1} Initially colors are arbitrary do  j : j  neighbor(i) :: (c[i] = c[j])  c[i] := 1 - c[i] od Is the program partially correct? YES (why?) Does it terminate? NO (why?) p1 p3p0 p

Eventuality is tricky. There is no need to guarantee when the desired thing will happen, as long as it happens.

Progress Properties  If the process want to enter its critical section, it will eventually do.  No deadlock? No livelock? Reachability Properties : The question is that S t is reachable from S 0 ?  The message will eventually reach the receiver.  The faulty process will be eventually be diagnosed Fairness Properties : The question is if an action will eventually be scheduled. Termination Properties  The program will eventually terminate.

 Since testing is not a feasible way of demonstrating the correctness of program in a distributed system, we will use some form of mathematical reasoning as follows:  Assertional reasoning of proving safety properties  Use of well-founded sets of proving liveness properties  Programming logic  Predicate transformers

 Example: Prove that P P V Q  Pure propositional logic is not adequate for proving the properties of a program, since propositions can not be related to program variables or program state. Yet, an extension of propositional logic, called predicate logic, will be used for proving the properties.

 Predicate logic is an extension of propositional logic cf. A proposition is a statement that is either true or false.  A predicate specifies the property of an object or a relationship among objects. A predicate is associated with a set, whose properties are often represented using the universal quantifier (for all) and the existential quantifier (there exists). : :: (ex)  j: j  N(i) :: c[j] = c[i] +1 mod 3

define c1, c2 : channel; {init c1 =  c2 =  } r, t : integer; {init r = 5, t = 5} {program for T} 1do t > 0  send msg along c1; t := t -1 2  ¬empty (c2)  rcv msg from c2; t := t + 1 od {program for R} 3do ¬empty (c1)  rcv msg from c1; r := r+1 4  r > 0  send msg along c2; r := r-1 od We want to prove the safety property P: P  n1 + n2 ≤ 10 transmitter receiver n1= # of messages in c1 n2= # of messages in c2

n1, n2 = # of msg in c1and c2 respectively. We will establish the following invariant: I  (t ≥ 0)  (r ≥ 0)  (n1 + t + n2 + r = 10) (I implies P). Check if I holds after every action. {program for T} 1do t > 0  send msg along c1; t := t -1 2  ¬empty (c2)  rcv msg from c2; t := t+1 od {program for R} 3do ¬empty (c1)  rcv msg from c1; r := r+1 4  r > 0  send msg along c2; r := r-1 od Use the method of induction

S1  S2  S3  S4   f  f w1w2w3w4 o w1, w2, w3, w4  WF o WF is a well-founded set whose elements can be ordered by ] If there is no infinite chain like w1 ] w2 ] w3 ] w4..., i.e. f(s i ) ] f(s i+1 ) ] f(s i+2 )... Global state then the computation will definitely terminate! f is called a variant functionExample?

c[0] c[n-1] c[3] c[2] c[1] Clock phase synchronization System of n clocks ticking at the same rate. Each clock is 3-valued, i,e it ticks as 0, 1, 2, 0, 1, 2… A failure may arbitrarily alter the clock phases. The clocks need to return to the same phase.

Clock phase synchronization {Program for each clock} (c[k] = phase of clock k, initially arbitrary) do  j: j  N(i) :: c[j] = c[i] +1 mod 3  c[i] := c[i] + 2 mod 3   j: j  N(i) :: c[j] ≠ c[i] +1 mod 3  c[i] := c[i] + 1 mod 3 od Show that eventually all clocks will return to the same phase (convergence), and continue to be in the same phase (closure) c[k]  {0,1,2} c[0] c[n-1] c[3] c[2] c[1]

Let D = d[0] + d[1] + d[2] + … + d[n-1] d[i] = 0 if no arrow points towards clock i ; = i + 1 if a  pointing towards clock i ; = n - i if a  pointing towards clock i ; = 1 if both  and  point towards clock i. By definition, D ≥ 0. Also, D decreases after every step in the system. So the number of arrows must reduce to Understand the game of arrows