Abstract
Automatic storage management requires that one identify storage unreachable by a user's program and return it to free status. One technique maintains a count of the references from user's programs to each cell, since a count of zero implies the storage is unreachable. Reentrant structures are self-referencing; hence no cell in them will have a count of zero, even though the entire structure is unreachable. A modification of standard reference counting can be used to manaage the deallocation of a large class of frequently used reentrant structures, including two-way and circularly linked lists.
All the cells of a potentially reentrant structure are considered as part of a single group for deallocation purposes. Information associated with each cell specifies its group membership. Internal references (pointers from one cell of the group to another) are not reference counted. External references to any cell of this group are counted as references to the group as a whole. When the external reference count goes to zero, all the cells of the group can be deallocated. This paper describes several ways of specifying group membership, properties of each implementation, and properties of mutable and immutable group membership.
- 1 FENICHEL, R.R. List tracing in systems allowing multiple cell-types. Commun. ACM 14, 8 (Aug. 1971), 522-526. Google ScholarDigital Library
- 2 FRIEDMAN, D.P., AND WINE, D.S. Reference counting can manage the circular environments of mutual recursion. Inform. Process. Lett. 8, 1 (1979).Google ScholarCross Ref
- 3 HOPCRAFT, J.E., A~D ULLMAN, J.D. Set merging algorithms. SIAM J. Comput. 2 (1973).Google Scholar
- 4 K~VTH, D.E. The Art of Computer Programming, Vol. 1: Fundamental Algorithms. Addison- Wesley, Reading, Mass., 1973.Google Scholar
- 5 TAP, JAN, R.E. Efficiency of a good but not linear set merging algorithm. J. ACM 22, 2 (April, 1975), 215-225. Google ScholarDigital Library
- 6 WEiZENBAVM, J. Symmetric list processor. Commun. ACM 6, 9 (Sept. 1963), 524-544. Google ScholarDigital Library
Index Terms
- Managing Reentrant Structures Using Reference Counts
Recommendations
Ulterior reference counting: fast garbage collection without a long wait
OOPSLA '03: Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applicationsGeneral purpose garbage collectors have yet to combine short pause times with high throughput. For example, generational collectors can achieve high throughput. They have modest average pause times, but occasionally collect the whole heap and ...
Ulterior reference counting: fast garbage collection without a long wait
Special Issue: Proceedings of the OOPSLA '03 conferenceGeneral purpose garbage collectors have yet to combine short pause times with high throughput. For example, generational collectors can achieve high throughput. They have modest average pause times, but occasionally collect the whole heap and ...
Comments