Bounded Verification of Multi-threaded Programs via Lazy Sequentialization

被引:0
|
作者
Inverso, Omar [1 ,6 ]
Tomasco, Ermenegildo [2 ]
Fischer, Bernd [3 ]
La Torre, Salvatore [4 ]
Parlato, Gennaro [5 ]
机构
[1] Gran Sasso Sci Inst, Laquila, Italy
[2] Agenzia Entrate, Via Angelo Rubino, I-84078 Vallo Della Lucania, SA, Italy
[3] Stellenbosch Univ, Div Comp Sci, Private Bag X1, ZA-7602 Matieland, South Africa
[4] Univ Salerno, Dipartimento Informat, Via Giovanni Paolo II 132, I-84084 Fisciano, SA, Italy
[5] Univ Molise, Dipartimento Biosci & Terr, I-86090 Pesche, IS, Italy
[6] Gran Sasso Sci Inst GSSI, Viale F Crispi 7, I-67100 Laquila, AQ, Italy
基金
英国工程与自然科学研究理事会;
关键词
Concurrent program analysis; sequentialization; MODEL-CHECKING; CONCURRENT PROGRAMS; CSEQ;
D O I
10.1145/3478536
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Bounded verification techniques such as bounded model checking (BMC) have successfully been used for many practical program analysis problems, but concurrency still poses a challenge. Here, we describe a new approach to BMC of sequentially consistent imperative programs that use POSIX threads. We first translate the multi-threaded program into a nondeterministic sequential program that preserves reachability for all round-robin schedules with a given bound on the number of rounds. We then reuse existing high-performance BMC tools as backends for the sequential verification problem. Our translation is carefully designed to introduce very small memory overheads and very few sources of nondeterminism, so it produces tight SAT/SMT formulae, and is thus very effective in practice: Our Lazy-CSeq tool implementing this translation for the C programming language won several gold and silver medals in the concurrency category of the Software Verification Competitions (SV-COMP) 2014-2021 and was able to find errors in programs where all other techniques (including testing) failed. In this article, we give a detailed description of our translation and prove its correctness, sketch its implementation using the CSeq framework, and report on a detailed evaluation and comparison of our approach.
引用
收藏
页数:50
相关论文
共 50 条
  • [21] Regression verification for multi-threaded programs (with extensions to locks and dynamic thread creation)
    Chaki, Sagar
    Gurfinkel, Arie
    Strichman, Ofer
    [J]. FORMAL METHODS IN SYSTEM DESIGN, 2015, 47 (03) : 287 - 301
  • [22] Automatic Verification of Multi-threaded Programs by Inference of Rely-Guarantee Specifications
    Le, Xuan-Bach
    Sanan, David
    Jun, Sun
    Lin, Shang-Wei
    [J]. 2020 25TH INTERNATIONAL CONFERENCE ON ENGINEERING OF COMPLEX COMPUTER SYSTEMS (ICECCS 2020), 2020, : 43 - 52
  • [23] Regression verification for multi-threaded programs (with extensions to locks and dynamic thread creation)
    Sagar Chaki
    Arie Gurfinkel
    Ofer Strichman
    [J]. Formal Methods in System Design, 2015, 47 : 287 - 301
  • [24] Plagiarism Detection of Multi-Threaded Programs via Siamese Neural Networks
    Tian, Zhenzhou
    Wang, Qing
    Gao, Cong
    Chen, Lingwei
    Wu, Dinghao
    [J]. IEEE ACCESS, 2020, 8 (08): : 160802 - 160814
  • [25] Parallel Refinement for Multi-Threaded Program Verification
    Yin, Liangze
    Dong, Wei
    Liu, Wanwei
    Wang, Ji
    [J]. 2019 IEEE/ACM 41ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2019), 2019, : 643 - 653
  • [26] On testing multi-threaded Java']Java programs
    Gong, Xufang
    Wang, Yanchen
    Zhou, Ying
    Li, Bixin
    [J]. SNPD 2007: EIGHTH ACIS INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ARTIFICIAL INTELLIGENCE, NETWORKING, AND PARALLEL/DISTRIBUTED COMPUTING, VOL 1, PROCEEDINGS, 2007, : 702 - +
  • [27] Synergistic Timing Speculation for Multi-threaded Programs
    Yasin, Atif
    Zhang, Jeff
    Chen, Hu
    Garg, Siddharth
    Roy, Sanghamitra
    Chakraborty, Koushik
    [J]. 2016 ACM/EDAC/IEEE DESIGN AUTOMATION CONFERENCE (DAC), 2016,
  • [28] Quantitative Analysis of Leakage for Multi-threaded Programs
    Chen, Han
    Malacaria, Pasquale
    [J]. PLAS'07: PROCEEDINGS OF THE 2007 ACM SIGPLAN WORKSHOP ON PROGRAMMING LANGUAGES AND ANALYSIS FOR SECURITY, 2007, : 31 - 40
  • [29] On interleaving space exploration of multi-threaded programs
    Dongjie Chen
    Yanyan Jiang
    Chang Xu
    Xiaoxing Ma
    [J]. Frontiers of Computer Science, 2021, 15
  • [30] On interleaving space exploration of multi-threaded programs
    Dongjie CHEN
    Yanyan JIANG
    Chang XU
    Xiaoxing MA
    [J]. Frontiers of Computer Science, 2021, (04) - 12