Decoupling Lock-Free Data Structures from Memory Reclamation for Static Analysis
Roland Meyer, Sebastian Wolff

TL;DR
This paper introduces a novel approach to verify concurrent lock-free data structures by decoupling their correctness from complex memory reclamation, enabling fully automated verification of structures like queues.
Contribution
It presents a method to verify data structures and memory management separately, simplifying the verification process and making automation feasible for complex lock-free structures.
Findings
Verified linearizability of Michael&Scott's queue
Verified DGLM queue with hazard pointers and epoch-based reclamation
First fully automatic verification of such lock-free data structures
Abstract
Verification of concurrent data structures is one of the most challenging tasks in software verification. The topic has received considerable attention over the course of the last decade. Nevertheless, human-driven techniques remain cumbersome and notoriously difficult while automated approaches suffer from limited applicability. The main obstacle for automation is the complexity of concurrent data structures. This is particularly true in the absence of garbage collection. The intricacy of lock-free memory management paired with the complexity of concurrent data structures makes automated verification prohibitive. In this work we present a method for verifying concurrent data structures and their memory management separately. We suggest two simpler verification tasks that imply the correctness of the data structure. The first task establishes an over-approximation of the reclamation…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Security and Verification in Computing · Formal Methods in Verification
