A Mutual Exclusion Algorithm for Ad Hoc Mobile Networks

Slides:



Advertisements
Similar presentations
CS542 Topics in Distributed Systems Diganta Goswami.
Advertisements

4/12/2015© 2009 Raymond P. Jefferis IIILect Internet Protocol - Continued.
Lecture 8: Asynchronous Network Algorithms
Token-Dased DMX Algorithms n LeLann’s token ring n Suzuki-Kasami’s broadcast n Raymond’s tree.
Process Synchronization Continued 7.2 The Critical-Section Problem.
CS 582 / CMPE 481 Distributed Systems
Ordering and Consistent Cuts Presented By Biswanath Panda.
CPSC 689: Discrete Algorithms for Mobile and Wireless Systems Spring 2009 Prof. Jennifer Welch.
Operating Systems, 2011, Danny Hendler & Amnon Meisels 1 Distributed Mutual Exclusion  Introduction  Ricart and Agrawala's algorithm  Raymond's algorithm.
Distributed Token Circulation in Mobile Ad Hoc Networks Navneet Malpani, Intel Corp. Nitin Vaidya, Univ. Illinois Urbana-Champaign Jennifer Welch, Texas.
Performance Comparison of Existing Leader Election Algorithms for Dynamic Networks Mobile Ad Hoc (Dynamic) Networks: Collection of potentially mobile computing.
1 Prioritized h-out of-k Resource Allocation for Mobile Ad Hoc Networks and Distributed Systems Jehn-Ruey Jiang Hsuan Chuang University HsinChu, Taiwan.
Distributed process management: Distributed deadlock
Computer Science Lecture 12, page 1 CS677: Distributed OS Last Class Vector timestamps Global state –Distributed Snapshot Election algorithms.
CIS 720 Distributed algorithms. “Paint on the forehead” problem Each of you can see other’s forehead but not your own. I announce “some of you have paint.
Dr. Kalpakis CMSC 621, Advanced Operating Systems. Fall 2003 URL: Distributed Mutual Exclusion.
A Highly Adaptive Distributed Routing Algorithm for Mobile Wireless Networks Research Paper By V. D. Park and M. S. Corson.
DISTRIBUTED TOKEN CIRCULATION ON MOBILE AD HOC NETWORKS.
1 A Mutual Exclusion Algorithm for Ad Hoc Mobile networks Presentation by Sanjeev Verma For COEN th Nov, 2003 J. E. Walter, J. L. Welch and N. Vaidya.
Leader Election Algorithms for Mobile Ad Hoc Networks Presented by: Joseph Gunawan.
4.5 DISTRIBUTED MUTUAL EXCLUSION MOSES RENTAPALLI.
4.5 Distributed Mutual Exclusion Ranjitha Shivarudraiah.
Computer Science Lecture 12, page 1 CS677: Distributed OS Last Class Vector timestamps Global state –Distributed Snapshot Election algorithms –Bully algorithm.
CS425 /CSE424/ECE428 – Distributed Systems – Fall 2011 Material derived from slides by I. Gupta, M. Harandi, J. Hou, S. Mitra, K. Nahrstedt, N. Vaidya.
1 Distributed Process Management Chapter Distributed Global States Operating system cannot know the current state of all process in the distributed.
Presenter: Long Ma Advisor: Dr. Zhang 4.5 DISTRIBUTED MUTUAL EXCLUSION.
Leader Election and Mutual Exclusion Algorithms for Wireless Ad Hoc Networks. CPSC 661 Distributed Algorithms Abhishek Gaurav Alok Madhukar.
AODV: Introduction Reference: C. E. Perkins, E. M. Royer, and S. R. Das, “Ad hoc On-Demand Distance Vector (AODV) Routing,” Internet Draft, draft-ietf-manet-aodv-08.txt,
A Tree Based Algorithm fro Distributed Mutual Exclusion Addy Gronquist 11/19/2003.
Page 1 Mutual Exclusion & Election Algorithms Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content.
Lecture 12-1 Computer Science 425 Distributed Systems CS 425 / CSE 424 / ECE 428 Fall 2012 Indranil Gupta (Indy) October 4, 2012 Lecture 12 Mutual Exclusion.
Lecture 7- 1 CS 425/ECE 428/CSE424 Distributed Systems (Fall 2009) Lecture 7 Distributed Mutual Exclusion Section 12.2 Klara Nahrstedt.
Chapter pages1 Distributed Process Management Chapter 14.
Mutual Exclusion Algorithms. Topics r Defining mutual exclusion r A centralized approach r A distributed approach r An approach assuming an organization.
CS 6401 Intra-domain Routing Outline Introduction to Routing Distance Vector Algorithm.
CSC 8420 Advanced Operating Systems Georgia State University Yi Pan Transactions are communications with ACID property: Atomicity: all or nothing Consistency:
Revisiting Logical Clocks: Mutual Exclusion Problem statement: Given a set of n processes, and a shared resource, it is required that: –Mutual exclusion.
The Principles of Operating Systems Chapter 9 Distributed Process Management.
GeoTORA: A Protocol for Geocasting in Mobile Ad Hoc Networks
Author:Zarei.M.;Faez.K. ;Nya.J.M.
4.5 Distributed Mutual Exclusion
Synchronization: Distributed Deadlock Detection
Parallel and Distributed Simulation
Mutual Exclusion Continued
Distributed Mutual Exclusion
Practical Session 13 Distributed synchronization
Internet Networking recitation #4
ODMRP Enhancement.
Sensor Network Routing
Distributed Mutex EE324 Lecture 11.
Lecture 9: Asynchronous Network Algorithms
任課教授:陳朝鈞 教授 學生:王志嘉、馬敏修
Temporally-Ordered Routing Algorithm (TORA)
by Saltanat Mashirova & Afshin Mahini
Comparison between Suzuki Kasami’s and Raymond’s Tree Algorithm
Raymond'S Tree DMX Algorithm
Fault-tolerant Consensus in Directed Networks Lewis Tseng Boston College Oct. 13, 2017 (joint work with Nitin H. Vaidya)
Intradomain Routing Outline Introduction to Routing
Distributed Mutual Exclusion
Raymond Exclusive Algorithm
Outline Distributed Mutual Exclusion Introduction Performance measures
CSE 486/586 Distributed Systems Mutual Exclusion
Synchronization (2) – Mutual Exclusion
Distributed Mutual Exclusion
Distributed algorithms
Distributed Systems and Concurrency: Synchronization in Distributed Systems Majeed Kassis.
Distributed Mutual eXclusion
CSE 486/586 Distributed Systems Mutual Exclusion
Synchronizers Outline motivation principles and definitions
M. Mock and E. Nett and S. Schemmer
Presentation transcript:

