|
ABSTRACT
Concurrent programs are notorious for containing errors that are difficult to reproduce and diagnose. A common kind of concurrency error is deadlock, which occurs when some threads are permanently blocked. This paper defines a run-time notion of potential deadlock in programs with locks, semaphores, and condition variables. Informally, an execution has potential for a deadlock if some feasible permutation of the execution results in a deadlock. Feasibility of a permutation is determined by ordering constraints amongst events in the execution. Previous work on run-time detection of potential deadlocks are for programs that use locks. This paper presents run-time algorithms to detect potential deadlocks in programs that use locks (block structured as well as non block structured), semaphores, and condition variables.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
R. Agarwal, L. Wang, and S. D. Stoller. Detecting potential deadlocks with static analysis and runtime monitoring. Technical Report DAR-05-25, Computer Science Department, SUNY at Stony Brook, Sept. 2005. Available at http://www.cs.sunysb.edu/.ragarwal/deadlock/.
|
| |
2
|
R. Agarwal, L. Wang, and S. D. Stoller. Detecting potential deadlocks with static analysis and runtime monitoring. In Proceedings of the Parallel and Distributed Systems: Testing and Debugging (PADTAD) Track of the 2005 IBM Verification Conference volume 3875 of Lecture Notes in Computer Science pages 191--207. Springer-Verlag, 2006. Received the conference's Best Paper Award.
|
| |
3
|
S. Bensalem and K. Havelund. Scalable deadlock analysis of multi-threaded programs. In Proceedings of the Parallel and Distributed Systems: Testing and Debugging (PADTAD) Track of the 2005 IBM Verification Conference Springer-Verlag, Nov. 2005.
|
 |
4
|
Chandrasekhar Boyapati , Robert Lee , Martin Rinard, Ownership types for safe programming: preventing data races and deadlocks, Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, November 04-08, 2002, Seattle, Washington, USA
|
| |
5
|
F. Chen and G. Roşu. Predicting concurrency errors at runtime using sliced causality. Technical report, Computer Science at UIUC (No. UIUCDCS-R-2005-2660), 2005.
|
| |
6
|
O. Edelstein, E. Farchi, E. Goldin, Y. Nir, G. Ratsaby, and S. Ur. Framework for testing multi-threaded Java programs. Concurrency and Computation: Practice and Experience 15(3-5) : 485--499, 2003.
|
 |
7
|
|
| |
8
|
|
| |
9
|
E. Farchi, Y. Nir-Buchbinder, and S. Ur. Cross-run lock discipline checker for java. Presentation at the 2005 IBM Verification Conference.
|
 |
10
|
|
| |
11
|
|
| |
12
|
|
| |
13
|
D. Hovemeyer and W. Pugh. Finding concurrency bugs in java. In Proceedings of the PODC Workshop on Concurrency and Synchronization in Java Programs July 2005.
|
| |
14
|
T. Li, C. S. Ellis, A. R. Lebeck, and D. J. Sorin. Pulse: A Dynamic Deadlock Detection Mechanism Using Speculative Execution. In Proceedings of the USENIX Annual Technical Conference pages 31--44, April 2005.
|
| |
15
|
F. Mattern. Virtual time and global states of distributed systems. In M. Cosnard et. al, editor, Parallel and Distributed Algorithms: Proceedings of the International Workshop on Parallel and Distributed Algorithms pages 215--226. Elsevier Science Publishers B. V. , 1989.
|
 |
16
|
|
 |
17
|
|
 |
18
|
|
| |
19
|
K. Sen, G. Roşu, and G. Agha. Online efficient predictive safety analysis of multithreaded programs. International Journal on Software Technology and Tools Transfer (STTT) (To Appear) 2005. Previous version appeared in TACAS'04, LNCS volumn 2988, pages 123--138.
|
| |
20
|
W. Stallings. Operating Systems Prentice-Hall, 5th edition edition, 2005.
|
| |
21
|
|
| |
22
|
C. von Praun. Detecting Synchronization Defects in Multi-Threaded Object-Oriented Programs PhDthesis, ETH Zürich, 2004.
|
 |
23
|
Christoph von Praun , Thomas R. Gross, Object race detection, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.70-82, October 14-18, 2001, Tampa Bay, FL, USA
|
 |
24
|
|
| |
25
|
|
| |
26
|
A. Williams, W. Thies, and M. D. Ernst. Static deadlock detection for Java libraries. In Proc. 2005 European Conference on Object-Oriented Programming (ECOOP) Lecture Notes in Computer Science. Springer-Verlag, July 2005.
|
|