@inproceedings{45b26246857649ae80f48332001322a7,
title = "ConLock: A Constraint-Based Approach to Dynamic Checking on Deadlocks in Multithreaded Programs",
abstract = "Many predictive deadlock detection techniques analyze multithreaded programs to suggest potential deadlocks (referred to as cycles or deadlock warnings). Nonetheless, many of such cycles are false positives. On checking these cycles, existing dynamic deadlock confirmation techniques may frequently encounter thrashing or result in a low confirmation probability. This paper presents a novel technique entitled ConLock to address these problems. ConLock firstly analyzes a given cycle and the execution trace that produces the cycle. It identifies a set of thread scheduling constraints based on a novel should-happen-before relation. ConLock then manipulates a confirmation run with the aim to not violate a reduced set of scheduling constraints and to trigger an occurrence of the deadlock if the cycle is a real deadlock. If the cycle is a false positive, ConLock reports scheduling violations. We have validated ConLock using a suite of real-world programs with 11 deadlocks. The result shows that among all 741 cycles reported by Magiclock, ConLock confirms all 11 deadlocks with a probability of 71%100%. On the remaining 730 cycles, ConLock reports scheduling violations on each. We have systematically sampled 87 out of the 730 cycles and confirmed that all these cycles are false positives.",
keywords = "confirmation, Deadlock, should-happen-before relation",
author = "Yan Cai and Shangru Wu and Chan, {W. K.}",
year = "2014",
month = may,
doi = "10.1145/2568225.2568312",
language = "English",
isbn = "9781450327565",
pages = "491--502",
editor = "Pankaj Jalote and Lionel Briand and Hoek, {Andr{\'e} van der}",
booktitle = "36th International Conference on Software Engineering (ICSE 2014)",
note = "36th International Conference on Software Engineering (ICSE 2014) ; Conference date: 31-05-2014 Through 07-06-2014",
}