Java']Java consistency: Nonoperational characterizations for Java']Java memory behavior

被引:7
|
作者
Gontmakher, A [1 ]
Schuster, A [1 ]
机构
[1] Technion Israel Inst Technol, Dept Comp Sci, IL-32000 Haifa, Israel
来源
ACM TRANSACTIONS ON COMPUTER SYSTEMS | 2000年 / 18卷 / 04期
关键词
verification; !text type='Java']Java[!/text] memory models; ultithreading; nonoperational specification;
D O I
10.1145/362670.362673
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
The Java Language Specification (JLS) [Gosling et al. 1996] provides an operational definition for the consistency of shared variables. This definition remains unchanged in the JLS 2nd edition, currently under peer review. The definition, which relies on a specific abstract machine as its underlying model, is very complicated. Several subsequent works have tried to simplify and formalize it. However, these revised definitions are also operational, and thus have failed to highlight the intuition behind the original specification. In this work we provide a complete nonoperational specification for Java and for the JVM, excluding synchronized operations. We provide a simpler definition, in which we clearly distinguish the consistency model that is promised to the programmer from that which should be implemented in the JVM. This distinction, which was implicit in the original definition, is crucial for building the JVM. We find that the programmer model is strictly weaker than that of the JVM, and precisely define their discrepancy. Moreover, our definition is independent of any specific (or even abstract) machine, and can thus be used to verify JVM implementations and compiler optimizations on any platform. Finally, we show the precise range of consistency relaxations obtainable for the Java memory model when a certain compiler optimization-called prescient stores in JLS-is applicable.
引用
收藏
页码:333 / 386
页数:54
相关论文
共 50 条
  • [1] Characterizations for Java']Java memory behavior
    Gontmakher, A
    Schuster, A
    [J]. FIRST MERGED INTERNATIONAL PARALLEL PROCESSING SYMPOSIUM & SYMPOSIUM ON PARALLEL AND DISTRIBUTED PROCESSING, 1998, : 682 - 686
  • [2] Consistency of Java']Java transactions
    Alagic, S
    Logan, J
    [J]. DATABASE PROGRAMMING LANGUAGES, 2004, 2921 : 71 - 89
  • [3] Java']Java: Memory consistency and process coordination (extended abstract)
    Higham, L
    Kawash, J
    [J]. DISTRIBUTED COMPUTING, 1998, 1499 : 201 - 215
  • [4] A Study of Java']Java's Non-Java']Java Memory
    Ogata, Kazunori
    Mikurube, Dai
    Kawachiya, Kiyokuni
    Trent, Scott
    Onodera, Tamiya
    [J]. ACM SIGPLAN NOTICES, 2010, 45 (10) : 191 - 204
  • [5] Dynamic memory allocation Behavior in Java']Java programs
    Li, RCL
    Fong, AS
    Chun, HW
    Tam, CH
    [J]. COMPUTERS AND THEIR APPLICATIONS, 2001, : 362 - 365
  • [6] The Java']Java memory model
    Manson, J
    Pugh, W
    Adve, SV
    [J]. ACM SIGPLAN NOTICES, 2005, 40 (01) : 378 - 391
  • [7] Java']Java, Java']Java, Java']Java and more
    Makulowich, JS
    [J]. DATABASE, 1997, 20 (01): : 74 - 75
  • [8] Energy behavior of Java']Java applications from the memory perspective
    Vijaykrishnan, N
    Kandemir, M
    Kim, S
    Tomar, S
    Sivasubramaniam, A
    Irwin, MJ
    [J]. USENIX ASSOCIATION PROCEEDINGS JAVA(TM) VIRTUAL MACHINE RESEARCH AND TECHNOLOGY SYMPOSIUM, 2001, : 207 - 219
  • [9] Dynamic memory allocation/deallocation behavior in Java']Java programs
    Fong, AS
    Li, RCL
    [J]. 2002 IEEE REGION 10 CONFERENCE ON COMPUTERS, COMMUNICATIONS, CONTROL AND POWER ENGINEERING, VOLS I-III, PROCEEDINGS, 2002, : 314 - 317
  • [10] Java']Java, Java']Java everywhere
    不详
    [J]. DATAMATION, 1996, 42 (11): : 11 - 11