Skip to main content

Concurrent Constraint-Based Memory Machines: A Framework for Java Memory Models (Summary)

  • Conference paper
Advances in Computer Science - ASIAN 2004. Higher-Level Decision Making (ASIAN 2004)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 3321))

Included in the following conference series:

Abstract

A central problem in extending the von Neumann architecture to petaflop computers with a shared memory and millions of hardware threads is defining the memory model [1, 2, 3]. Such a model must specify the behavior of concurrent (conditional) reads and writes to the same memory locations. We present a simple, general framework for the specification of memory models based on an abstract machine that uses sets of order and value constraints to communicate between threads and main memory. Memory is permitted to specify exactly those linkings (mappings from read events to write events) which result in a unique solution for the constraints, and hence forces a unique patterns of bits to flow from writes to reads.

We show that this single principle accounts for almost all the “causality test cases” proposed for the java memory model. It may be used as the basis for developing a formal memory model for the java programming language.

An implementation of CCMs in a Prolog-based constraint language has been developed by Tom Schrijvers and Bart Demoen [4]. This paper is a summary of [5].

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Transactions on Computers 28 (1979)

    Google Scholar 

  2. Adve, S., Gharachorloo, K.: Shared Memory Consistency Models: A tutorial. Technical report, Digital Western Research Laboratory (1995)

    Google Scholar 

  3. Adve, S., Pai, V.S., Ranganthan, P.: Recent Advances in Memory Consistency Models for Hardware Shared-Memory Systems. Proceedings of the IEEE 87, 445–455 (1999)

    Article  Google Scholar 

  4. Schrijvers, T., Demoen, B.: JMMSolve: a generative reference implementation of CCM Machines. Technical Report Report CW 379, Katholieke Universiteit Leuven (2004)

    Google Scholar 

  5. Saraswat, V.: Concurrent Constraint-based Memory Machines: A framework for java Memory Models. Technical report, IBM T.J.Watson Research Center, Hawthorne NY (2004), Available at http://www.saraswat.org

  6. Gosling, J., Joy, W., Steele, G., Bracha, G.: The Java Language Specification. Addison-Wesley, Reading (2000)

    Google Scholar 

  7. Pugh, W.: Proposal for Java Memory Model and Thread Specification Revision, JSR 133 (2001), http://www.jcp.org/en/jsr/detail?id=133

  8. Pugh, W.: Java Memory Model and Thread Specification Revision, JSR 133 (2004), http://www.jcp.org/en/jsr/detail?id=133

  9. Pugh, W.: Java Memory Model Causality Test Cases. Technical report, U Maryland (2004), http://www.cs.umd.edu/~pugh/java/memoryModel/

  10. Saraswat, V.: Concurrent Constraint Programming. Doctoral Dissertation Award and Logic Programming. MIT Press, Cambridge (1993)

    Google Scholar 

  11. Manson, J., Pugh, W.: The Manson/Pugh model. Technical report, U Maryland (2004), http://www.cs.umd.edu/~pugh/java/memoryModel/

  12. Adve, S.: Sc-. Technical report, University of Illinois Urbana-Champaign (2004), http://www.cs.umd.edu/~pugh/java/memoryModel/

  13. Maessen, J.W., Arvind, S.X.: Improving the Java Memory Model Using CRF. In: OOPSLA (2000)

    Google Scholar 

  14. Yang, Y., Gopalakrishna, G., Lindstrom, G.: A Generic Operatonal Memory Model Specification Framework for Multithreaded Program Verification. Technical report, School of Computing, U. of Utah (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Saraswat, V. (2004). Concurrent Constraint-Based Memory Machines: A Framework for Java Memory Models (Summary). In: Maher, M.J. (eds) Advances in Computer Science - ASIAN 2004. Higher-Level Decision Making. ASIAN 2004. Lecture Notes in Computer Science, vol 3321. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30502-6_36

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-30502-6_36

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-24087-7

  • Online ISBN: 978-3-540-30502-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics