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
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 Ring Algorithm
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 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
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