150 likes | 478 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.
E N D
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