Title: Distributed Mutual Exclusion
1Distributed Mutual Exclusion
- Synchronization in Distributed Systems
- Synchronization in distributed systems are often
more difficult compared to synchronization
in uniprocessor and multiprocessor systems.
2Synchronization in Distributed Systems
- Synchronization in time achieved by Clock
Synchronization algorithms - Synchronization between resources - Mutual
Exclusion algorithms - Synchronization in activities - Distributed
Transaction paradigms
3Distributed 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.
4Distributed 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.
5Distributed 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
6Distributed Mutual Exclusion
- Mutual Exclusion Algorithms
- Centralized algorithms
- Distributed algorithms
- Token ring algorithm
7Mutual Exclusion centralized Algorithm
- Process 1 asks the coordinator for permission to
enter a critical region. Permission is granted - Process 2 then asks permission to enter the same
critical region. The coordinator does not reply. - When process 1 exits the critical region, it
tells the coordinator, when then replies to 2
8Centralized 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
9Mutual Exclusion Distributed Algorithm
- Two processes want to enter the same critical
region at the same moment. - Process 0 has the lowest timestamp, so it wins.
- When process 0 is done, it sends an OK also, so 2
can now enter the critical region.
10Distributed 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
11A Token Ring Algorithm
- An unordered group of processes on a network.
- A logical ring constructed in software.
12Token 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
13Comparison
- 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
14References
- 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.pap
er.html