Download presentation
Presentation is loading. Please wait.
Published byBertram McGee Modified over 9 years ago
1
1 Contention Management and Obstruction-free Algorithms Niloufar Shafiei
2
2 Agenda Introduction Non-blocking approaches Contention management Two obstruction-free shared deque algorithms
3
3 Distributed shared memory systems Mutual exclusion (using locks) Delay of processes Not fault-tolerant (failure of processes) Deadlock Priority inversion Non-blocking Delay and failure of processes do not cause performance problems
4
4 Non-blocking Wait-free All processes complete in a finite number of steps. Lock-free Some processes complete in a finite number of steps. Significant overhead Complex and subtle
5
5 Non-blocking Obstruction-free Each process completes if it runs without interference for sufficiently long. Not guarantee the progress Simpler Easier to design
6
6 Contention management Decide which process can take steps at a time A simple method is back-off when they encounter interference. Contention management policy: Guarantee the progress of all process
7
7 + = Contention Management Obstruction-free Algorithms Wait-free Algorithms
8
8 Contention Management Policies Aggressive Always abort Polite Exponential back-off KillBlocked Abort if an operation is blocked or waits for maximum waiting time Karma Set a priority (priority = amount of work + number of retries)
9
9 Contention Management Policies Eruption Set a priority and increase priority of running operation Randomized Flip a coin Kindergarten Keep a list Timestamp Abort earlier timestamp QueueONBlock Set a flag of waiting operation
10
10 Obstruction-free Deque on Linear Array 0 1 … MAX+1 LN … LN RN … RN value counter Invariant: array always consists of at least one LN, followed by zero or more data values, followed by at least one RN.
11
11 Rightpush(v) Change the leftmost RN to v 1.Find index of leftmost RN LN … LN RN … RN k
12
12 2. Check if k=MAX+1 then deque is full 3. Increase the counter of A[k-1] LN … … … … RN K=MAX+1 LN … … RN … RN k A[k-1]
13
13 4. Change A[k] to v and increase its counter value LN … … v … RN k
14
14 Rightpop Change the rightmost data value to RN. 1.Find index of leftmost RN LN LN RN RN k
15
15 2. Check if deque is empty 3. Increase the counter of A[k] LN LN LN LN RN RN k-1 k LN LN RN RN k A[k]
16
16 4. Change A[k-1] to RN and increase its counter value and return the popped value LN LN RN RN RN k
17
17 Problem: push on one end and pop from the other end LN LN LN LN LN RN
18
18 Obstruction-free Deque on Circular Array LN RN DN RN LN Invariants: 1.All null values are in a contiguous sequence of locations. 2.The sequence consists of zero or more RN, followed by zero or one DN, followed by zero or more LN. 3.At least two different null values are in the sequence.
19
19 Rightpush(v) Change the leftmost RN to v 1.Find index of leftmost RN v1v1 RN DN RN v2v2 LN k
20
20 2. Read A[k+1] If A[k+1] = RN v1v1 RN DN RN v2v2 LN k k+1 1.Increase the counter value of A[k-1] 2.Change A[k] to v k-1
21
21 If A[k+1] = LN v1v1 LN RN v2v2 LN k k+1 1.Increase the counter value of A[k] 2.Change A[k+1] to DN k-1
22
22 If A[k+1] = DNand A[k+2] Null v1v1 DN v6v6 RN v2v2 v3v3 v4v4 v5v5 k k+1 Return FULL k-1 k+2
23
23 If A[k+1] = DNand A[k+2] = LN v1v1 DN LN RN v2v2 v3v3 v4v4 v5v5 k k+1 k-1 k+2 1.Increase the counter value of A[k+2] 2.Change A[k+1] to RN
24
24 Conclusion Obstruction-free weakens the progress property but it is simpler. Contention management policies improve the progress of obstruction-free algorithms. Obstruction-free algorithms with appropriate contention management policy can perform like wait-free algorithms in practice.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.