Logo image
Safe Deferred Memory Reclamation with Types: 28TH EUROPEAN SYMPOSIUM ON PROGRAMMING
Conference proceeding   Open access   Peer reviewed

Safe Deferred Memory Reclamation with Types: 28TH EUROPEAN SYMPOSIUM ON PROGRAMMING

Ismail Kuru and Colin S. Gordon
PROGRAMMING LANGUAGES AND SYSTEMS, ESOP 2019, v 11423, pp 88-116
01 Jan 2019
url
https://doi.org/10.1007/978-3-030-17184-1_4View
Published, Version of Record (VoR)CC BY V4.0 Open

Abstract

Computer Science Computer Science, Software Engineering Computer Science, Theory & Methods Science & Technology Technology
Memory management in lock-free data structures remains a major challenge in concurrent programming. Design techniques including read-copy-update (RCU) and hazard pointers provide workable solutions, and are widely used to great effect. These techniques rely on the concept of a grace period: nodes that should be freed are not deallocated immediately, and all threads obey a protocol to ensure that the deallocating thread can detect when all possible readers have completed their use of the object. This provides an approach to safe deallocation, but only when these subtle protocols are implemented correctly. We present a static type system to ensure correct use of RCU memory management: that nodes removed from a data structure are always scheduled for subsequent deallocation, and that nodes are scheduled for deallocation at most once. As part of our soundness proof, we give an abstract semantics for RCU memory management primitives which captures the fundamental properties of RCU. Our type system allows us to give the first proofs of memory safety for RCU linked list and binary search tree implementations without requiring full verification.

Metrics

7 Record Views
2 citations in Scopus

Details

UN Sustainable Development Goals (SDGs)

This publication has contributed to the advancement of the following goals:

#11 Sustainable Cities and Communities

InCites Highlights

Data related to this publication, from InCites Benchmarking & Analytics tool:

Web of Science research areas
Computer Science, Software Engineering
Computer Science, Theory & Methods
Logo image