Garbage collection in a large LISP system
1984 · 276 citations · 6 references
Hardware SecurityMemory ArchitectureSymbolics 3600EngineeringProgram AnalysisGarbage Collection TechniquesVirtual MemoryComputer ArchitectureComputer EngineeringSoftware EngineeringSystems EngineeringGarbage CollectionComputer ScienceParallel ComputingMemory ManagementMemory Model (Programming)Software AnalysisSystem Software
This paper discusses garbage collection techniques used in a high-performance Lisp implementation with a large virtual memory, the Symbolics 3600. Particular attention is paid to practical issues and experience. In a large system problems of scale appear and the most straightforward garbage-collection techniques do not work well. Many of these problems involve the interaction of the garbage collector with demand-paged virtual memory. Some of the solutions adopted in the 3600 are presented, including incremental copying garbage collection, approximately depth-first copying, ephemeral objects, tagged architecture, and hardware assists. We discuss techniques for improving the efficiency of garbage collection by recognizing that objects in the Lisp world have a variety of lifetimes. The importance of designing the architecture and the hardware to facilitate garbage collection is stressed.
6
The Art of Computer Programming
W.J. Worlton · Nuclear Science and Engineering · 1968
2.3K citations
List processing in real time on a serial computer
Henry G. Baker · Communications of the ACM · 1978
592 citations
A real-time garbage collector based on the lifetimes of objects
Henry Lieberman, Carl Hewitt · Communications of the ACM · 1983
570 citations
David Ungar · ACM SIGSOFT Software Engineering Notes · 1984
487 citations
A nonrecursive list compacting algorithm
C. J. Cheney · Communications of the ACM · 1970
Computational Complexity TheoryEngineeringAlgorithmic Information Theory+11
390 citations