【24h】

Verification of the Java Causality Requirements

机译:验证Java因果关系要求

获取原文
获取原文并翻译 | 示例

摘要

The Java Memory Model (JMM) formalizes the behavior of shared memory accesses in a multithreaded Java program. Dependencies between memory accesses are acyclic, as defined by the JMM causality requirements. We study the problem of post-mortem verification of these requirements and prove that the task is NP-complete. We then argue that in some cases the task may be simplified either by considering a slightly stronger memory model or by tracing the actual execution order of Read actions in each thread. Our verification algorithm has two versions: a polynomial version, to be used when one of the aforementioned simplifications is possible, and a non-polynomial version - for short test sequences only - to be used in all other cases. Finally, we argue that the JMM causality requirements could benefit from some fine-tuning. Our examination of causality test case 6 (presented in the public discussion of the JMM) clearly shows that some useful compiler optimizations - which one would expect to be permissible - are in fact prohibited by the formal model.
机译:Java内存模型(JMM)规范了多线程Java程序中共享内存访问的行为。内存访问之间的依赖关系是非周期性的,如JMM因果关系要求所定义。我们研究了对这些要求的验尸验证问题,并证明了该任务是NP完全的。然后,我们认为在某些情况下,可以通过考虑稍微强一些的内存模型或通过跟踪每个线程中Read动作的实际执行顺序来简化任务。我们的验证算法有两种版本:一种是多项式版本,在可能进行上述简化之一时使用;一种非多项式版本(仅适用于短测试序列),在所有其他情况下都可以使用。最后,我们认为JMM因果关系需求可以从一些微调中受益。我们对因果关系测试用例6(在JMM的公开讨论中提出)的检查清楚地表明,正式模型实际上禁止了一些有用的编译器优化-人们期望这是允许的。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号