Jump to content

Lock convoy

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Citation bot (talk | contribs) at 16:47, 10 November 2022 (Alter: isbn. Add: s2cid, citeseerx, doi, pages, issue, volume, authors 1-1. Removed proxy/dead URL that duplicated identifier. Removed parameters. Some additions/deletions were parameter name changes. Upgrade ISBN10 to 13. | Use this bot. Report bugs. | Suggested by AManWithNoPlan | #UCB_CommandLine). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In computer science, a lock convoy is a performance problem that can occur when using locks for concurrency control in a multithreaded application.

A lock convoy occurs when multiple threads of equal priority contend repeatedly for the same lock.[1][2] Unlike deadlock and livelock situations, the threads in a lock convoy do progress; however, each time a thread attempts to acquire the lock and fails, it relinquishes the remainder of its scheduling quantum and forces a context switch. The overhead of repeated context switches and underutilization of scheduling quanta degrade overall performance.

Lock convoys often occur when concurrency control primitives such as locks serialize access to a commonly used resource, such as a memory heap or a thread pool. They can sometimes be addressed by using non-locking alternatives such as lock-free algorithms or by altering the relative priorities of the contending threads.


See also

References

  1. ^ Silberschatz, Abraham (2013). Operating System Concepts. John Wiley & Sons Inc. ISBN 978-1118129388.
  2. ^ Blasgen, Mike; Gray, Jim; Mitoma, Mike; Blasgen, Mike; Mitoma, Like (1979). "The convoy phenomenon". Operating Systems Review. 13 (2): 20–25. CiteSeerX 10.1.1.646.921. doi:10.1145/850657.850659. S2CID 40305779.