A Mutual Exclusion Algorithm for Ad Hoc Mobile Networks Jennifer E. Walter, Jennifer L. Welch, and Nitin H. Vaidya

Introduction Ad-Hoc Wireless Network – definition Mobility causes link failures. Unpredictable message delays Previous work – Routing protocols Broadcasting and Multicasting in Ad-Hoc wireless networks Use Ad-Hoc Routing, or take mobility into account.

Critical Section Problem Only one node may be in its critical section at a time. CS may be a block of code, or a resource. There should be no starvation. The CS must be granted only by request. Typical algorithms may be inefficient if run on an Ad-Hoc wireless network.

The General Approach Impose a logical DAG on the network. The token circulates in the network. All nodes in the DAG “point” toward the node that is holding the token. Based on Raymond’s token-based ME algorithm, which was based on a static spanning tree. Here, the DAG is dynamic.

The Approach (Continued) Use a partial reversal technique to maintain DAG. Each node has height, chooses its lowest neighbor as the preferred link to the token holder. Each node keeps a local request queue.

Definitions There are n independent, mobile nodes, uniquely numbered 0, …, n – 1. Nodes are either in REMAINDER, WAITING, or CRITICAL sections. Nodes do not fail. Nodes are aware of link failures and recovery in the network. Communication is reliable on a per-hop basis, and incipient link failures are detectable. The network does not partition. All links are bidirectional.

