Optimal Dynamic Partial Order Reduction

被引:112
作者
Abdulla, Parosh [1 ]
Aronis, Stavros [1 ]
Jonsson, Bengt [1 ]
Sagonas, Konstantinos [1 ]
机构
[1] Uppsala Univ, Dept Informat Technol, Uppsala, Sweden
关键词
dynamic partial oder reduction; software model checking; systematic testing; concurrency; source sets; wakeup trees; MODEL CHECKING; PROGRAMS; SOFTWARE;
D O I
10.1145/2535838.2535845
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Stateless model checking is a powerful technique for program verification, which however suffers from an exponential growth in the number of explored executions. A successful technique for reducing this number, while still maintaining complete coverage, is Dynamic Partial Order Reduction (DPOR). We present a new DPOR algorithm, which is the first to be provably optimal in that it always explores the minimal number of executions. It is based on a novel class of sets, called source sets, which replace the role of persistent sets in previous algorithms. First, we show how to modify an existing DPOR algorithm to work with source sets, resulting in an efficient and simple to implement algorithm. Second, we extend this algorithm with a novel mechanism, called wakeup trees, that allows to achieve optimality. We have implemented both algorithms in a stateless model checking tool for Erlang programs. Experiments show that source sets significantly increase the performance and that wakeup trees incur only a small overhead in both time and space.
引用
收藏
页码:373 / 384
页数:12
相关论文
共 25 条
[1]  
[Anonymous], ADDENDUM DYNAMIC PAR
[2]  
[Anonymous], 1996, LNCS, DOI DOI 10.1007/3-540-60761-7
[3]   Erlang [J].
Armstrong, Joe .
COMMUNICATIONS OF THE ACM, 2010, 53 (09) :68-75
[4]   State space reduction using partial order techniques [J].
Clarke E.M. ;
Grumberg O. ;
Minea M. ;
Peled D. .
International Journal on Software Tools for Technology Transfer, 1999, 2 (3) :279-287
[5]   Dynamic partial-order reduction for model checking software [J].
Flanagan, C ;
Godefroid, P .
ACM SIGPLAN NOTICES, 2005, 40 (01) :110-121
[6]   STATE-SPACE CACHING REVISITED [J].
GODEFROID, P ;
HOLZMANN, GJ ;
PIROTTIN, D .
FORMAL METHODS IN SYSTEM DESIGN, 1995, 7 (03) :227-241
[7]  
Godefroid P., 1997, Conference Record of POPL '97: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, P174, DOI 10.1145/263699.263717
[8]   Software model checking: The VeriSoft approach [J].
Godefroid, P .
FORMAL METHODS IN SYSTEM DESIGN, 2005, 26 (02) :77-101
[9]  
Godefroid P, 1993, LNCS, V697
[10]  
Kähkönen K, 2012, IEEE INT CONF AUTOM, P150, DOI 10.1145/2351676.2351698