A Verification-Based Approach to Memory Fence Insertion in PSO Memory Systems

被引:0
作者
Linden, Alexander [1 ]
Wolper, Pierre [1 ]
机构
[1] Univ Liege, Inst Montefiore, B28, B-4000 Liege, Belgium
来源
TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, TACAS 2013 | 2013年 / 7795卷
关键词
MODELS; PROGRAMS; X86-TSO;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This paper addresses the problem of verifying and correcting programs when they are moved from a sequential consistency execution environment to a relaxed memory context. Specifically, it considers the PSO (Partial Store Order) memory model, which corresponds to the use of a store buffer for each shared variable and each process. We also will consider, as an intermediate step, the TSO (Total Store Order) memory model, which corresponds to the use of one store buffer per process. The proposed approach extends a previously developed verification tool that uses finite automata to symbolically represent the possible contents of the store buffers. Its starting point is a program that is correct for the usual Sequential Consistency (SC) memory model, but that might be incorrect under PSO with respect to safety properties. This program is then first analyzed and corrected for the TSO memory model, and then this TSO-safe program is analyzed and corrected under PSO, producing a PSO-safe program. To obtain a TSO-safe program, only store-load fences (TSO only allows store-load relaxations) are introduced into the program. Finaly, to produce a PSO-safe program, only store-store fences (PSO additionally allows store-store relaxations) are introduced. An advantage of our technique is that the underlying symbolic verification tool makes a full exploration of program behaviors possible even for cyclic programs, which makes our approach broadly applicable. The method has been tested with an experimental implementation and can effectively handle a series of classical examples.
引用
收藏
页码:339 / 353
页数:15
相关论文
共 24 条
[1]  
Abdulla PA, 2012, LECT NOTES COMPUT SC, V7214, P204, DOI 10.1007/978-3-642-28756-5_15
[2]  
[Anonymous], LNCS, DOI [10.1007/BFb0032741, DOI 10.1007/BFB0032741]
[3]  
[Anonymous], 1996, LNCS, DOI DOI 10.1007/3-540-60761-7
[4]  
Atig Mohamed Faouzi, 2011, Computer Aided Verification. Proceedings 23rd International Conference, CAV 2011, P99, DOI 10.1007/978-3-642-22110-1_9
[5]   On the Verification Problem for Weak Memory Models [J].
Atig, Mohamed Faouzi ;
Bouajjani, Ahmed ;
Burckhardt, Sebastian ;
Musuvathi, Madanlal .
POPL'10: PROCEEDINGS OF THE 37TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2010, :7-18
[6]  
Boigelot B., 1994, Computer Aided Verification. 6th International Conference, CAV '94. Proceedings, P55
[7]  
Bouajjani A, 2013, LECT NOTES COMPUT SC, V7792, P533, DOI 10.1007/978-3-642-37036-6_29
[8]   CheckFence: Checking Consistency of Concurrent Data Types on Relaxed Memory Models [J].
Burckhardt, Sebastian ;
Alur, Rajeev ;
Martin, Milo M. K. .
PLDI'07: PROCEEDINGS OF THE 2007 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2007, :12-21
[9]  
Burckhardt S, 2008, LECT NOTES COMPUT SC, V5123, P107
[10]  
Burckhardt S, 2006, LECT NOTES COMPUT SC, V4144, P489, DOI 10.1007/11817963_45