Power Point for Presentation

advertisement
Adaptive and Efficient
Mutual Exclusion
By Hagit Attya and Vita Bortnikov
Presented by:
Mian Huang
1
Talk Outline

Introduction
 Related Work
 Preliminaries
 Algorithms
 Future Work
2
Introduction
 Mutual Exclusion Problem
 Limitations of most of current solutions
 Adaptive solutions
 Contributions of this Paper
- Adaptive algorithms using only read and write operations that achieve:
 Remote step complexity O(k), where k is actual contention
 System response time O(log k)
 Space complexity
 Long-lived renaming - O(nN) where N is the range of processes’
names
 One-shot renaming – O(n2) where n is total # of processes
3
Related Work
 Dijkstra 1965.
 Lamport 1987.
A fast mutual exclusion algorithm
 Alur and Taubenfeld 1992.
Results about fast mutual exclusion
 Step complexity could not be adaptive for any asynchronous Algo.
 Choy and Singh 1994.
Adaptive solutions to the mutual exclusion problem
 Without assuming hardware-provided synchronization primitives
 Performance to be governed solely by # of contending processes
4
Preliminaries
 Adaptive algorithms
 Point contention (strongest)
 Interval contention
 Renaming algorithms(getName/releaseName)
 Long-lived
 One-shot
 Non-wait-free algorithms
5
Preliminaries (Cont.)
 The Computation Model
A standard asynchronous shared-memory model of computation.
 n processes
 Multi-writer multi-reader registers
 shared primitives – atomic read/write registers
6
Preliminaries(Cont.)
 The Complexity Measures
 Remote step complexity
- Max # of shared memory operations performed by a process,
where a wait is counted as a single operation
 Remote memory references
- A stronger version of the above parameter
- Assumption of local spin
 System response time
- The time interval between subsequent entries into the critical section,
where a time unit is the min execution interval in which each active
process performs at least one step
7
How the Basic Algorithm Works
 Architecture
 An adaptive long-lived non-wait-free k-renaming
 An adaptive tournament tree for mutual exclusion
 What it does
 A process gets a name in a range of size O(k) using long-lived renaming
 Uses this name to enter an adaptive tournament tree for mutual
exclusion
 The winner of the tournament tree enters the critical section
8
The Basic Algorithm
Critical Section
Adaptive Tournament
Tree
Long-Lived Renaming
Figure 1. Algorithm Structure
9
Non-Wait-Free Renaming
 The basic building block
 Filter with an entry point and an exit point
 success or fail
 Modified filter improves time complexity
 An array of n entries
 Each entry contains a pointer to a chain of filters/a chain
 The name that the process receives is the index of the chain it wins
 A chain of filters
 Concatenated one after the other
 Process succeeds
 Process fails - If failed in the r’th filter of the l’th chain, then it skips the next
r-1 chains and tries to win in the (l+r)’th chain
10
Non-Wait-Free Renaming
2
r’th
r-1
1
Filters
0
0
Chains
0
l
0
(r-1)
Figure 2. The next chain calculation
l+r
0
n-1
The code of Basic Algorithm
Private variables
lastFilter : interger
Procedure releaseName(name) // release a name
1.
startFilter[name] := lastFilter + 1
Procedure getName()
//get a new name
1.
l := 0
2.
Index := -1
3.
Repeat
4.
l := l + index +1
//calculate next chain to enter
5.
<result,index> := executeChain(l)
6.
Until result = win
7.
lastFilter := startFilter[l] + index
8.
Return l+1
Procedure executeChain(l)
// access chain l
1.
filters := Chains[l][startFilter[l]]
2.
curr := 0
3.
while (true)
4.
if executeFilter(Filters[curr]) = success then
5.
if curr > 0 and Filters[curr-1].c then
6.
return <win, curr>
7.
else curr ++
8.
else return <lose, curr>
Figure 3. Adaptive long-lived non-wait-free k-renaming with unbounded memory
12
The code of Basic Algorithm(Cont.)
Procedure executeFilter(filter)
// access a specific filter
1.
if filter.turn   then return fail
2.
filter.turn :=id
3.
if filter.d then return fail
// there is a winner - fail
4.
wait until filter.b or filter.turn  id or filter.d
5.
if filter.d then return fail
6.
if filter.turn = id then filter.b := true
// try to succeed
7.
if filter.turn  id then
// failing in the filter
8.
filter.c := true
9.
filter.b := false
10.
return fail
11.
else
// succeeding in the filter
12.
filter.d := true
13.
return success
Figure 3. Adaptive long-lived non-wait-free k-renaming with unbounded memory
13
The Procedures – Basic Algorithm

