1 / 15

A Two-Lock Concurrent Queue Algorithm

A Two-Lock Concurrent Queue Algorithm. Maged M. Michael, Michael L. Scott University of Rochester. Presented by Hussain Tinwala. Two-Lock Algorithm Goals. Provide a higher degree of concurrency Use better blocking techniques Improve performance on shared memory multiprocessor machines.

Download Presentation

A Two-Lock Concurrent Queue Algorithm

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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. 1) Create a new node Node(5) 2) Insert the node and update the Tail Head(1) Node(2) Node(3) Node(4) Tail(5) Queue Operations: Enqueue • Enqueue Head(1) Node(2) Node(3) Tail(4)

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

  5. P1 P2 P6 P10 P3 P7 P4 P8 Head(1) Node(2) Node(3) Tail(4) P5 P9 What do single-lock algorithms do? • They lock the entire queue • Example: 10 processes want to operate on the queue at the same time {P1, …, P10 } High Contention

  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. D1 E1 D2 E4 D3 E2 D4 E3 Head(1) Node(2) Node(3) Tail(4) D5 E5 What do two locks do? (2) • Example: 10 processes. Enqueuing processes {E1, …, E5}Dequeuing processes {D1, …, D5} Increases Concurrency And Decreases Contention

  8. Two Critical Mechanisms There are two kinds of processes: • Processes that have acquired a lock • 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 Lockingor 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?

More Related