mutual exclusion presented by: rohan sen (distributed algorithms ch. 10)
TRANSCRIPT
Mutual Exclusion
Presented by: Rohan Sen(Distributed Algorithms Ch. 10)
Topics that will be covered
Overview and problem statement
Dijkstra’s Mutual Exclusion Algorithm
Stronger Conditions for Mutual Exclusion Algorithms
Lockout-free Mutual Exclusion Algorithms
Single-Writer Shared Register Algorithms
The Bakery Algorithm
Conclusion
Overview
The shared memory model Every process is a kind of state machine
Set of states Three kinds of actions: input, output, internal
All communication via the shared memory Exists a transition relation for all states
System is input-enabled Not output and internal enabled
Locality restrictions Restrictions on shared variable operations
The problem
Allocation of single, indivisible, non-shareable resource among n users
Steps by a user Trying protocol Critical region Exit protocol Remainder (non-critical
region)
U
try
crit
exit
rem
External interface of a user
The problem (contd.)
A shared memory system solves the mutual exclusion problem when the following conditions are satisfied:Well-formednessMutual exclusionProgress
Dijkstra’s Mutual Exclusion Alg.
ConceptUse a two stage flag to indicate what stage of
processing a user is inEnsure mutual exclusion by ensuring that only
one flag at a time has a value to let it into the critical region
Dijkstra’s Mutual Exclusion Alg.
}2,1,0{)(:1,},......,1{
iflagniieveryfornturn
turn rd / wr by all processes, intially arbitrary flag(i) rd by all / wr by I, initially 0
Shared Variables
Dijkstra’s Mutual Exclusion Alg.
i
i
i
i
remiflag
exit
critLgotothenjflagif
doijforiflag
iturnthenturnflagifdoiturnwhile
iflagLtry
0:)(
........
2)(
2:)(:0)(
1:)(:
Dijkstra’s Mutual Exclusion Alg.
Guarantees well-formednessPer inspection of the code
Satisfies mutual exclusionBy status of flag
Guarantees progressMore complex proof
Stronger Conditions
FairnessNo lockouts or starvationsKinds of fairness
Low level fairness High level fairness
Stronger Conditions (contd.)
Lockout freedom Any user that reaches T eventually enters C Any user that reaches E eventually enters R
Time bound If each user returns resource within time c and each
step is at most l, then you enter C at most b = f(l,c) after entering T
Similarly, you enter R at most b = f(l,c) after entering E.
Number of bypasses
PetersonNP Algorithm
ConceptThere are k levels
At each level eliminate one user n – k processes can win at level k Only one process can win at level n – 1, yielding
mutual exclusion
PetersonNP Algorithm
}1,........,0{)(:1,},.....1{)(
:}1,.......,1{
niflagniieveryfornkturnnkeveryfor
turn(k) rd / wr by all, initially arbitrary flag(i) rd by all j ≠ i / wr by I, initially 0
Shared variables
PetersonNP Algorithm
i
i
i
i
remiflag
exit
critikturnorkjflagijwaitfor
ikturnkiflagdontokfor
try
0:)(
......
])([])(:[:)(:)(
11
PetersonNP Algorithm
Is well formed Satisfies mutual exclusion Guarantees progress Lockout free
Alg. Using Single Writer Shared Registers (BurnsME Algorithm) Concept
Check if anyone else is trying to get a lockLay claim on the lockCheck againProceed
BurnsME Algorithm
}1,0{)(:1,
iflagniieveryfor
Shared variables flag(i) wr by i / rd by all j ≠ I, initially 0
BurnsME Algorithm
i
i
i
i
remiflag
exit
critMgotojflagifdonjijforMLgotojflagif
doijjforiflag
Lgotojflagifdoijjfor
iflagLtry
0:)(
......
1)(1,:
1)(11,
1:)(1)(11,
0:)(:
BurnsME Algorithm
Is well formed Guarantees mutual exclusion Guarantees progress
Bakery Algorithm
ConceptFIFO after a wait-free doorwayDoorway is:
Everyone picks a number Waits for everyone to finish
Break ties and enter critical zone
Bakery Algorithm
)(}1,0{)(:1,
inumberichoosng
niieveryfor
Shared variables
choosng(i) wr by i / rd by all j ≠ I, initially 0
number(i) wr by i / rd by all j ≠ I, initially 0
Bakery Algorithm
i
i
i
j
i
reminumber
exit
critjjnumberiinumberorjberwaitfornum
jchoosngwaitfordoijforichoosng
jnumberinumberichoosng
try
0:)(
......
)),(()),((0)(0)(
0:)()(max1:)(
1:)(1
Bakery Algorithm
Is well formed Satisfies mutual exclusion Guarantees progress Guarantees lockout freedom
Lower bound on # registers
Cannot solve mutual exclusion with <n shared variablesSingle writer shared variablesMulti writer shared variables
Conclusion
Mutual exclusion: One at a time access to a shared resource
Mutual exclusion w/o fairness Mutual exclusion w/ fairness Minimizing the number of registers
Questions?