0% found this document useful (0 votes)
78 views7 pages

Mutual Exclusion

1. There are two main approaches to achieving mutual exclusion in distributed systems: centralized and distributed. Centralized uses a master process to coordinate access to the critical section while distributed algorithms allow each process to independently decide when to enter the critical section. 2. Key distributed algorithms discussed include Lamport's algorithm using logical clocks, Ricart-Agrawala's algorithm using timestamps, and Maekawa's algorithm using authorizing subsets. Maekawa's algorithm can potentially lead to deadlocks which can be addressed using new message types. 3. Token-based distributed mutual exclusion algorithms use a token passing approach where only the process holding the token can enter the critical section. Examples include tree-based and ring-based

Uploaded by

Samit Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
78 views7 pages

Mutual Exclusion

1. There are two main approaches to achieving mutual exclusion in distributed systems: centralized and distributed. Centralized uses a master process to coordinate access to the critical section while distributed algorithms allow each process to independently decide when to enter the critical section. 2. Key distributed algorithms discussed include Lamport's algorithm using logical clocks, Ricart-Agrawala's algorithm using timestamps, and Maekawa's algorithm using authorizing subsets. Maekawa's algorithm can potentially lead to deadlocks which can be addressed using new message types. 3. Token-based distributed mutual exclusion algorithms use a token passing approach where only the process holding the token can enter the critical section. Examples include tree-based and ring-based

Uploaded by

Samit Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

1

Mutual Exclusion (ME)


