Date: Wed, 20 Nov 1996 19:14:49 GMT Server: Apache/1.0.3 Content-type: text/html Content-length: 3903 Last-modified: Thu, 30 May 1996 21:40:18 GMT
Heap memory usually requires overhead for storage management, traditionally garbage collection. We have built a reference-counting memory ( RCM ), to be installed as banks of ``smart memories'' without incurring processor cycles for heap management, even on a multiprocessor. It would support languages that depend on a heap, e.g. Lisp, Scheme, Prolog, or Haskell; local use is in Scheme and C. A prototype Applicative File System has been built over RCM, which provides essential files services---persistency and bulk---within a purely applicative environment.Other work is targeted at reusing nodes in place. Applicative style often asks us to copy structure with changes when, in fact, analogous structure is abandoned as the copy occurs. We want to recycle these uniquely referenced nodes, either at run time or, better, at compile time by noticing the unique referencing.
We have developed a generational storage management system, incorporated into Chez Scheme, that employs a segmented memory model and a hybrid tagging system. The hybrid tagging system uses typed pointers and typed objects for object-level typing and big bag of pages (BiBOP) for meta-level typing. The system allows allocation to be performed in-line from a single register-based allocation pointer, results in virtually no tagging overhead, allows the Scheme heap to coexist gracefully with other languages' run-time systems, increases data locality, supports weak pairs and finalization, and supports large objects efficiently. The system is used for ongoing research in storage management.
Associated Faculty: David S. Wise ( dswise ), R. Kent Dybvig ( dyb ).
Associated Graduate Students:
Brian Heck
(
heckb
),
Diana Meadows
(
meadows
),
Joshua Walgenbach
(
jwalgenb
).