Distributed Mutual Exclusion
150 likes | 501 Views
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.
Distributed Mutual Exclusion
E N D
Presentation Transcript
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 • 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
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 • 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.
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 • An unordered group of processes on a network. • 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.
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