Distributed Mutual Exclusion
• Synchronization in Distributed Systems
Synchronization in distributed systems are often more difficult
compared to synchronization in uniprocessor and multiprocessor
systems.
Synchronization in Distributed
Systems
 Synchronization in time – achieved by Clock
Synchronization algorithms
 Synchronization between resources - Mutual
Exclusion algorithms
 Synchronization in activities - Distributed
Transaction paradigms
Distributed Mutual Exclusion
 Mutual Exclusion
Mutual exclusion (often abbreviated to mutex) algorithms are
used in concurrent programming to avoid the simultaneous use
of a common resource, such as a global variable, by pieces
of computer code called critical sections.
Distributed Mutual Exclusion
 Critical Sections
In concurrent programming a critical section is a piece of code
that accesses a shared resource (data structure or device) that
must not be concurrently accessed by more than one thread of
execution. A critical section will usually terminate in fixed
time, and a thread, task or process will only have to wait a fixed
time to enter it. Some synchronization mechanism is required at
the entry and exit of the critical section to ensure exclusive
use, for example a semaphore.
Distributed Mutual Exclusion
 Achieving Mutual exclusion
 Hardware solutions - Disabling interrupts on entry into the
critical section
 System variables - By using semaphores implemented as
Locks
 Software solutions - Mutual Exclusion Algorithms
Distributed Mutual Exclusion
 Mutual Exclusion Algorithms
 Centralized algorithms
 Distributed algorithms
 Token ring algorithm
Mutual Exclusion – centralized Algorithm
a) Process 1 asks the coordinator for permission to enter a critical
region. Permission is granted
b) Process 2 then asks permission to enter the same critical
region. The coordinator does not reply.
c) When process 1 exits the critical region, it tells the
coordinator, when then replies to 2
Centralized Algorithm – Advantages Vs
Disadvantages
 Advantages
 Fair algorithm, grants in the order of requests
 The scheme is easy to implement
 Scheme can be used for general resource allocation
 Shortcomings
 Single point of failure. No fault tolerance
 Confusion between No-reply and permission denied
 Performance bottleneck of single co-ordinator in a large
system
Mutual Exclusion – Distributed Algorithm
a) Two processes want to enter the same critical region at the
same moment.
b) Process 0 has the lowest timestamp, so it wins.
c) When process 0 is done, it sends an OK also, so 2 can now
enter the critical region.
Distributed Algorithm – Advantages Vs
Disadvantages
 Advantages
 Single point of failure is overcome by keeping the system
running even if one processes fail
 No bottleneck on one process
 Shortcomings
 2(n-1) messages or more than that
 Waiting for n-1 processes to accept is overkill
 Improvements
 Group membership for easy communication
A Token Ring Algorithm
a) An unordered group of processes on a
network.
b) A logical ring constructed in software.
Token Ring Algorithm – Advantages Vs
Disadvantages
 Advantages
 No co-ordinator and does not depend on other
processes
 On Crash token is just passed on to the neighbour
 Shortcomings
 Only a physical Q, no logical Q
 Loss of token – Regeneration of tokens
 Difficulty in finding the token crash – The
processor might be alive
Comparison
 A comparison of three mutual exclusion algorithms.
Algorithm
Messages per
entry/exit
Delay before entry
(in message times)
Problems
Centralized 3 2 Coordinator crash
Distributed 2 ( n – 1 ) 2 ( n – 1 ) Overkill in waiting
Token ring 1 to 0 to n – 1
Lost token on
process crash
References
 Distributed systems – Principles and Paradigms
– Andrew S Tanenbaum
 A Survey of Mutual-Exclusion Algorithms for
Multiprocessor Operating Systems
http://www.teamten.com/lawrence/242.paper/242.paper.html

dos mutual exclusion algos

  • 1.
    Distributed Mutual Exclusion •Synchronization in Distributed Systems Synchronization in distributed systems are often more difficult compared to synchronization in uniprocessor and multiprocessor systems.
  • 2.
    Synchronization in Distributed Systems Synchronization in time – achieved by Clock Synchronization algorithms  Synchronization between resources - Mutual Exclusion algorithms  Synchronization in activities - Distributed Transaction paradigms
  • 3.
    Distributed Mutual Exclusion Mutual Exclusion Mutual exclusion (often abbreviated to mutex) algorithms are used in concurrent programming to avoid the simultaneous use of a common resource, such as a global variable, by pieces of computer code called critical sections.
  • 4.
    Distributed Mutual Exclusion Critical Sections In concurrent programming a critical section is a piece of code that accesses a shared resource (data structure or device) that must not be concurrently accessed by more than one thread of execution. A critical section will usually terminate in fixed time, and a thread, task or process will only have to wait a fixed time to enter it. Some synchronization mechanism is required at the entry and exit of the critical section to ensure exclusive use, for example a semaphore.
  • 5.
    Distributed Mutual Exclusion Achieving Mutual exclusion  Hardware solutions - Disabling interrupts on entry into the critical section  System variables - By using semaphores implemented as Locks  Software solutions - Mutual Exclusion Algorithms
  • 6.
    Distributed Mutual Exclusion Mutual Exclusion Algorithms  Centralized algorithms  Distributed algorithms  Token ring algorithm
  • 7.
    Mutual Exclusion –centralized Algorithm a) Process 1 asks the coordinator for permission to enter a critical region. Permission is granted b) Process 2 then asks permission to enter the same critical region. The coordinator does not reply. c) When process 1 exits the critical region, it tells the coordinator, when then replies to 2
  • 8.
    Centralized Algorithm –Advantages Vs Disadvantages  Advantages  Fair algorithm, grants in the order of requests  The scheme is easy to implement  Scheme can be used for general resource allocation  Shortcomings  Single point of failure. No fault tolerance  Confusion between No-reply and permission denied  Performance bottleneck of single co-ordinator in a large system
  • 9.
    Mutual Exclusion –Distributed Algorithm a) Two processes want to enter the same critical region at the same moment. b) Process 0 has the lowest timestamp, so it wins. c) When process 0 is done, it sends an OK also, so 2 can now enter the critical region.
  • 10.
    Distributed Algorithm –Advantages Vs Disadvantages  Advantages  Single point of failure is overcome by keeping the system running even if one processes fail  No bottleneck on one process  Shortcomings  2(n-1) messages or more than that  Waiting for n-1 processes to accept is overkill  Improvements  Group membership for easy communication
  • 11.
    A Token RingAlgorithm a) An unordered group of processes on a network. b) A logical ring constructed in software.
  • 12.
    Token Ring Algorithm– Advantages Vs Disadvantages  Advantages  No co-ordinator and does not depend on other processes  On Crash token is just passed on to the neighbour  Shortcomings  Only a physical Q, no logical Q  Loss of token – Regeneration of tokens  Difficulty in finding the token crash – The processor might be alive
  • 13.
    Comparison  A comparisonof three mutual exclusion algorithms. Algorithm Messages per entry/exit Delay before entry (in message times) Problems Centralized 3 2 Coordinator crash Distributed 2 ( n – 1 ) 2 ( n – 1 ) Overkill in waiting Token ring 1 to 0 to n – 1 Lost token on process crash
  • 14.
    References  Distributed systems– Principles and Paradigms – Andrew S Tanenbaum  A Survey of Mutual-Exclusion Algorithms for Multiprocessor Operating Systems http://www.teamten.com/lawrence/242.paper/242.paper.html