On Scheduling Constraint Abstraction for Multi-Threaded Program Verification

被引:19
|
作者
Yin, Liangze [1 ]
Dong, Wei [1 ]
Liu, Wanwei [1 ]
Wang, Ji [2 ]
机构
[1] Natl Univ Def Technol, Sch Comp, Lab Software Engn Complex Syst, Changsha 410073, Hunan, Peoples R China
[2] Natl Univ Def Technol, Sch Comp, State Key Lab High Performance Comp, Lab Software Engn Complex Syst, Changsha 410073, Hunan, Peoples R China
基金
国家重点研发计划;
关键词
Instruction sets; Electrooculography; Encoding; Concurrent computing; Programming; Model checking; Tools; Multi-threaded program; bounded model checking; scheduling constraint; event order graph; MODEL CHECKING; CONCURRENT;
D O I
10.1109/TSE.2018.2864122
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Bounded model checking is among the most efficient techniques for the automated verification of concurrent programs. However, due to the nondeterministic thread interleavings, a large and complex formula is usually required to give an exact encoding of all possible behaviors, which significantly limits the scalability. Observing that the large formula is usually dominated by the exact encoding of the scheduling constraint, this paper proposes a novel scheduling constraint based abstraction refinement method for multi-threaded C program verification. Our method is both efficient in practice and complete in theory, which is challenging for existing techniques. To achieve this, we first proposed an effective and powerful technique which works well for nearly all benchmarks we evaluated. We have proposed the notion of Event Order Graph (EOG), and have devised two graph-based algorithms over EOG for counterexample validation and refinement generation, which can often obtain a small yet effective refinement constraint. Then, to ensure completeness, our method was enhanced with two constraint-based algorithms for counterexample validation and refinement generation. Experimental results on SV-COMP 2017 benchmarks and two real-world server systems indicate that our method is promising and significantly outperforms the state-of-the-art tools.
引用
收藏
页码:549 / 565
页数:17
相关论文
共 50 条
  • [1] 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
  • [2] Lost in abstraction: Monotonicity in multi-threaded programs
    Kaiser, Alexander
    Kroening, Daniel
    Wahl, Thomas
    [J]. INFORMATION AND COMPUTATION, 2017, 252 : 30 - 47
  • [3] On-line multi-threaded scheduling
    Feuerstein, E
    Mydlarz, M
    Stougie, L
    [J]. JOURNAL OF SCHEDULING, 2003, 6 (02) : 167 - 181
  • [4] Regression Verification for Multi-threaded Programs
    Chaki, Sagar
    Gurfinkel, Arie
    Strichman, Ofer
    [J]. VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, 2012, 7148 : 119 - 135
  • [5] Global multi-threaded instruction scheduling
    Ottoni, Guilherme
    August, David I.
    [J]. MICRO-40: PROCEEDINGS OF THE 40TH ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE, 2007, : 56 - 68
  • [6] On-line Multi-threaded Scheduling
    Esteban Feuerstein
    Marcelo Mydlarz
    Leen Stougie
    [J]. Journal of Scheduling, 2003, 6 : 167 - 181
  • [7] Satisfiability Modulo Ordering Consistency Theory for Multi-threaded Program Verification
    He, Fei
    Sun, Zhihang
    Fan, Hongyu
    [J]. PROCEEDINGS OF THE 42ND ACM SIGPLAN INTERNATIONAL CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '21), 2021, : 1264 - 1279
  • [8] Predicate Abstraction and Refinement for Verifying Multi-Threaded Programs
    Gupta, Ashutosh
    Popeea, Corneliu
    Rybalchenko, Andrey
    [J]. ACM SIGPLAN NOTICES, 2011, 46 (01) : 331 - 344
  • [9] Predicate Abstraction and Refinement for Verifying Multi-Threaded Programs
    Gupta, Ashutosh
    Popeea, Corneliu
    Rybalchenko, Andrey
    [J]. POPL 11: PROCEEDINGS OF THE 38TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2011, : 331 - 344
  • [10] Reduction for Compositional Verification of Multi-Threaded Programs
    Popeea, Corneliu
    Rybalchenko, Andrey
    Wilhelm, Andreas
    [J]. 2014 FORMAL METHODS IN COMPUTER-AIDED DESIGN (FMCAD), 2014, : 187 - 194