Generation Scavenging: a Non-Disruptlve High Perfornm.Nce Storage Reclamation Algorithm
Generation Scavenging: A Non-disruptlve High Perfornm.nce Storage Reclamation Algorithm David Ungar Computer Science Division Department of Electrical Engineering and Computer Sciences University of California Berkeley, California 94720 1. Introduction ABSTRACT Researchers have designed several interactive pro- gramming environments to expedite software construe- Many interactive computing environmencs tion [She83] Central to such environments are high level provide automatic storage reclamation and vir- languages like Lisp, Cedar Mesa, and Smalltalk-80 TM tual memory to ease the burden of managing iGoR83], that provide virtual memory and automatic storage. Unfortunately, many storage reclams~- storage reclamation. Traditionally, the cost of a storage tion algorithms impede interaction with dis- management strategy has been measured by its use of tracting pauses. Generation Scavenging is a rec- CPU time, primary memory, and backing store opera- lamation algorithm that has no noticeable tions averaged over a session. Interactive systems pauses, eliminates page faults for transient demand good short-term performance as well. Large, objects, compacts objects without resorting to unexpected pauses caused by thrashing or storage recla- indirection, and reclaims circular structures, in mation are distracting and reduce productivity. We have one third the time of traditional approaches. designed~ implemented, and measured Generation We have incorporated Generation Scaveng. Scavenging, a new garbage collector that int. in Berkeley Smalltalk (BS), our Smalltalk- • limits pause times to a fraction of a second, 80* implementation, and instrumented it to obtain performance data. We are also designing • requires no hardware support, a microprocessor with hardware support for • meshes well with virtual memory, Generation Scavenging. • reclaims circular structures, and Keywords: garbage collection, generation, per- • uses less than 2% of the CPU time in one Smalltalk sonal computer, real time, scavenge, Smalltalk, system.
[Show full text]