Upload
akhil-sharma
View
199
Download
4
Embed Size (px)
Citation preview
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 grantedb) 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.
AlgorithmMessages 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 – 1Lost 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