Presentation is loading. Please wait.

Presentation is loading. Please wait.

A Two-Lock Concurrent Queue Algorithm Maged M. Michael, Michael L. Scott University of Rochester Presented by Hussain Tinwala.

Similar presentations


Presentation on theme: "A Two-Lock Concurrent Queue Algorithm Maged M. Michael, Michael L. Scott University of Rochester Presented by Hussain Tinwala."— Presentation transcript:

1 A Two-Lock Concurrent Queue Algorithm Maged M. Michael, Michael L. Scott University of Rochester Presented by Hussain Tinwala

2 Two-Lock Algorithm Goals Provide a higher degree of concurrency Use better blocking techniques Improve performance on shared memory multiprocessor machines

3 Queue Operations: Enqueue Enqueue Head (1) Tail (4) Node (2) Node (3) 1) Create a new node Node (5) 2) Insert the node and update the Tail Head (1) Node (4) Node (2) Node (3) Tail (5)

4 Queue Operations: Dequeue Dequeue Head (1) Node (4) Node (2) Node (3) Tail (5) 2) Free the first node Node (4) Node (2) Node (3) Tail (5) 1) Update the Head Node (1) Node (4) Head (2) Node (3) Tail (5)

5 What do single-lock algorithms do? They lock the entire queue Example: 10 processes want to operate on the queue at the same time {P 1, …, P 10 } High Contention Head (1) Tail (4) Node (2) Node (3) P1P1 P2P2 P3P3 P4P4 P5P5 P6P6 P7P7 P8P8 P9P9 P 10

6 What do two locks do? (1) Only lock the Head node or the Tail node Enqueue: only needs to read/write the Tail node Dequeue: only needs to read/write the Head node

7 What do two locks do? (2) Example: 10 processes. Enqueuing processes {E 1, …, E 5 } Dequeuing processes {D 1, …, D 5 } Head (1) Tail (4) Node (2) Node (3) D1D1 D3D3 D4D4 D5D5 E1E1 E2E2 E3E3 E5E5 D2D2 E4E4 Increases Concurrency And Decreases Contention

8 Two Critical Mechanisms There are two kinds of processes: 1.Processes that have acquired a lock 2.Processes that are trying to acquire a lock Issues: -Dealing with preemption of processes with locks (Preemption-safe locking) -Dealing with processes that keep trying to acquire a lock (Bounded exponential backoff)

9 Preemption-Safe Locking or Temporary Non-Preemption (processes holding locks) Note: There is a bound on how much extra time the process can take after which the scheduler automatically forces preemption.

10 Bounded Exponential Backoff (processes trying to acquire a lock) Bounded Exponential Backoff is an algorithm that uses feedback to multiplicatively decrease the rate of some process. Repeated attempts are exponentially delayed (1, 2, 4, 8…) up to a predefined bound. The feedback here is that the process fails to acquire the lock

11 Performance of Backoff From: T. E. Anderson. The Performance of Spin Lock Alternatives for Shared-Memory Multiprocessors. IEEE Transactions on Parallel and Distributed Systems.

12 Single-Lock v. Two-Lock (1) The two techniques: preemption-safe locking and bounded exponential backoff can also be used with a single-lock algorithm If both algorithms (single-lock and two- lock) use the two techniques, who wins? Performance depends on: –Number of processors –Number of programs per processor (level of multiprogramming)

13 Single Lock v. Two Lock (2) Dedicated Multiprocessor: One process per processor Crossover points 2 processes/processor: 5 3 processes / processor: 7

14 Verdict It depends Single-lock better at MP=1, #Processors=2 due to cache misses Higher degree of multiprogramming means higher chance of preemption while holding a lock, therefore, two-lock suffers Two-lock good candidate for dedicated multiprocessor machines

15 End of Slide Show Questions/Comments?


Download ppt "A Two-Lock Concurrent Queue Algorithm Maged M. Michael, Michael L. Scott University of Rochester Presented by Hussain Tinwala."

Similar presentations


Ads by Google