MemSAT: checking axiomatic specifications of memory models
MemSAT: checking axiomatic specifications of memory models
复制标题
MemSAT:检查内存模型的公理规范
DOI:
10.1145/1806596.1806635
复制
发表时间:
2010
影响因子:
--
通讯作者:
Julian T Dolby
中科院分区:
文献类型:
--
作者:
Emina Torlak;M. Vaziri;Julian T Dolby
Memory models are hard to reason about due to their complexity, which stems from the need to strike a balance between ease-of-programming and allowing compiler and hardware optimizations. In this paper, we present an automated tool, MemSAT, that helps in debugging and reasoning about memory models. Given an axiomatic specification of a memory model and a multi-threaded test program containing assertions, MemSAT outputs a trace of the program in which both the assertions and the memory model axioms are satisfied, if one can be found. The tool is fully automatic and is based on a SAT solver. If it cannot find a trace, it outputs a minimal subset of the memory model and program constraints that are unsatisfiable. We used MemSAT to check several existing memory models against their published test cases, including the current Java Memory Model by Manson et al. and a revised version of it by Sevcik and Aspinall. We found subtle discrepancies between what was expected and the actual results of test programs.