Modular verification of multithreaded programs

被引:36
|
作者
Flanagan, C [1 ]
Freund, SN
Qadeer, S
Seshia, SA
机构
[1] Univ Calif Santa Cruz, Comp Sci Dept, Santa Cruz, CA 95064 USA
[2] Williams Coll, Comp Sci Dept, Williamstown, MA 01267 USA
[3] Carnegie Mellon Univ, Sch Comp Sci, Pittsburgh, PA 15213 USA
[4] Microsoft Res, Redmond, WA 98052 USA
基金
美国国家科学基金会;
关键词
concurrent software; verification; assume-guarantee reasoning; automated theorem proving; verification conditions; software engineering;
D O I
10.1016/j.tcs.2004.12.006
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Multithreaded software systems are prone to errors due to the difficulty of reasoning about multiple interleaved threads operating on shared data. Static checkers that analyze a program's behavior over all execution paths and all thread interleavings are a powerful approach to identifying bugs in such systems. In this paper, we present Calvin, a scalable and expressive static checker for multithreaded programs based on automatic theorem proving. To handle realistic programs, Calvin performs modular checking of each procedure called by a thread using specifications of other procedures and other threads. Our experience applying Calvin to several real-world programs indicates that Calvin has a moderate annotation overhead and can catch common defects in multithreaded programs, such as synchronization errors and violations of data invariants. (c) 2004 Elsevier B.V. All fights reserved.
引用
收藏
页码:153 / 183
页数:31
相关论文
共 50 条
  • [41] Verification of Parameterized Concurrent Programs By Modular Reasoning about Data and Control
    Farzan, Azadeh
    Kincaid, Zachary
    [J]. POPL 12: PROCEEDINGS OF THE 39TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2012, : 297 - 308
  • [42] Visualizing Potential Deadlocks in Multithreaded Programs
    Kim, Byung-Chul
    Jun, Sang-Woo
    Hwang, Dae Joon
    Jun, Yong-Kee
    [J]. PARALLEL COMPUTING TECHNOLOGIES, PROCEEDINGS, 2009, 5698 : 321 - +
  • [43] Pointer and escape analysis for multithreaded programs
    Salcianu, A
    Rinard, M
    [J]. ACM SIGPLAN NOTICES, 2001, 36 (07) : 12 - 23
  • [44] Debugging Multithreaded Programs as if They Were Sequential
    Zhang, Xiaodong
    Yang, Zijiang
    Zheng, Qinghua
    Hao, Yu
    Liu, Pei
    Yu, Lechen
    Fan, Ming
    Liu, Ting
    [J]. 2016 INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, TESTING AND EVOLUTION (SATE 2016), 2016, : 78 - 83
  • [45] Constraint graph analysis of multithreaded programs
    Cain, HW
    Lipasti, MH
    Nair, R
    [J]. 12TH INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURES AND COMPILATION TECHNIQUES, PROCEEDINGS, 2003, : 4 - 14
  • [46] ADAPT: A Framework for Coscheduling Multithreaded Programs
    Pusukuri, Kishore Kumar
    Gupta, Rajiv
    Bhuyan, Laxmi N.
    [J]. ACM TRANSACTIONS ON ARCHITECTURE AND CODE OPTIMIZATION, 2013, 9 (04)
  • [47] Reachability in Binary Multithreaded Programs Is Polynomial
    Malkis, Alexander
    Borgwardt, Steffen
    [J]. 2017 IEEE 37TH INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS (ICDCS 2017), 2017, : 2083 - 2088
  • [48] Detection of deadlock potentials in multithreaded programs
    Agarwal, R.
    Bensalem, S.
    Farchi, E.
    Havelund, K.
    Nir-Buchbinder, Y.
    Stoller, S. D.
    Ur, S.
    Wang, L.
    [J]. IBM JOURNAL OF RESEARCH AND DEVELOPMENT, 2010, 54 (05)
  • [49] A concept of portable monitoring of multithreaded programs
    Balis, B
    Bubak, M
    Funika, W
    Wismüller, R
    [J]. COMPUTATIONAL SCIENCE-ICCS 2002, PT II, PROCEEDINGS, 2002, 2330 : 884 - 893
  • [50] Asserting and Checking Determinism for Multithreaded Programs
    Burnim, Jacob
    Sen, Koushik
    [J]. 7TH JOINT MEETING OF THE EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND THE ACM SIGSOFT SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2009, : 3 - 12