A Basis for Verifying Multi-threaded Programs

被引:0
|
作者
Rustan, K.
Leino, M.
Mueller, Peter
机构
关键词
OBJECT-ORIENTED PROGRAMS;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Advanced multi-threaded programs apply concurrency concepts in sophisticated ways. For instance, they use fine-grained locking to increase parallelism and change locking orders dynamically when data structures are being reorganized. This paper presents a sound and modular verification methodology that can handle advanced concurrency patterns in multi-threaded, object-based programs. The methodology is based on implicit dynamic frames and uses fractional permissions to support fine-grained locking. It supports concepts such as multi-object monitor invariants, thread-local and shared objects, thread pre- and postconditions, and deadlock prevention with a dynamically changeable locking order. The paper prescribes the generation of verification conditions in first-order logic, well-suited for scrutiny by off-the-shelf SMT solvers. A verifier for the methodology has been implemented for an experimental language, and has been used to verify several challenging examples including hand-over-hand locking for linked lists and a lock re-ordering algorithm.
引用
收藏
页码:378 / 393
页数:16
相关论文
共 50 条
  • [1] Verifying multi-threaded C programs with SPIN
    Zaks, Anna
    Joshi, Rajeev
    [J]. MODEL CHECKING SOFTWARE, PROCEEDINGS, 2008, 5156 : 325 - +
  • [2] Predicate Abstraction and Refinement for Verifying Multi-Threaded Programs
    Gupta, Ashutosh
    Popeea, Corneliu
    Rybalchenko, Andrey
    [J]. ACM SIGPLAN NOTICES, 2011, 46 (01) : 331 - 344
  • [3] 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
  • [4] Verifying Multi-threaded Software with Impact
    Wachter, Bjoern
    Kroening, Daniel
    Ouaknine, Joel
    [J]. 2013 FORMAL METHODS IN COMPUTER-AIDED DESIGN (FMCAD), 2013, : 210 - 217
  • [5] A Light-Weight Approach for Verifying Multi-Threaded Programs with CPAchecker
    Beyer, Dirk
    Friedberger, Karlheinz
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2016, (233): : 61 - 71
  • [6] Security Check for Multi-threaded Programs
    Tri Minh Ngo
    Tuan Van Nguyen
    [J]. 2016 IEEE SIXTH INTERNATIONAL CONFERENCE ON COMMUNICATIONS AND ELECTRONICS (ICCE), 2016, : 465 - 470
  • [7] Information Declassification for Multi-Threaded Programs
    Zhu, Hao
    Zhuang, Yi
    Chen, Xiang
    [J]. APPLIED MATHEMATICS & INFORMATION SCIENCES, 2014, 8 (04): : 1911 - 1916
  • [8] Probabilistic noninterference for multi-threaded programs
    Sabelfeld, A
    Sands, D
    [J]. 13TH IEEE COMPUTER SECURITY FOUNDATIONS WORKSHOP, PROCEEDINGS, 2000, : 200 - 214
  • [9] Information leakage of multi-threaded programs
    Noroozi, Ali A.
    Karimpour, Jaber
    Isazadeh, Ayaz
    [J]. COMPUTERS & ELECTRICAL ENGINEERING, 2019, 78 : 400 - 419
  • [10] Regression Verification for Multi-threaded Programs
    Chaki, Sagar
    Gurfinkel, Arie
    Strichman, Ofer
    [J]. VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, 2012, 7148 : 119 - 135