2010
DOI: 10.1147/jrd.2010.2060276
|View full text |Cite
|
Sign up to set email alerts
|

Detection of deadlock potentials in multithreaded programs

Abstract: Concurrent programs are well known for containing errors that are difficult to detect, reproduce, and diagnose. Deadlock is a common concurrency error, which occurs when a set of threads are blocked, due to each attempting to acquire a lock held by another. This paper presents a collection of highly scalable static and dynamic techniques for exposing potential deadlocks. The basis is a known algorithm, which, when locks are acquired in a nested fashion, captures the nesting order in a lock graph. A cycle in th… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

0
21
0

Year Published

2011
2011
2022
2022

Publication Types

Select...
5
2
1

Relationship

0
8

Authors

Journals

citations
Cited by 29 publications
(21 citation statements)
references
References 21 publications
(37 reference statements)
0
21
0
Order By: Relevance
“…False positives can be reduced by using the basic cycle detection algorithm can be extended for cycles like thread segmented cycles, guarded cycles. Warnings can be issued by multitrace algorithm if a thread performs nesting with two different lock objects in the code [2].…”
Section: Nesting Of Locksmentioning
confidence: 99%
“…False positives can be reduced by using the basic cycle detection algorithm can be extended for cycles like thread segmented cycles, guarded cycles. Warnings can be issued by multitrace algorithm if a thread performs nesting with two different lock objects in the code [2].…”
Section: Nesting Of Locksmentioning
confidence: 99%
“…Many real-world large-scale multithreaded programs are error-prone. They suffer from concurrency bugs [34] such as data races [18], [19], [46], atomicity violations [27], [32], [34], and deadlocks [14], [15], [29], [36]. For instance, a deadlock occurrence in an execution may prevent (a part of) the program execution from making further progress.…”
Section: Introductionmentioning
confidence: 99%
“…Resource deadlock [14], [29] and communication deadlock [28], [31] are two broad kinds of deadlocks. A resource deadlock occurs when a set of threads is holding some resources (locks) and is waiting for the other resources held by the threads in the same set.…”
Section: Introductionmentioning
confidence: 99%
“…Deadlock detection has been largely investigated both with static and runtime techniques [2,10,1] (just to cite few references). Static analysis guarantees that all executions of a program are deadlock-free, at the cost of being not precise because it may discard safe programs (false positives).…”
Section: Introductionmentioning
confidence: 99%