{"language":[{"iso":"eng"}],"acknowledgement":"William Leiserson, Alexander Matveev, and Nir Shavit were supported by the NSF under grants IIS-1447786 and CCF-1563880, and Dan Alistarh was supported by a Swiss National Fund Ambizione Fellowship.","publication_status":"published","doi":"10.1145/3064176.3064214","page":"483 - 498","type":"conference","_id":"789","abstract":[{"text":"The problem of efficient concurrent memory reclamation in unmanaged languages such as C or C++ is one of the major challenges facing the parallelization of billions of lines of legacy code. Garbage collectors for C/C++ can be inefficient; thus, programmers are often forced to use finely-crafted concurrent memory reclamation techniques. These techniques can provide good performance, but require considerable programming effort to deploy, and have strict requirements, allowing the programmer very little room for error. In this work, we present Forkscan, a new conservative concurrent memory reclamation scheme which is fully automatic and surprisingly scalable. Forkscan's semantics place it between automatic garbage collectors (it requires the programmer to explicitly retire nodes before they can be reclaimed), and concurrent memory reclamation techniques (as it does not assume that nodes are completely unlinked from the data structure for correctness). Forkscan's implementation exploits these new semantics for efficiency: we leverage parallelism and optimized implementations of signaling and copy-on-write in modern operating systems to efficiently obtain and process consistent snapshots of memory that can be scanned concurrently with the normal program operation. Empirical evaluation on a range of classical concurrent data structure microbenchmarks shows that Forkscan can preserve the scalability of the original code, while maintaining an order of magnitude lower latency than automatic garbage collection, and demonstrating competitive performance with finely crafted memory reclamation techniques.","lang":"eng"}],"date_updated":"2023-02-23T13:19:44Z","publist_id":"6867","oa_version":"None","conference":{"name":"EuroSys: European Conference on Computer Systems"},"author":[{"id":"4A899BFC-F248-11E8-B48F-1D18A9856A87","full_name":"Alistarh, Dan-Adrian","last_name":"Alistarh","orcid":"0000-0003-3650-940X","first_name":"Dan-Adrian"},{"full_name":"Leiserson, William","first_name":"William","last_name":"Leiserson"},{"last_name":"Matveev","first_name":"Alexander","full_name":"Matveev, Alexander"},{"last_name":"Shavit","first_name":"Nir","full_name":"Shavit, Nir"}],"status":"public","date_created":"2018-12-11T11:48:30Z","day":"01","publisher":"ACM","year":"2017","article_processing_charge":"No","user_id":"2DF688A6-F248-11E8-B48F-1D18A9856A87","month":"01","extern":"1","date_published":"2017-01-01T00:00:00Z","citation":{"chicago":"Alistarh, Dan-Adrian, William Leiserson, Alexander Matveev, and Nir Shavit. “Forkscan: Conservative Memory Reclamation for Modern Operating Systems,” 483–98. ACM, 2017. https://doi.org/10.1145/3064176.3064214.","ista":"Alistarh D-A, Leiserson W, Matveev A, Shavit N. 2017. Forkscan: Conservative memory reclamation for modern operating systems. EuroSys: European Conference on Computer Systems, 483–498.","apa":"Alistarh, D.-A., Leiserson, W., Matveev, A., & Shavit, N. (2017). Forkscan: Conservative memory reclamation for modern operating systems (pp. 483–498). Presented at the EuroSys: European Conference on Computer Systems, ACM. https://doi.org/10.1145/3064176.3064214","short":"D.-A. Alistarh, W. Leiserson, A. Matveev, N. Shavit, in:, ACM, 2017, pp. 483–498.","mla":"Alistarh, Dan-Adrian, et al. Forkscan: Conservative Memory Reclamation for Modern Operating Systems. ACM, 2017, pp. 483–98, doi:10.1145/3064176.3064214.","ama":"Alistarh D-A, Leiserson W, Matveev A, Shavit N. Forkscan: Conservative memory reclamation for modern operating systems. In: ACM; 2017:483-498. doi:10.1145/3064176.3064214","ieee":"D.-A. Alistarh, W. Leiserson, A. Matveev, and N. Shavit, “Forkscan: Conservative memory reclamation for modern operating systems,” presented at the EuroSys: European Conference on Computer Systems, 2017, pp. 483–498."},"title":"Forkscan: Conservative memory reclamation for modern operating systems"}