Download:
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
|