| A randomized dynamic program analysis technique for detecting real deadlocks |
| Full text |
Pdf
(435 KB)
|
Source
|
Conference on Programming Language Design and Implementation
archive
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
table of contents
Dublin, Ireland
SESSION: Races and deadlocks
table of contents
Pages 110-120
Year of Publication: 2009
ISBN:978-1-60558-392-1
Also published in ...
|
|
Authors
|
|
Pallavi Joshi
|
University of California, Berkeley, Berkeley, CA, USA
|
|
Chang-Seo Park
|
University of California, Berkeley, Berkeley, CA, USA
|
|
Koushik Sen
|
University of California, Berkeley, Berkeley, CA, USA
|
|
Mayur Naik
|
Intel Research, Berkeley, CA, USA
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 29, Downloads (12 Months): 127, Citation Count: 0
|
|
|
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 false warnings. We have implemented the technique in a prototype tool for Java, and have experimented on a number of large multi-threaded Java programs. We report a number of previously known and unknown real deadlocks that were found in these benchmarks.
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. In Parallel and Distributed Systems: Testing and Debugging 2005, 2005.
|
| |
2
|
|
 |
3
|
Saddek Bensalem , Jean-Claude Fernandez , Klaus Havelund , Laurent Mounier, Confirmation of deadlock potentials detected by runtime analysis, Proceedings of the 2006 workshop on Parallel and distributed systems: testing and debugging, July 17-17, 2006, Portland, Maine, USA
[doi> 10.1145/1147403.1147412]
|
| |
4
|
S. Bensalem and K. Havelund. Scalable dynamic deadlock analysis of multi-threaded programs. In Parallel and Distributed Systems: Testing and Debugging 2005 (PADTAD'05), 2005.
|
 |
5
|
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
|
| |
6
|
S. Chaki, E. Clarke, J. Ouaknine, N. Sharygina, and N. Sinha. Concurrent software verification with states, events, and deadlocks. Formal Aspects of Computing, 17(4):461--483, 2005.
|
| |
7
|
|
| |
8
|
O. Edelstein, E. Farchi, Y. Nir, G. Ratsaby, , and S. Ur. Multithreaded Java program test generation. IBM Systems Journal, 41(1):111--125, 2002.
|
 |
9
|
|
 |
10
|
Cormac Flanagan , K. Rustan M. Leino , Mark Lillibridge , Greg Nelson , James B. Saxe , Raymie Stata, Extended static checking for Java, Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation, June 17-19, 2002, Berlin, Germany
|
 |
11
|
|
| |
12
|
|
| |
13
|
|
| |
14
|
K. Havelund and T. Pressburger. Model Checking Java Programs using Java PathFinder. Int. Journal on Software Tools for Technology Transfer, 2(4):366--381, 2000.
|
| |
15
|
|
| |
16
|
P. Joshi, M. Naik, C.-S. Park, and K. Sen. An extensible active testing framework for concurrent programs. In 21st International Conference on Computer Aided Verification (CAV'09), Lecture Notes in Computer Science. Springer, 2009.
|
| |
17
|
H. Jula, D. Tralamazza, C. Zamfir, and G. Candea. Deadlock immunity: Enabling systems to defend against deadlocks. In Proceedings of the 8th USENIX Symposium on Operating Systems Design and Implementation (OSDI'08), 2008.
|
 |
18
|
|
| |
19
|
|
 |
20
|
|
| |
21
|
|
| |
22
|
Yarden Nir-Buchbinder , Rachel Tzoref , Shmuel Ur, Deadlocks: From Exhibiting to Healing, Runtime Verification: 8th International Workshop, RV 2008, Budapest, Hungary, March 30, 2008. Selected Papers, Springer-Verlag, Berlin, Heidelberg, 2008
[doi> 10.1007/978-3-540-89247-2_7]
|
 |
23
|
|
 |
24
|
|
 |
25
|
|
| |
26
|
S. D. Stoller. Testing concurrent Java programs using randomized scheduling. In Workshop on Runtime Verification (RV'02), volume 70 of ENTCS, 2002.
|
| |
27
|
C. von Praun. Detecting Synchronization Defects in Multi-Threaded Object-Oriented Programs. PhD thesis, Swiss Federal Institute of Technology, Zurich, 2004.
|
 |
28
|
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
|
| |
29
|
A. Williams, W. Thies, and M. Ernst. Static deadlock detection for Java libraries. In ECOOP 2005 -- 19th European Conference on Object--Oriented Programming (ECOOP'05), pages 602--629, 2005.
|
 |
30
|
|
|