DOI QR코드

DOI QR Code

Verification for Multithreaded Java Code using Java Memory Model

자바 메모리 모델을 이용한 멀티 스레드 자바 코드 검증

  • 이민 (경기대학교 전자계산학과) ;
  • 권기현 (경기대학교 정보과학부)
  • Published : 2008.02.29

Abstract

Recently developed compilers perform some optimizations in order to speed up the execution time of source program. These optimizations require the reordering of the sequence of program statements. This reordering does not give any problems in a single-threaded program. However, the reordering gives some significant errors in a multi-threaded program. State-of-the-art model checkers such as JavaPathfinder do not consider the reordering resulted in the optimization step in a compiler since they just consider a single memory model. In this paper, we develop a new verification tool to verify Java source program based on Java Memory Model. And our tool is capable of handling the reordering in verifying Java programs. As a result, our tool finds an error in the test program which is not revealed with the traditional model checker JavaPathFinder.

최신의 컴파일러는 실행 속도를 높이기 위해서 최적화 작업을 수행한다. 그러나 최적화 작업 중에 프로그램 구문의 실행 순서가 바뀔 수 있다. 단일 스레드 소프트웨어 에서는 최적화가 실행 결과에 영향을 주지 않지만 멀티 스레드 소프트웨어에서는 최적화로 인해서 기존의 실행 과정을 계산하는 방법으로는 설명할 수 없는 실행 결과가 발생할 수 있다. 이 문제점을 해결하기 위해서 자바 메모리 모델이 제안되었다. 자바 메모리 모델은 구문의 재배치를 고려하여 멀티 스레드 소프트웨어의 가능한 실행 과정을 명세하고 있다. 현재 자바 메모리 모델은 자바의 표준 메모리 모델로 정의되어 있다. 하지만 대부분의 멀티스레드 소프트웨어 검증 도구는 자바 표준 메모리 모델인 자바 메모리 모델 대신에 순차 일관성메모리 모델만을 고려하고 있다. 순차 일관성 메모리모델에서는 구문의 재배치를 고려하지 않는다. 본 논문에서는 자바 메모리 모델을 이용한 소프트웨어 모델 체킹 기법을 설명한다. 이를 이용하여 기존 소프트웨어 검증 도구인 JavaPathFinder 에서 오류가 없다고 한 소프트웨어의 오류를 찾아내었다.

Keywords

References

  1. Lamport, L. 'How to make a multiprocessor computer that correctly executes multiprocess programs,' IEEE Transactions on Computers 9, No.29, pp.690-691, 1979
  2. Jeremy Manson, William Pugh, Sarita V. Adve 'The Java Memory Model,' In the Proceedings of the POPL 2005 , pp.378-391, 2005
  3. J. Gosling, B. Joy, G. Steele and G. Bracha, 'The Java Language Specification Third Edition,' Addison-Wesley, 2005
  4. E. M. Clarke, O.Grumberg and D. Peled, Model Checking, MIT Press, 1999
  5. W. Visser, K. Havelund, G. Brat, S. Park and F. Lerda., 'Model Checking Programs,' Automated Software Engineering Journal.Vol.10, No.2, April, 2003
  6. A. Biere, A. Cimatti, E. M. Clarke, O. Strichman and Y. Zhu, 'Bounded Model Checking,' Vol.58 of Advances in Computers, 2003
  7. Raja Vallee-Rai, Laurie Hendren, Vijay Sundaresan, Patrick Lam, Etienne Gagnon and Phong Co, 'Soot - a Java Optimization Framework,' 'Proceedings of CASCON 1999,' pp.125-135, 1999
  8. Muchnick, 'Advanced Compiler Design & Implementation,' Morgan Kaufman, 2005
  9. Niklas Een and Niklas Sorensson. 'MiniSat - a SAT solver with conflict-clause minimization'. In SAT 2005, 2005. 8