Fair stateless model checking

被引:8
|
作者
Musuvathi, Madanlal [1 ]
Qadeer, Shaz [1 ]
机构
[1] Microsoft Res, Redmond, WA USA
关键词
algorithms; reliability; verification; concurrency; fairness; liveness; model checking; multi-threading; shared-memory programs; software testing;
D O I
10.1145/1379022.1375625
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Stateless model checking is a useful state-space exploration technique for systematically testing complex real-world software. Existing stateless model checkers are limited to the verification of safety properties on terminating programs. However, realistic concurrent programs are nonterminating, a property that significantly reduces the efficacy of stateless model checking in testing them. Moreover, existing stateless model checkers are unable to verify that a nonterminating program satisfies the important liveness property of livelock-freedom, a property that requires the program to make continuous progress for any input. To address these shortcomings, this paper argues for incorporating a fair scheduler in stateless exploration. The key contribution of this paper is an explicit scheduler that is (strongly) fair and at the same time sufficiently nondeterministic to guarantee full coverage of safety properties. We have implemented the fair scheduler in the CHESS model checker. We show through theoretical arguments and empirical evaluation that our algorithm satisfies two important properties: 1) it visits all states of a finite-state program achieving state coverage at a faster rate than existing techniques, and 2) it finds all livelocks in a finite-state program. Before this work, nonterminating programs had to be manually modified in order to apply CHESS to them. The addition of fairness has allowed CHESS to be effectively applied to real-world nonterminating programs without any modification. For example, we have successfully booted the Singularity operating system under the control of CHESS.
引用
收藏
页码:362 / 371
页数:10
相关论文
共 50 条
  • [1] Fair Stateless Model Checking
    Musuvathi, Madanial
    Qadeer, Shaz
    [J]. PLDI'08: PROCEEDINGS OF THE 2008 SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN & IMPLEMENTATION, 2008, : 362 - 371
  • [2] Stateless Model Checking for POWER
    Abdulla, Parosh Aziz
    Atig, Mohamed Faouzi
    Jonsson, Bengt
    Leonardsson, Carl
    [J]. COMPUTER AIDED VERIFICATION: 28TH INTERNATIONAL CONFERENCE, CAV 2016, PT II, 2016, 9780 : 134 - 156
  • [3] Stateless model checking for TSO and PSO
    Parosh Aziz Abdulla
    Stavros Aronis
    Mohamed Faouzi Atig
    Bengt Jonsson
    Carl Leonardsson
    Konstantinos Sagonas
    [J]. Acta Informatica, 2017, 54 : 789 - 818
  • [4] Progress on Algorithms for Stateless Model Checking
    Sagonas, Kostis
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2018, (268):
  • [5] Stateless model checking for TSO and PSO
    Abdulla, Parosh Aziz
    Aronis, Stavros
    Atig, Mohamed Faouzi
    Jonsson, Bengt
    Leonardsson, Carl
    Sagonas, Konstantinos
    [J]. ACTA INFORMATICA, 2017, 54 (08) : 789 - 818
  • [6] Effective Lock Handling in Stateless Model Checking
    Kokologiannakis, Michalis
    Raad, Azalea
    Vafeiadis, Viktor
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2019, 3
  • [7] Optimal Stateless Model Checking for Causal Consistency
    Abdulla, Parosh
    Atig, Mohamed Faouzi
    Krishna, S.
    Gupta, Ashutosh
    Tuppe, Omkar
    [J]. TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PT I, TACAS 2023, 2023, 13993 : 105 - 125
  • [8] Stateless Model Checking of Event-Driven Applications
    Jensen, Casper S.
    Moller, Anders
    Raychev, Veselin
    Dimitrov, Dimitar
    Vechev, Martin
    [J]. ACM SIGPLAN NOTICES, 2015, 50 (10) : 57 - 73
  • [9] The Quest for Optimality in Stateless Model Checking of Concurrent Programs
    Jonsson, Bengt
    [J]. FORMAL METHODS FOR INDUSTRIAL CRITICAL SYSTEMS, FMICS 2018, 2018, 11119 : XI - XII
  • [10] Parallel Graph-Based Stateless Model Checking
    Lang, Magnus
    Sagonas, Konstantinos
    [J]. AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS (ATVA 2020), 2020, 12302 : 377 - 393