Software Transactional Memory (STM) algorithms provide programmers with a synchronisation mechanism for concurrent access to shared variables. Basically, programmers can specify transactions (reading from and writing to shared state) which execute "seemingly" atomic. This property is captured in a correctness criterion called opacity. For model checking opacity of an STM algorithm, we -- in principle -- need to check opacity for all possible combinations of transactions writing to and reading from potentially unboundedly many variables. To still apply automatic model checking techniques to opacity checking, a so called small model theorem has been proven which states that model checking on two variables and two transactions is sufficient for correctness verification of STMs. In this paper, we take a fresh look at this small model theorem and investigate its applicability to opacity checking of STM algorithms.
翻译:软件交易内存算法( STM) 向程序员提供了一个同步机制, 用于同时访问共享变量。 基本上, 程序员可以指定执行“ 表面” 原子的交易( 从读和写到共享状态) 。 此属性被记录在称为不透明的一种正确性标准中。 对于STM 算法的透明性, 我们原则上需要检查所有可能的笔记和阅读交易组合的不透明性。 要继续使用自动模式检查技术来进行不透明检查, 一个叫做小模型的理论已经得到验证, 这表明对两个变量和两个交易的模型检查足以对STMS进行正确性核查。 在本文中, 我们重新审视这个小模型的理论, 并调查它是否适用于对 STM 算法的不透明性检查 。