The Benefits of Duality in Verifying Concurrent Programs under TSO
The Benefits of Duality in Verifying Concurrent Programs under TSO
复制标题
DOI:
10.4230/lipics.concur.2016.5
复制
发表时间:
2017-01
期刊:
影响因子:
--
通讯作者:
P. Abdulla;M. Atig;A. Bouajjani;Ngo Tuan Phong
中科院分区:
文献类型:
--
作者:
P. Abdulla;M. Atig;A. Bouajjani;Ngo Tuan Phong
We address the problem of verifying safety properties of concurrent programs running over the TSO memory model. Known decision procedures for this model are based on complex encodings of store buffers as lossy channels. These procedures assume that the number of processes is fixed. However, it is important in general to prove correctness of a system/algorithm in a parametric way with an arbitrarily large number of processes. In this paper, we introduce an alternative (yet equivalent) semantics to the classical one for the TSO model that is more amenable for efficient algorithmic verification and for extension to parametric verification. For that, we adopt a dual view where load buffers are used instead of store buffers. The flow of information is now from the memory to load buffers. We show that this new semantics allows (1) to simplify drastically the safety analysis under TSO, (2) to obtain a spectacular gain in efficiency and scalability compared to existing procedures, and (3) to extend easily the decision procedure to the parametric case, which allows to obtain a new decidability result, and more importantly, a verification algorithm that is more general and more efficient in practice than the one for bounded instances.