This paper describes alternative memory semantics for Java programs using an enriched version of the Commit/Reconcile/Fence (CRF) memory model [16]. It outlines a set of reasonable practices for safe multithreaded programming in Java. Our semantics allow a number of optimizations such as load reordering that are currently prohibited. Simple thread-local algebraic rules express the effects of optimizations at the source or bytecode level. The rules focus on reordering source-level operations; they yield a simple dependency analysis algorithm for Java. An instruction-by-instruction translation of Java memory operations into CRF operations captures thread interactions precisely. The fine-grained synchronization of CRF means the algebraic rules are easily derived from the translation. CRF can be mapped directly to a modern architecture, and is thus a suitable target for optimizing memory coherence during code generation. © 2000 ACM.
CITATION STYLE
Maessen, J. W., Arvind, & Shen, X. (2000). Improving the java memory model using CRF. SIGPLAN Notices (ACM Special Interest Group on Programming Languages), 35(10), 1–12. https://doi.org/10.1145/354222.353172
Mendeley helps you to discover research relevant for your work.