Morris's Garbage Compaction Algorithm Restores Reference Counts

  • Authors:
  • David S. Wise

  • Affiliations:
  • Computer Science Department, Indiana University, 101 Lindley Hall, Bloomington, IN

  • Venue:
  • ACM Transactions on Programming Languages and Systems (TOPLAS)
  • Year:
  • 1979

Quantified Score

Hi-index 0.05

Visualization

Abstract

The two-pass compaction algorithm of F.L. Morris, which follows upon the mark phase in a garbage collector, may be modified to recover reference counts for a hybrid storage management system. By counting the executions of two loops in that algorithm where upward and downward references, respectively, are forwarded to the relocation address of one node, we can initialize a count of active references and then update it but once. The reference count may share space with the mark bit in each node, but it may not share the additional space required in each pointer by Morris's algorithm, space which remains unused outside the garbage collector.