[gclist] gc interface

David Bruce dib@signal.dra.hmg.gb
Fri, 22 Mar 1996 09:49:05 GMT


(   It seems to me from reading various gc papers and this mailing list,
 )  that the performance of various gc techniques is highly dependent on the
(   properties of the application.  So, one should give some control to the
 )  application programmer, right?  Allow the programmer to pick and choose
(   different algorithms, tune the various parameters, etc.
 )
(   Is there any research, or has anybody thought about, how to do this?

I'm not sure it goes quite as far as you have in mind, but the Glasgow
Haskell system has several (4 ?) gcs that can be chosen at build time.
The compiler is apparently parametrized (by C macros :-( ) so that it
isn't aware of the difference.  Last I heard, though, there was precious
little documentation so I'm not sure how general their approach is.

(   But maybe some subset of that functionality is feasible.  Even within a
 )  single program.  Perhaps part of my program could benefit from a tracing
(   gc.  Part of it is well-behaved enough to use by-hand freeing, attached
 )  to destructors.  Or maybe even mark/release.  Or ref counting.  Another
(   part writes data to disk, and needs special consideration.  Some tasks
 )  in my program need hard-real-time response, but some don't.  Some parts
(   allocate fixed-sized objects, whose size is known at compile time,
 )  whereas some parts allocate run-time sized objects, which are usually
(   small.  And some parts allocate big objects.

There are systems with multiple `memories' (either physical, as in a
distributed context, or logical, as in effect systems, generational gc
schemes, and others; persistent systems often offer both).  In such a
context it is possible in principle to use different memory management
policies in each `memory', going some way towards what you want.
However, I don't know how many (if any) available systems *actually use*
different policies for different `memory's!

Alan Dearle has done some work in this area for his Grasshopper OS.
I spent some time hammering out the principles of such a system
a few years back, but was never entirely happy with certain aspects on
techno-philosophical grounds and never implemented anything.
No doubt others have done more?

    David Bruce
----
post:  DRA Malvern, St Andrews Road, Malvern, Worcestershire WR14 3PS, ENGLAND
email: dib@dra.hmg.gb   **  WWW[tmp]: http://siwg.dra.hmg.gb/commerce/malvern
phone: +44 1684 895112  **  fax: +44 1684 894389 or 894540  **  telex: 339747