skip to main content
10.1145/1512475.1512478acmconferencesArticle/Chapter ViewAbstractPublication PagespasteConference Proceedingsconference-collections
research-article

Java memory model aware software validation

Published:09 November 2008Publication History

ABSTRACT

The Java Memory Model (JMM) provides a semantics of Java multithreading for any implementation platform. The JMM is defined in a declarative fashion with an allowed program execution being defined in terms of existence of "commit sequences" (roughly, the order in which actions in the execution are committed). In this work, we develop OpMM, an operational under-approximation of the JMM. The immediate motivation of this work lies in integrating a formal specification of the JMM with software model checkers. We show how our operational memory model description can be integrated into a Java Path Finder (JPF) style model checker for Java programs.

References

  1. S. V. Adve and K. Gharachorloo. Shared memory consistency models: A tutorial. IEEE Computer, pages 66--76, Dec. 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. D. Bacon et al. The "double-checked locking is broken" declaration. http://www.cs.umd.edu/-pugh/java/memoryModel/DoubleCheckedLocking.html.Google ScholarGoogle Scholar
  3. S. Burckhardt, R. Alur, and M. Martin. Checkfence: Checking consistency of concurrent data types on relaxed memory models. In PLDI, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. E. Clarke, O. Grumberg, and D. Peled. Model Checking. MIT Press, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. D. E. Culler and J. Pal Singh. Parallel Computer Architecture: A Hardware/Software Approach. Morgan Kaufmann Publishers, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. A. De, A. Roychoudhury, and D. D'Souza. Java memory model aware software validation. Technical report, 2008. http://arnabde03.googlepages.com/opmm-full.pdf.Google ScholarGoogle Scholar
  7. JSR-133 expert group. JSR-133: Java memory model and thread specification, August 2004.Google ScholarGoogle Scholar
  8. G. Gopalakrishnan, Y. Yang, and G. Lindstrom. QB or not QB: An efficient execution verification tool for memory orderings. In CAV, 2004.Google ScholarGoogle Scholar
  9. J. Gosling, W. Joy, G. Steele, and G. Bracha. Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley)). Addison-Wesley Professional, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. T. Q. Huynh and A. Roychoudhury. A memory model sensitive checker for C#. In Formal Methods Symposium (FM), 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. T. Lindholm and F. Yellin. Java Virtual Machine Specification. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Jeremy Manson, William Pugh, and Sarita V. Adve. The java memory model. In POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 378--391, New York, NY, USA, 2005. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. Park and D. L. Dill. An executable specification and verifier for relaxed memory order. IEEE Transactions on Computers, 48(2), 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. D. C. Schmidt and T. Harrison. Double-checked locking. Pattern languages of program design 3, pages 363--375, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. W. Visser, K. Havelund, G. Brat, and S. Park. Model checking programs. In IEEE international conference on Automated software engineering (ASE), 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Conferences
    PASTE '08: Proceedings of the 8th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
    November 2008
    92 pages
    ISBN:9781605583822
    DOI:10.1145/1512475

    Copyright © 2008 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 9 November 2008

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article

    Acceptance Rates

    Overall Acceptance Rate57of159submissions,36%

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader