A Basis for Verifying Multi-threaded Programs

10 years 6 months ago
A Basis for Verifying Multi-threaded Programs
Abstract. 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 includ...
K. Rustan M. Leino, Peter Müller
Added 19 May 2010
Updated 19 May 2010
Type Conference
Year 2009
Where ESOP
Authors K. Rustan M. Leino, Peter Müller
Comments (0)