Affiliation:
1. IST Austria, Klosterneuburg, Austria
2. MIT, Cambridge, MA
Abstract
The concurrent memory reclamation problem is that of devising a way for a deallocating thread to verify that no other concurrent threads hold references to a memory block being deallocated. To date, in the absence of automatic garbage collection, there is no satisfactory solution to this problem; existing tracking methods like hazard pointers, reference counters, or epoch-based techniques like RCU are either prohibitively expensive or require significant programming expertise to the extent that implementing them efficiently can be worthy of a publication. None of the existing techniques are automatic or even semi-automated.
In this article, we take a new approach to concurrent memory reclamation. Instead of manually tracking access to memory locations as done in techniques like hazard pointers, or restricting shared accesses to specific epoch boundaries as in RCU, our algorithm, called ThreadScan, leverages operating system signaling to automatically detect which memory locations are being accessed by concurrent threads.
Initial empirical evidence shows that ThreadScan scales surprisingly well and requires negligible programming effort beyond the standard use of Malloc and Free.
Funder
Schweizerischer Nationalfonds zur Förderung der Wissenschaftlichen Forschung
Publisher
Association for Computing Machinery (ACM)
Subject
Computational Theory and Mathematics,Computer Science Applications,Hardware and Architecture,Modelling and Simulation,Software
Cited by
10 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Expediting Hazard Pointers with Bounded RCU Critical Sections;Proceedings of the 36th ACM Symposium on Parallelism in Algorithms and Architectures;2024-06-17
2. Are Your Epochs Too Epic? Batch Free Can Be Harmful;Proceedings of the 29th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming;2024-02-20
3. Simple, Fast and Widely Applicable Concurrent Memory Reclamation via Neutralization;IEEE Transactions on Parallel and Distributed Systems;2024-02
4. Modular Verification of Safe Memory Reclamation in Concurrent Separation Logic;Proceedings of the ACM on Programming Languages;2023-10-16
5. Applying Hazard Pointers to More Concurrent Data Structures;Proceedings of the 35th ACM Symposium on Parallelism in Algorithms and Architectures;2023-06-17