Browse > Article
http://dx.doi.org/10.3745/KIPSTA.2009.16-A.2.55

A Transparent Monitor Based on JDI for Scalable Race Detection of Concurrent Java Programs  

Kim, Young-Joo (한국과학기술원)
Kuh, In-Bon (국립경상대학교 정보과학과)
Bae, Byoung-Jin (한국기계연구원)
Jun, Yong-Kee (경상대학교 정보과학과)
Abstract
Race conditions in current Java programs must be detected because it may cause unexpected result by non-deterministic executions. For detecting such races during program execution, execution flows of all threads and all access events can be monitored. It is difficult for previous race detection techniques to monitor all threads and access events in actuality because these techniques analyze the files traced during program execution or modify original source programs and then monitor these programs. This paper presents a transparent scalable monitoring tool to detect races using JDI(Java Debug Interface) where JDI is 100% pure java interface to provide in JDPA(Java Platform Debugger Architecture) and is able to provide information corresponding to events occurred in run-time of programs. This tool thus can monitor execution flows of all threads and all access events without program modification. We prove transparency of the presented tool and grasp the efficiency of it using a set of published benchmark programs. As a result of this, the suggested tool can monitor all threads and accesses of these programs without their modification, and their monitoring time is increased to more than 20 times.
Keywords
Java Programs; JDI; Race Detection; Scalability; Transparent Monitor;
Citations & Related Records
연도 인용수 순위
  • Reference
1 Jun, Y., and C. E. McDowell, 'Scalable Monitoring Technique for Detecting Races in Parallel Programs,' Proc. of the 5th IEEE Int'l Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS), IEEE, Lecture Notes in Computer Science, 1800: 340-347, Springer-Verlag, Cancun, Mexico, May, 2000   DOI   ScienceOn
2 Sun Microsystems, 'Java Platform Debugger Architecture,' 2005
3 김영주, 이승렬, 전용기, '임계구역을 가진 공유메모리 병렬프로그램에서 효율적인 경합 탐지를 위한 사건 선택기법,' 한국정보과학회 춘계학술발표논문집, 27(1): 630-632, 한국정보과학회, 2000. 4
4 Netzer, R. H. B., and B. P. Miller, 'What Are Race Conditions? Some Issues and Formalizations,' Letters on Prog. Lang. and Systems, 1(1): 74-88, ACM, March, 1992   DOI
5 Choi, J., K. Lee, A. Loginov, R. O'Callahan, V. Sarkar and M. Sridharan, 'Efficient And Precise Datarace Detection For Multithreaded Object-oriented Programs,' Conf. on Programming Language Design and Implementation (PLDI), pp.258-269, ACM Press, 2002   DOI
6 Dinning, A., and E. Schonberg, 'Detecting Access Anomalies in Programs with Critical Sections,' 2nd Workshop on Parallel and Distributed Debugging (WPDD), pp.85-96, ACM, May, 1991   DOI
7 EPCC, 'The Java Grande Forum Multi-threaded Benchmarks,' 2007
8 D. Holmes, Java: Concurrency, Synchronisation and Inheritance, 1998
9 Mellor-Crummey, J., 'On-the-fly Detection of Data Races for Programs with Nested Fork-Join Parallelism,' Proc. of ACM/IEEE Conf. on Supercomputing, pp.24-33, ACM, 1991   DOI
10 O'Callahan, R. and J. Choi, 'Hybrid Dynamic Data Race Detection,' Proc. of ACM SIGPLAN Symp. on Principle and Practice of Parallel Programming (PPoPP), San Diego, California, ACM, June, 2003   DOI
11 Petersen, P., and S. Shah, 'OpenMP Support in the Intel Thread Checker,' Int'l Workshop on OpenMP Applications and Tools (WOMPAT), pp.1-12, June, 2003
12 Michiel, R. and K. Bosschere, 'RecPlay: A Fully Integrated Practical Record/Replay System,' ACM Transactions on Computer Systems, pp.133-152, ACM, May, 1999   DOI
13 B. Sandn, 'Coping with Java Threads,' Computer, pp.20-27, IEEE, April, 2004   DOI   ScienceOn
14 Stefan, S., Michael, B., Greg, N., and P. Sobalvarro, 'Eraser: A Dynamic Data Race Detector for Multithreaded Programs,' ACM Transactions on Computer Systems, pp.391-411, ACM, November, 1997   DOI   ScienceOn
15 김영주, 박소희, 박미영, 이승렬, 전용기, '록킹을 가진 OpenMP 병렬프로그램의 경합탐지를 위한 확장적 감시기법 및 도구,' 경상대학교 전산연구, 15: 7-16, 경상대학교, 2000. 12
16 Sun Microsystems, 'Java Debug Interface,' 2006
17 Sun Microsystems Inc., Sun Studio 12: Thread Analyzer User's Guide, 2007