2009
DOI: 10.1145/1543135.1542489
|View full text |Cite
|
Sign up to set email alerts
|

A randomized dynamic program analysis technique for detecting real deadlocks

Abstract: We present a novel dynamic analysis technique that finds real deadlocks in multi-threaded programs. Our technique runs in two stages. In the first stage, we use an imprecise dynamic analysis technique to find potential deadlocks in a multi-threaded program by observing an execution of the program. In the second stage, we control a random thread scheduler to create the potential deadlocks with high probability. Unlike other dynamic analysis techniques, our approach has the advantage that it does not give any fa… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

1
61
0

Year Published

2010
2010
2021
2021

Publication Types

Select...
5
2
2

Relationship

0
9

Authors

Journals

citations
Cited by 57 publications
(64 citation statements)
references
References 34 publications
1
61
0
Order By: Relevance
“…Exploring such infeasible executions not only wastes time but may also make the whole system reach a deadlock. Such a deadlock due to active thread control is referred to as thrashing [11]. ASSETFUZZER conducts a vulnerable window lockset analysis in Phase I, and then uses the computed lockset information to prune these infeasible executions in Phase II.…”
Section: Outline Of Assetfuzzermentioning
confidence: 99%
See 1 more Smart Citation
“…Exploring such infeasible executions not only wastes time but may also make the whole system reach a deadlock. Such a deadlock due to active thread control is referred to as thrashing [11]. ASSETFUZZER conducts a vulnerable window lockset analysis in Phase I, and then uses the computed lockset information to prune these infeasible executions in Phase II.…”
Section: Outline Of Assetfuzzermentioning
confidence: 99%
“…Consequently, the thread scheduler could not make any progress. Such a deadlock due to active thread manipulation is referred to as thrashing [11]. RACEFUZZER uses a daemon thread to break the tie by randomly selecting a thread that is suspended by the testing engine to execute (t1 in this example).…”
Section: Alleviating Thrashingmentioning
confidence: 99%
“…Many tools are designed to detect data races [7,15,42,49,50,69], atomicity violations [6,14,31,32,61,65], and other types of concurrency bugs [25,33,59,67,70]. Since concurrency-bug detection often involves monitoring many memory accesses across threads and complicated concurrency analysis, most of these tools incur large overhead.…”
Section: Related Workmentioning
confidence: 99%
“…In [1], a support for semaphores and wait-notify synchronisation was added. The recent work [37] modified the original algorithm so that runtime lock trees are not constructed. Instead, the algorithm uses a stack to handle the so-called lock dependency relation.…”
Section: Detection Of Deadlocksmentioning
confidence: 99%