Open In App

Lamport’s Algorithm for Mutual Exclusion in Distributed System

Prerequisite: Mutual exclusion in distributed systems

Lamport’s Distributed Mutual Exclusion Algorithm is a permission based algorithm proposed by Lamport as an illustration of his synchronization scheme for distributed systems. In permission based timestamp is used to order critical section requests and to resolve any conflict between requests. In Lamport’s Algorithm critical section requests are executed in the increasing order of timestamps i.e a request with smaller timestamp will be given permission to execute critical section first than a request with larger timestamp. In this algorithm:



Algorithm:

Message Complexity: Lamport’s Algorithm requires invocation of 3(N – 1) messages per critical section execution. These 3(N – 1) messages involves



Drawbacks of Lamport’s Algorithm:

Performance:

Advantages of Lamport’s Algorithm for Mutual Exclusion in Distributed System:

  1. Simplicity: Lamport’s algorithm is relatively easy to understand and implement compared to other algorithms for mutual exclusion in distributed systems.
  2. Fairness: The algorithm guarantees fairness by providing a total order of events that is used to determine the next process that can enter the critical section.
  3. Scalability: Lamport’s algorithm is scalable because it only requires each process to communicate with its neighbors, rather than all other processes in the system.
  4. Compatibility: The algorithm is compatible with a wide range of distributed systems and can be adapted to different network topologies and communication protocols. 

Disadvantages of Lamport’s Algorithm for Mutual Exclusion in Distributed System:

  1. Message Overhead: The algorithm requires a lot of message passing between processes to maintain the total order of events, which can lead to increased network traffic and latency.
  2. Delayed Execution: The algorithm can lead to delays in the execution of critical sections because a process may have to wait for messages to arrive from other processes before entering the critical section.
  3. Limited Performance: The algorithm may not perform well in systems with a high number of processes because of the increased message overhead and delayed execution.
  4. No Fault Tolerance: The algorithm does not provide any fault tolerance mechanism, which means that if a process fails or crashes, it may cause the entire system to fail or become unstable.

FAQs:

How does Lamport’s algorithm ensure mutual exclusion in a distributed system?
Lamport’s algorithm uses a permission-based approach and timestamps to order critical section requests and resolve any conflicts between them. Each process sends a request message to all other processes to enter the critical section, and the request is placed in the request queue of each process in the order of its timestamp. A process can enter the critical section if it has received a reply message from all other processes with a timestamp greater than its own, and its own request is at the top of its request queue.

What is the message complexity of Lamport’s algorithm?
Lamport’s algorithm requires 3(N-1) messages per critical section execution, where N is the number of processes in the system. These messages involve (N-1) request messages, (N-1) reply messages, and (N-1) release messages.

Is Lamport’s algorithm fault-tolerant?
No, Lamport’s algorithm does not provide any fault tolerance mechanism. If a process fails or crashes, it may cause the entire system to fail or become unstable.

Article Tags :