Sound garbage collection for C using pointer provenance
Sound garbage collection for C using pointer provenance
复制标题
使用指针来源的 C 健全垃圾收集
DOI:
10.1145/3428244
复制
发表时间:
2020
影响因子:
--
通讯作者:
Narayanasamy, Satish
中科院分区:
文献类型:
--
作者:
Banerjee, Subarno;Devecsery, David;Chen, Peter M.;Narayanasamy, Satish
Garbage collection (GC) support for unmanaged languages can reduce programming burden in reasoning about liveness of dynamic objects. It also avoids temporal memory safety violations and memory leaks.SoundGC for weakly-typed languages such as C/C++, however, remains an unsolved problem. Current value-based GC solutions examine values of memory locations to discover the pointers, and the objects they point to. The approach is inherently unsound in the presence of arbitrary type casts and pointer manipulations, which are legal in C/C++. Such language features are regularly used, especially in low-level systems code.In this paper, we propose Dynamic Pointer Provenance Tracking to realize sound GC. We observe that pointers cannot be created out-of-thin-air, and they must have provenance to at least one valid allocation. Therefore, by tracking pointer provenance from the source (e.g., malloc) through both explicit data-flow and implicit control-flow, our GC has sound and precise information to compute the set of all reachable objects at any program state. We discuss several static analysis optimizations, that can be employed during compilation aided with profiling, to significantly reduce the overhead of dynamic provenance tracking from nearly 8× to 16% for well-behaved programs that adhere to the C standards. Pointer provenance based sound GC invocation is also 13% faster and reclaims 6% more memory on average, compared to an unsound value-based GC.
登录
查看更多内容
DOI:
10.1145/3192366.3192376
发表时间:
2018-06
期刊:
Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation
影响因子:
--
作者:
J. Vilk;E. Berger
通讯作者:
J. Vilk;E. Berger
DOI:
10.1145/3173162.3177153
发表时间:
2018
期刊:
Architectural Support for Programming Languages and Operating Systems
影响因子:
--
作者:
Devecsery, David;Chen, Peter M.;Flinn, Jason;Narayanasamy, Satish
通讯作者:
Narayanasamy, Satish
DOI:
10.1145/3297858.3304017
发表时间:
2019-04
期刊:
Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems
影响因子:
--
作者:
T. Zhang;Dongyoon Lee;Changhee Jung
通讯作者:
T. Zhang;Dongyoon Lee;Changhee Jung
DOI:
--
发表时间:
1999
期刊:
影响因子:
--
作者:
G. Yip;D. Gifford;J. Bartlett;Vi;Joel F Bartlett Title
通讯作者:
Joel F Bartlett Title
DOI:
--
发表时间:
1990
期刊:
影响因子:
--
作者:
Daniel R. Edelson
通讯作者:
Daniel R. Edelson