Input and Output Events Request CS_i Release CS_i Recv_i(j, m) LinkUp_i(l) LinkDown_i(l) EnterCS_i Send_i(j, m) Application vs. Network Events

Constraints C_0 initial configuration C_k is based on C_{k – 1} and in_k, following the transition function’s rules. Times assigned to the steps are nondecreasing. If the execution is infinite, then the times must increase without bound. If there is a requestCS at node i, then the previous application event was a releaseCS. If there is a releaseCS at a node, then the last application event at that node must be an enterCS

Constraints (Con’t) For every EnterCS_i, there is a following ReleaseCS_i. Given link l joins i and j, iff linkUp_i(l) occurs at time t, then so does linkUp_j(l). The same is true of LinkDown. A linkdown event cannot occur while messages are in transit on l.

Variables in the Algorithm status = REMAINDER. N = set of neighboring nodes. myHeight(h1, h2, i) totally orders nodes. The DAG initially points at node 0, which starts with height (0, 0, 0). height(j) is the height of the neighboring nodes. tokenHolder = true if this node holds the token

Variables (Continued) next = i, if i holds the token, otherwise, it is the node on the lowest outgoing link. Q = Queue of requesting neighbors. Q is empty initially. receivedLI[j] = true. Has a linkInfo message been received from j, to which a token was recently sent. forming[j] = true only after LinkUp(j) and before LinkInfo message is received. formHeight[j] is an array of tuples storing the value of myHeight when new link to j is first detected. formHeight = myHeight in the beginning.

When node i requests access to the CS: status := WAITING Enqueue(Q, i) if (!tokenHolder) if (length(Q) = 1) ForwardRequest() else GiveTokenToNext() When node I releases the CS: if (length(Q) > 0) GiveTokenToNext() Status := REMAINDER

When Request(h) received at node i from node j. if (receivedLI[j]) height[j] := h if (myHeight < height[j]) Enqueue(Q, j) if (tokenholder) if (length(Q) > 0) and (status = REMAINDER) GiveTokenToNext() else // not the holder if (myHeight < height[k], for all k in N) RaiseHeight() else if ((Q = [j]) or (length(Q) > 0)and (myheight < height[next])) ForwardRequest() // reroute request

When failure of link to j detected at node i N := N – {j} Delete(Q, j) ReceivedLI[j] = true if (!tokenHolder) if (myHeight < height[k], for all k in N) RaiseHeight() // reroute request else if ((length(Q) > 0) and (next not in N)) ForwardRequest()

When formation of link to j detected at node i Send LinkInfo(myHeight) to j forming[j] := true formheight[j] := myHeight Procedure ForwardRequest() next := l in N, where height[l] <= height[j] for all j in N send Request(myHeight) to next

Procedure GiveTokentoNext() // Called when length(Q) > 0 next = dequeue(Q) if (next != i) tokenHolder := false height[next] = (myHeight.h1, myHeight.h2 – 1, next) ReceivedLI[next] := false Send Token(myHeight) to next if (length(Q) > 0) send Request(myHeight) to next else { status := CRITICAL Enter CS }

Procedure RaiseHeight() myHeight.h1 = 1 + min_{k in N} {height[k].h} s := {the set of l in N, height[l].h1 = myHeight.h1} if (s is not empty) myHeight.h2 = min_{l in s} height[l].h2 – 1 send LinkInfo(myHeight) to all k in set N. for all k in N such that (myHeight > height[k]) Delete(Q, k) if (length(Q) > 0) ForwardRequest()

Simulation Results 30 nodes, exponential rate of link failures and creations due to mobility exponential rate of requests compared only to Raymond’s algorithm no routing overhead taken into consideration did 4 tests, and this algorithm RL outperformed Raymond’s (RR) on only some of them.