In a single-processor system, ME can be achieved with
semaphores, lock variables, monitors, etc.
In dist systems, ME is more complex due to no sh-mem,
timing (comm delays and clocks) and ordering of events
Two basic approaches of ME in dist systems can be
identified:
Centralized: Master and slaves, master dictates actions
Distributed: each site decides on actions, based on own state
Distributed algorithms can be subdivided into:
Token based: a site is allowed in the CS if has a token. Tokens are
passed from site to site, in some priority order
Non-token based: site enters CS when an assertion becomes TRUE.
A site communicates with others to get information about the other
sites states, and based on this, decides whether assertions is TRUE or
FALSE. This communication is usually based on timestamps
ME requirements
For a solution to be correct, the algorithms must have the
following properties
Deadlock freedom
Starvation freedom
Fairness: give everyone a chance, in certain systems it also means
to execute the requests as they are made (e.g., Logical FIFO)
Performance metrics
Number of messages sent, received, or both
Synchronization delay
Response time
System throughput
Conditions under which must test performance
High vs. low load behaviors
Worst vs best vs average case behaviros
2
Simple Solution: Centralized ME
Centralized approach: Master holds a list of processes
requesting the CS; grants requests in some order (random,
FIFO, etc)
Advantages: fair, correct, no starvation, simple to
implement
Disadvantages: single point of failure and bottleneck
Bottleneck network congestion timeout
Master
Site 1
Site 3
Site 2
List of requests
Site 1 has critical section;
will yield to the master;
master will grant to site x
Distributed ME
Problem: if messages are not ordered correctly, the CS can
be acquired improperly (remember that if there are no global
timestamps, the earliest request should gain the CS)
In the example below, P3 thinks that P1 should have the CS
(P3 got P1s message first), while both P1 and P2 think that
P2 should have it.
In a distributed algorithm, the decision must made
independently from other nodes in the system, AND the
decision is the same.
Time P1 P2 P3
Request for CS
3
Distributed ME
Lamports algorithm solves the problem above, with the
logical clocks [Lamport 78: Clocks, Messages, and the
Pursuit of Happiness]
To request CS:
send req message M to all processes;
enQ M in its own queue
Upon receiving request from Pi: enQ and send ack
Upon receiving release from Pi: deQ
To release CS:
send ack message to all procs
remove it from Q
To acquire CS: enter CS when got a message with a larger
timestamp from every other proc AND has
own message with smallest TS in own Q
Note that to enter the CS, checks must only be made locally
Distributed ME
Ricart and Agrawalas Algorithm
To request CS:
send req message to M to all processes;
enQ M in its own queue
Upon receiving M from Pi:
If it doesnt have/want CS send ack
If it has CS, enQ request Pi:M
If it wants CS, either enQ or ack
To release CS:
send ack message to all procs in the Q
remove them (procs) from Q
To acquire CS: enter CS when got ack from every other
proc
4
Ricart and Agrawalas Algorithm (Cont)
The main idea is that lowest timestamp wins
Also, the acks AND permission messages are combined into acks,
which are only send out after a proc used the CS (if it has smaller
timestamp)
Example:
Node A req CS with ts=8, Node C with ts=12.
B acks both A&C
C acks A (smaller ts).
A uses CS, then sends ack to C.
A
B C
A
B C B C
A
8
8
8
12
12
12
ack
ack
ack
ack
Phase I Phase II Phase III
Maekawas Algorithm
Maekawa presents an algorithm where a subset of nodes can
give permission to a node to enter the CS
It is sufficient for a majority of the nodes to give permission
In Maekawas algorithm, |G| = sqrt(n)+1, G is the subset.
There are sqrt(n) subsets. By design, there is always a node in
the intersection of 2 subsets.
To request CS: send request message M to all processes in G(i)
Upon receiving a request M from Pi: if it hasnt sent a reply
since last release, send a reply. Otherwise, queue it
To release CS: send release to all procs in G(i)
Upon receiving a release from Pi: send a reply to head of Q and
remove it from Q; if Q is empty, update state (no reply sent)
To acquire CS: enter CS when got ack from all other proc in
G(i)
5
Maekawas Algorithm
For example, G(a) = {b, d, e}; G(c) = {a, b, f}; G(g) = {c, d, f}
Say sites a, c, g make requests simultaneously
If site b responds positively to a, what happens?
Site b queues the response to site c until it gets a release from
a,but it could send positive responses to site a
Meanwhile site f responds positively to site g, but then must
queue the request for site c
Eventually, site a will send a release to
its subset of nodes, and site b will then
respond positively to c
c
e
f
g
a
b
d
Maekawas Alg Problem
The biggest problem in Maekawas algorithm is that it may lead to
deadlocks. HOW? Homework: show a sequence of events that may
lead to deadlocks; due next class; simple answer.
Note that there is no ordering in the messages that are sent to the
subsets of authorizing nodes. Also, there are communication delays
that may cause the deadlocks.
Solution: One of the initiates a deadlock resolution phase.
New types of messages are needed:
FAILED: message sent to a site (after a REPLY) when a higher-
priority request was received. Its a
INQUIRE: message sent to a site to check whether the site was able to
acquire all locks
YIELD: a message sent in reply to INQUIRE message, releasing the
locks (in case it didnt get all locks)
GRANT: a message sent to a site, granting that site a lock
6
Maekawas Alg Modifications
Upon receiving a request M form Pi; if it hasnt sent a reply since last
release, send a reply. Ow, if new req. has a larger timestamp, send a
FAILED message; ow, if new req has a smaller timestamp, send a
INQUIRE message tot eh site of the previous REPLY.
Upon receiving an INQUIRE message, a site ignores it if it already got
all grants from its subset. If the site received a FAILED message from
any site, it sends a YIELD message. IF a site sent a YIELD message,
but got no GRANT message from another site in the request set, it
sends a YIELD message.
Upon receiving a YIELD from a site, a member of a request site
assumes that the site has release the locks and processes the request
normally.
Number of messages required for the algorithm to succeed?
Homework: show a sequence of events that solves the
deadlocks with new messages; due next class; simple
answer.
Token Based Dist ME
In the token based approaches to distributed ME, the general
correctness of the algorithm is easier to prove, since the site
will only go into the CS if it holds a token.
On the other hand, there are more problems to prove
freedom of starvation (since a site may retain a token
forever)
Another problem is when a site fails: there has to be a
regeneration of the tokens, which is similar to leader election
One representative algorithm for token-based tree-based ME
is Raymonds algorithm
7
Other Approaches
Rings: physical or logical (any physical interconnection, eg,
BUS, point-to-point nets, etc)
Usually uses a token: the proc that has the token enters the CS
Its fair, since CS is round-robin
Its correct, since there is a single token
Problems: lost-token, duplicated token. Need to be able to
detect and regenerate/delete token
If a process crashes/fails, what to do? Acks?
Msg/CS Delay Problems
Centralized
Distributed
Token ring
3
2(n-1)
0 to n-1
2
2(n-1)
0 to n-1
Coordinator crash
N points of failure
Lost/dupl token

You might also like