html5-img
1 / 16

Representing distributed algorithms

Representing distributed algorithms. Why do we need these? Don’t we already know a lot about programming? We need to capture the notions of atomicity, non-determinism, fairness etc. The program should be concise. Syntax & semantics: guarded actions. <guard G>  <action A>

ila-reeves
Download Presentation

Representing distributed algorithms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Representing distributed algorithms • Why do we need these? • Don’t we already know a • lot about programming? • We need to capture the notions of atomicity, non-determinism, fairnessetc. • The program should be concise

  2. Syntax & semantics: guarded actions <guard G><action A> is equivalent to if G then A Motivation: think message passing or event based systems

  3. Syntax & semantics: guarded actions • Sequential actions S0; S1; S2; . . . ; Sn • Alternative constructsif . . . . . . . . . . fi • Repetitive constructsdo . . . . . . . . . od The specification is useful for representing abstract algorithms, not executable codes.

  4. Syntax & semantics Alternative construct if G1 S1  G2 S2 …  GnSn fi When no guard is true, skip (do nothing). When multiple guards are true, the choice of the action to be executed is completely arbitrary (or non-deterministic).

  5. Syntax & semantics Repetitive construct do G1S1  G2 S2 .  Gn Sn od Keep executing the actions until all guards are false and the program terminates. When multiple guards are true, the choice of the action is arbitrary. • For most programs, we will utilize this construct. • For brevity, we will omit do/od

  6. Example: graph coloring j  neighbor(i): c(j) = c(i)  c(i) := 1-c(i) 1 0 0 Will the computation terminate? 1

  7. Example: graph coloring continued Instead of writing j  neighbor(i): c(j) = c(i)  c(i) := 1-c(i) We will write c(j) = c(i)  c(i) := 1-c(i)

  8. An example program uncertain; define x : integer; initially x = 0 do x < 4  x := x + 1  x = 3  x := 0 od Question. Will the program terminate? (Here fairness becomes an important issue)

  9. The adversary A distributed computation can be viewed as a game between the system and an adversary. The adversary comes up with feasible schedules to challenge the system, and a correct algorithm must have an adequate response to meet the challenge.

  10. Non-determinism Non-determinism is abundant in the real world. Determinism is a special case of non-determinism. (Program for a token server - it has a single token} repeat if (req1 and token) then give the token to client1 elseif (req2 and token) then give the token to client2 elseif (req3 and token) then give the token to client3 forever Now, assume that all three requests are sent simultaneously. Client 1 always gets the token! Token server 3 1 2

  11. Atomic = all or nothing Atomic actions = indivisible actions do red  x:= 0 {red action}  blue  x:=7 {blue action} od Regardless of how nondeterminism is handled, we would expect that the value of x will be an arbitrary sequence of 0's and 7's. Right or wrong? Atomicity (or granularity) x The answer depends on atomicity

  12. {Program for P} define b: boolean initially b = true do b  send msg m to Q ¬ empty(R,P) receive msg; b := false od Suppose it takes 15 seconds to send the message. After 5 seconds, P receives a message from R. Will it stop sending the remainder of the message? NO. Atomicity R P Q b

  13. Fairness Defines the choices or restrictions on the scheduling of actions. No such restriction implies an unfair scheduler. For fair schedulers, the following types of fairness have received attention: • Unconditional fairness • Weak fairness • Strong fairness

  14. Program test define x : integer {initial value unknown} do true  x : = 0  x = 0  x : = 1  x = 1  x : = 2 od An unfair schedulermay never schedule the second (or the third actions). So, x may always be equal to zero. An unconditionally fair scheduler will eventually give every statement a chance to execute without checking their eligibility. (Example: process scheduler in a multiprogrammed OS.) Fairness

  15. Program test define x : integer {initial value unknown} do true  x : = 0  x = 0  x : = 1  x = 1  x : = 2 od A scheduler is weakly fair, when it eventually executes every guarded action whose guard becomes true, and remains true thereafter A weakly fair scheduler will eventually execute the second action, but may never execute the third action. Why? Weak fairness

  16. Program test define x : integer {initial value unknown} do true  x : = 0  x = 0  x : = 1  x = 1  x : = 2 od A scheduler is strongly fair, when it eventually executes every guarded action whose guard is true infinitely often. The third statement will be executed under a strongly fair scheduler. Why? Strong fairness

More Related