ThreadScan: Automatic and Scalable Memory Reclamation
Author(s)
Alistarh, Dan; Leiserson, William Mitchell; Matveev, Alexander; Shavit, Nir N.
DownloadShavit_threadscan.pdf (510.6Kb)
OPEN_ACCESS_POLICY
Open Access Policy
Creative Commons Attribution-Noncommercial-Share Alike
Terms of use
Metadata
Show full item recordAbstract
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 paper, 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.
Date issued
2015-06Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory; Massachusetts Institute of Technology. Department of Electrical Engineering and Computer ScienceJournal
Proceedings of the 27th ACM on Symposium on Parallelism in Algorithms and Architectures (SPAA 2015)
Publisher
Association for Computing Machinery (ACM)
Citation
Alistarh, Dan et al. “ThreadScan: Automatic and Scalable Memory Reclamation.” Proceedings of the 27th ACM on Symposium on Parallelism in Algorithms and Architectures (SPAA 2015), June 13-15, 2015, Portland, Oregon, USA, Association for Computing Machinery (ACM), June 2015 © 2015 Association for Computing Machinery (ACM)
Version: Author's final manuscript
ISBN
978-1-4503-3588-1