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 条
  • [41] Handling information release and erasure in multi-threaded programs
    Jiang, Li
    Ping, Lingdi
    Pan, Xuezeng
    [J]. CIS: 2007 INTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND SECURITY, PROCEEDINGS, 2007, : 824 - 828
  • [42] Information Flow Security of Multi-Threaded Distributed Programs
    Focardi, Riccardo
    Centenaro, Matteo
    [J]. PLAS'08: PROCEEDINGS OF THE ACM SIGPLAN THIRD WORKSHOP ON PROGRAMMING LANGUAGES AND ANALYSIS FOR SECURITY, 2008, : 113 - 124
  • [43] Safe and Timely Dynamic Updates for Multi-threaded Programs
    Neamtiu, Iulian
    Hicks, Michael
    [J]. PLDI'09 PROCEEDINGS OF THE 2009 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2009, : 13 - 24
  • [44] On the Existence of Probe Effect in Multi-threaded Embedded Programs
    Song, Young Wn
    Lee, Yann-Hang
    [J]. 2014 INTERNATIONAL CONFERENCE ON EMBEDDED SOFTWARE (EMSOFT), 2014,
  • [45] Framework for testing multi-threaded Java']Java programs
    Edelstein, O
    Farchi, E
    Goldin, E
    Nir, Y
    Ratsaby, G
    Ur, S
    [J]. CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2003, 15 (3-5): : 485 - 499
  • [46] Thread-specific heaps for multi-threaded programs
    Steensgaard, B
    [J]. ACM SIGPLAN NOTICES, 2001, 36 (01) : 18 - 24
  • [47] AggrePlay: Efficient Record and Replay of Multi-threaded Programs
    Pobee, Ernest
    Chan, W. K.
    [J]. ESEC/FSE'2019: PROCEEDINGS OF THE 2019 27TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2019, : 567 - 577
  • [48] RTL C-based methodology for designing and verifying a multi-threaded processor
    Séméria, L
    Seawright, A
    Mehra, R
    Ng, D
    Ekanayake, A
    Pangrle, B
    [J]. 39TH DESIGN AUTOMATION CONFERENCE, PROCEEDINGS 2002, 2002, : 123 - 128
  • [49] Extending JML for modular specification and verification of multi-threaded programs
    Rodríguez, E
    Dwyer, M
    Flanagan, C
    Hatcliff, J
    Leavens, GT
    Robby
    [J]. ECOOP 2005 - OBJECT-ORIENTED PROGRAMMING, PROCEEDINGS, 2005, 3586 : 551 - 576
  • [50] Input-driven Active Testing of Multi-threaded Programs
    Yue, Han
    Wu, Peng
    Chen, Tsong-Yueh
    Lv, Yi
    [J]. 2015 22ND ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2015), 2015, : 246 - 253