Verifying Multi-threaded Software with Impact

被引:0
|
作者
Wachter, Bjoern [1 ]
Kroening, Daniel [1 ]
Ouaknine, Joel [1 ]
机构
[1] Univ Oxford, Dept Comp Sci, Oxford OX1 2JD, England
关键词
PREDICATE ABSTRACTION; MODEL CHECKING;
D O I
暂无
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Lazy abstraction with interpolants, also known as the Impact algorithm, is en vogue as a state-of-the-art software model-checking technique for sequential programs. However, a direct extension of the Impact algorithm to concurrent programs is bound to be inefficient as it has to explore all thread interleavings, which leads to control-state explosion. To this end, we present a new algorithm that combines a new, symbolic form of partial-order reduction with Impact. Our algorithm carries out the dependence analysis on-the-fly while constructing the abstraction and is thus able to deal precisely with dynamic dependencies arising from accesses to tables or pointers - a setting where classical static partial-order reduction techniques struggle. We have implemented the algorithm in a prototype tool that analyses concurrent C program with POSIX threads and evaluated it on a number of benchmark programs. To our knowledge, this is the first application of an Impact-like algorithm to concurrent programs.
引用
收藏
页码:210 / 217
页数:8
相关论文
共 50 条
  • [1] A Basis for Verifying Multi-threaded Programs
    Rustan, K.
    Leino, M.
    Mueller, Peter
    PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2009, 5502 : 378 - 393
  • [2] Verifying multi-threaded C programs with SPIN
    Zaks, Anna
    Joshi, Rajeev
    MODEL CHECKING SOFTWARE, PROCEEDINGS, 2008, 5156 : 325 - +
  • [3] Predicate Abstraction and Refinement for Verifying Multi-Threaded Programs
    Gupta, Ashutosh
    Popeea, Corneliu
    Rybalchenko, Andrey
    ACM SIGPLAN NOTICES, 2011, 46 (01) : 331 - 344
  • [4] Verifying a compiler optimization for multi-threaded Java']Java
    Reus, B
    Knapp, A
    Cenciarelli, P
    Wirsing, M
    RECENT TRENDS IN ALGEBRAIC DEVELOPMENT TECHNIQUES, 1998, 1376 : 402 - 417
  • [5] Predicate Abstraction and Refinement for Verifying Multi-Threaded Programs
    Gupta, Ashutosh
    Popeea, Corneliu
    Rybalchenko, Andrey
    POPL 11: PROCEEDINGS OF THE 38TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2011, : 331 - 344
  • [6] Progress in cancellable, multi-threaded, control software
    Shortridge, K.
    Farrell, T. J.
    SOFTWARE AND CYBERINFRASTRUCTURE FOR ASTRONOMY, 2010, 7740
  • [7] Verifying Multi-threaded Software using SMT-based Context-Bounded Model Checking
    Cordeiro, Lucas
    Fischer, Bernd
    2011 33RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2011, : 331 - 340
  • [8] An Architecture for Safe and Efficient Multi-threaded Robot Software
    Kazanzides, Peter
    Deguet, Anton
    Kapoor, Ankur
    2008 IEEE INTERNATIONAL CONFERENCE ON TECHNOLOGIES FOR PRACTICAL ROBOT APPLICATIONS, 2008, : 89 - 93
  • [9] A Light-Weight Approach for Verifying Multi-Threaded Programs with CPAchecker
    Beyer, Dirk
    Friedberger, Karlheinz
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2016, (233): : 61 - 71
  • [10] NOVICE PROGRAMMERS' COPING WITH MULTI-THREADED SOFTWARE DESIGN
    Rashkovits, Rami
    Lavy, Ilana
    JOURNAL OF INFORMATION TECHNOLOGY EDUCATION-INNOVATIONS IN PRACTICE, 2020, 19 : 75 - 89