getName()
 Obtains a new name
 Invokes procedure executeChain ()

executeChain (l)
 Returns a pair: <win or lose, the index of the last accessed filter in the
chain>
 Executes a filter of a chain

executeFilter(filter)
 Modification of the filter suggested by Choy and Singh
 Shared variables

releaseName(name)
14
Result of the Algorithm
- Filter
Properties
The following properties ensure that exactly one process eventually
remains in the chain and wins it.
 Safety
If k processes enter the filter, then at most k/2 processes succeed in it.
 Progress
If one or more processes enter the filter, then at least one process succeeds in it.
Modified filter will also have the property:
 Time complexity
Some process succeeds in the filter O(1) time units after the first process enters it
15
Result of the Algorithm
- Chain
Properties
An execution interval of a process pi includes one iteration of enter,
critical section, and exit
 If the point contention during pi ‘s execution interval is k, then pi wins in
chain l <= k-1
 A process wins some chain within O(k) steps
Remote step complexity
 If k processes enter the chain, then some process wins the chain in log k
+ 2 filters
 Some process wins the chain within O(logk) time units after the chain
became busy, where k is the point contention of the winner’s execution
interval
System response time
16
An Adaptive Tournament Tree

What is it
 Is an unbalanced binary tree
 Constructed from log N complete binary tree of
exponentially growing sizes(1,2,22,… nodes) – N is size of name space
 Connected by a single path of nodes
 Embedded two-process mutual exclusion algorithm with
O(1) remote steps
- Yang and Anderson
17
An adaptive Tournament Tree
A process with a name in the range 0, …, k-1 climbs at most
2logk +1 nodes
Root
1
2
3
4
The leaves are numbered from left to right.
5
6
7
8 9 10 11 12 13 14 15
18
Complexity of the Basic Algorithm

Renaming Algorithm + Tournament Tree
 Step complexity: O(k) + O(logk)
 Time complexity: O(logk) + O(logk)
O(k)
O(logk)
19
Bounding The Number of Filters

Basic idea
 The number of filters in a chain is bounded by recycling previously used
filters

Solutions
 A chain of only 2N filters are used cyclically
 The process that exits from the critical section detects “slow” processes
and promotes them to enter the critical section
 In addition, the scan also initializes the recycled filters

Space Complexity of the Renaming Algorithm
 Is dominated by the size of array Chains – O(nN)
20
Reducing The Space Complexity

Basic idea
 one-shot f(n)-renaming

Complexity of the n-renaming Algorithm
 System response time O(logk)
 Remote step complexity O(k’), where k’ is the interval contention
 Space complexity O(n log n)

Space Complexity of the Mutual Exclusion Algorithm
 O(n2) – n times the range of names
21
Summary of Result
Algorithms
Remote Step
Complexity
System
Response Time
Space
Complexity
Choy & Singh
O(N)
O(k)
O(N)
Adaptive Bakery
Algorithm
O(k4)
O(k4)
O(N3)
Afek et al.
O(min(k2,klogN))
O(k2)
O(N2 2n)
Anderson & Kim
O(k)
O(k)
O(N)
Algorithm with longlived renaming
O(k)
O(logk)
O(nN)
Algorithm with oneshot renaming
O(k)
O(logk)
O(n2)
Talbe1 .
Comparison with previous adaptive mutual exclusion algorithms
22
Future Work

Improve the remote step complexity of the algorithm or
show that it is optimal

Prove a lower bound on the system response time

Design an algorithm with O(k) remote memory references
and O(logk) system response time
23
Download