Generation scavenging: a nondisruptive high performance storage reclamation algorithm

Many interactive computing environments provide automatic storage reclamation and virtual memory to ease the burden of managing storage. Unfortunately, many storage reclamation algorithms impede interaction with distracting pauses. Generation Scavenging is a reclamation algorithm that has no noticeable pauses, eliminates page faults for transient objects, compacts objects without resorting to indirection, and reclaims circular structures, in one third the time of traditional approaches. We have incorporated Generation Scavenging in Berkeley Smalltalk(BS), our Smalltalk-80 implementation, and instrumented it to obtain performance data. We are also designing a microprocessor with hardware support for Generation Scavenging .

[1]  Henry G. Baker,et al.  List processing in real time on a serial computer , 1978, CACM.

[2]  James William Stamos,et al.  A large object-oriented virtual memory: grouping strategies, measurements, and performance , 1982 .

[3]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1960, Commun. ACM.

[4]  Arvind J. Thadhani Interactive User Productivity , 1981, IBM Syst. J..

[5]  David A. Patterson,et al.  Architecture of SOAR: Smalltalk on a RISC , 1984, ISCA 1984.

[6]  George E. Collins,et al.  A method for overlapping and erasure of lists , 1960, CACM.

[7]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[8]  Richard J. Fateman,et al.  Characterization of VAX Macsyma , 1981, SYMSAC '81.

[9]  Scott B. Baden High Performance Storage Reclamation in an Object-Based Memory System , 1982 .

[10]  Thomas A. Standish Data Structure Techniques , 1980 .

[11]  Jon L. White,et al.  Address/Memory Management for a Gigantic LISP Environment. , 1980 .

[12]  Daniel G. Bobrow,et al.  An efficient, incremental, automatic garbage collector , 1976, CACM.

[13]  Henry Lieberman,et al.  A real-time garbage collector based on the lifetimes of objects , 1983, CACM.

[14]  L. Peter Deutsch,et al.  Efficient implementation of the smalltalk-80 system , 1984, POPL.

[15]  Tom Kilburn,et al.  One-Level Storage System , 1962, IRE Trans. Electron. Comput..

[16]  Ricki Blau Paging on an object-oriented personal computer , 1983, SIGMETRICS '83.

[17]  Jacques Cohen,et al.  Garbage Collection of Linked Data Structures , 1981, CSUR.

[18]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .