Jump to content

Lamport's distributed mutual exclusion algorithm: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Line 32: Line 32:


==See also==
==See also==
* [[Ricart-Agrawala algorithm]]
* [[Ricart-Agrawala algorithm]] (an improvement over Lamport's algorithm)
* [[Lamport's bakery algorithm|Lamport's Bakery Algorithm]]
* [[Lamport's bakery algorithm|Lamport's Bakery Algorithm]]
* [[Raymond's Algorithm]]
* [[Raymond's Algorithm]]

Revision as of 22:04, 19 June 2012

Lamport's Distributed Mutual Exclusion Algorithm is a contention-based algorithm for mutual exclusion on a distributed system.

Algorithm

Nodal properties

  1. Every process maintains a queue of pending requests for entering critical section order. The queues are ordered by virtual time stamps derived from Lamport timestamps.[1]

Algorithm

Requesting process

  1. Enters its request in its own queue (ordered by time stamps)
  2. Sends a request to every node.
  3. Wait for replies from all other nodes.
  4. If own request is at the head of the queue and all replies have been received, enter critical section.
  5. Upon exiting the critical section, send a release message to every process.

Other processes

  1. After receiving a request, send a reply and enter the request in the request queue (ordered by time stamps)
  2. After receiving release message, remove the corresponding request from the request queue.
  3. If own request is at the head of the queue and all replies have been received, enter critical section.

Message complexity

This algorithm creates 3(N − 1) messages per request, or (N − 1) messages and 2 broadcasts.

Drawbacks

  1. There exist multiple points of failure.

See also

References

  1. ^ Kshemkalyani, A., & Singhal, M. Chapter 9: Distributed Mutual Exclusion Algorithms. Distributed Computing: Principles, Algorithms, and Systems (Page 10 of 93). Cambridge University Press.