MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Formalizing the java memory model for multithreaded program correctness and optimization (2002) [5 citations — 2 self]

Download:
Download as a PDF
by Yue Yang, Yue Yang, Ganesh Gopalakrishnan, Ganesh Gopalakrishnan, Gary Lindstrom, Gary Lindstrom
University of Utah
http://www.cs.utah.edu/techreports/2002/pdf/UUCS-02-011.pdf
Add To MetaCart

Abstract:

Standardized language level support for threads is one of the most important features of Java. However, defining and understanding the Java Memory Model (JMM) has turned out to be a big challenge. Several models produced to date are not as easily comparable as first thought. Given the growing interest in multithreaded Java programming, it is essential to have a sound framework that would allow formal specification and reasoning about the JMM. This paper presents the Uniform Memory Model (UMM), a formal memory model specification framework. With a flexible architecture, it can be easily configured to capture different shared memory semantics including both architectural and language level memory models. Based on guarded commands, UMM is integrated with a model checking utility, providing strong built-in support for formal verification and program analysis. A formal specification of the JMM following the semantics proposed by Manson and Pugh is presented in UMM. Systematic analysis has revealed interesting properties of the proposed semantics. In addition, several mistakes from the original specification have been uncovered.

Citations

801 How to Make a Multiprocessor Computer that Correctly Executes Multiprocess Programs – Lamport - 1979
422 Lazy release consistency for software distributed shared memory – Keleher, Cox, et al. - 1992
191 Shared Memory Consistency Models: A Tutorial – V, Gharachorloo - 1996
135 Fixing the Java memory model – Pugh - 1999
116 The murphi verification system – Dill - 2000
66 Reasoning About Parallel Architectures. Prentice-Hall – Collier - 1992
52 The SPARC Architecture Manual version 9 – Weaver, Germond, et al. - 1994
51 Memory Consistency Models for Shared-Memory Multiprocessors – Gharachorloo - 1995
32 Formal specifications of abstract memory models – Dill, Park, et al. - 1993
30 Commit-Reconcile & Fences (CRF): A new memory model for architects and compiler writers – Shen, Arvind, et al. - 1999
29 Improving the Java memory model using CRF – Maessen, Shen - 2000
29 Location consistency - a new memory model and cache consistency protocol – Gao, Sarkar - 1998
26 Java consistency: Non-operational characterizations of Java memory behavior – Gontmakher, Itskovitz, et al. - 1997
23 Semantics of multithreaded Java – Manson, Pugh - 2001
15 Specifying system requirements for memory consistency models – Gharachorloo, Adve, et al. - 1993
12 Introduction to sequential consistency and the lazy caching algorithm – Gerth - 1995
11 An executable specification and verifier for Relaxed Memory Order – Park, Dill - 1999
8 The Java Language Specification, chapter 17 – Gosling, Joy, et al. - 1996
7 Analyzing the CRF Java Memory Model – Yang, Gopalakrishnan, et al. - 2001
4 Java in Pratice: Design Styles and Idioms for Effective Java, chapter 9 – Bishop, Warren - 1999
1 Java in Pratice: Design Styles and Idioms for E#ective Java, chapter 9 – Bishop, Warren - 1999