Newsgroups: comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!rochester!cornellcs!newsstand.cit.cornell.edu!news.tc.cornell.edu!newsserver.sdsc.edu!news.cerf.net!proton.llumc.edu!galaxy.ucr.edu!library.ucla.edu!newsfeed.internetmci.com!chi-news.cic.net!condor.acc.iit.edu!uchinews!not-for-mail
From: cdjeris@midway.uchicago.edu (Christopher Jeris)
Subject: Garbage collection models
X-Nntp-Posting-Host: quads.uchicago.edu
Message-ID: <Dn593I.2Fq@midway.uchicago.edu>
Summary: How to model gc: one per thread, one per process, one per system?
Keywords: Scheme Modula-3 garbage collection systems
Sender: news@midway.uchicago.edu (News Administrator)
Organization: The University of Chicago
Date: Wed, 21 Feb 1996 21:02:06 GMT
Lines: 28

The standard disclaimer applies:  I am not a CS student and probably
don't have the background to be thinking straight about these issues.
If my questions are ill-formed or the proper answer requires volumes
of foundational material, just tell me where to look.  :)

Both of my favorite languages, Scheme and Modula-3, have garbage
collection.  However, the underlying operating system is a Unix, whose
memory management facilities (such as they are) I don't really
understand.  I do know that a process can be regarded as having an
arena of memory owned by it and no other, and in addition memory
blocks can be shared between processes, but that nothing more
sophisticated than free() is usually provided for cleanup and
reclamation of unused storage _inside_ this arena.  In a compiled
Scheme or Modula-3 program, the GC code, as I understand it, is
therefore part of the application (or linked in as a shared library);
in an interpreted Scheme program, everything is running under the
umbrella of the interpreter anyway, which takes care of GC along with
everything else.

My question is:  Are there models in which it makes sense to provide
garbage collection at the level of the system rather than the process?
One hunch says no, although GC code can (should) be shared between
processes each process needs to have its own traced heap.  Does this
make sense?

Christopher Jeris		University of Chicago Math:
 c-jeris@uchicago.edu		 The mother of all functors awaits you.

