On Interference Abstractions

被引:20
作者
Sinha, Nishant
Wang, Chao
机构
来源
POPL 11: PROCEEDINGS OF THE 38TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES | 2011年
关键词
D O I
10.1145/1926385.1926433
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Interference is the bane of both concurrent programming and analysis. To avoid considering all possible interferences between concurrent threads, most automated static analysis employ techniques to approximate interference, e.g., by restricting the thread scheduler choices or by approximating the transition relations or reachable states of the program. However, none of these methods are able to reason about interference directly. In this paper, we introduce the notion of interference abstractions (IAs), based on the models of shared memory consistency, to reason about interference efficiently. IAs differ from the known abstractions for concurrent programs and cannot be directly modeled by these abstractions. Concurrency bugs typically involve a small number of unexpected interferences and therefore can be captured by small IAs. We show how IAs, in the form of both over- and under-approximations of interference, can be obtained syntactically from the axioms of sequential consistency. Further, we present an automatic method to synthesize IAs suitable for checking safety properties. Our experimental results show that amall IAs are often sufficient to check properties in realistic applications, and drastically improve the scalability of concurrent program analysis in these applications.
引用
收藏
页码:423 / 434
页数:12
相关论文
共 46 条
[1]   Shared memory consistency models: A tutorial [J].
Adve, SV ;
Gharachorloo, K .
COMPUTER, 1996, 29 (12) :66-&
[2]  
[Anonymous], 1996, LECT NOTES COMPUTER, DOI DOI 10.1007/3-540-60761-7
[3]  
[Anonymous], 2005, I KPAI
[4]   Automatic predicate abstraction of C programs [J].
Ball, T ;
Millstein, T ;
Majumdar, R ;
Rajamani, SK .
ACM SIGPLAN NOTICES, 2001, 36 (05) :203-213
[5]  
BALLANCE RA, PLDI 90, P257
[6]   An abstraction-based decision procedure for bit-vector arithmetic [J].
Bryant R.E. ;
Kroening D. ;
Ouaknine J. ;
Seshia S.A. ;
Strichman O. ;
Brady B. .
International Journal on Software Tools for Technology Transfer, 2009, 11 (02) :95-104
[7]   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
[8]   A tool for checking ANSI-C programs [J].
Clarke, E ;
Kroening, D ;
Lerda, F .
TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PROCEEDINGS, 2004, 2988 :168-176
[9]   Counterexample-guided abstraction refinement for symbolic model checking [J].
Clarke, E ;
Grumberg, O ;
Jha, S ;
Lu, Y ;
Veith, H .
JOURNAL OF THE ACM, 2003, 50 (05) :752-794
[10]  
Clarke Jr Edmund M, MODEL CHECKING