[gclist] Program behaviour

Eric Jeschke jeschke@cs.indiana.edu
Tue, 15 Oct 1996 09:15:49 EST


+-- Paul R. Wilson (wilson@cs.utexas.edu) writes:
| What matters most turns out to be keeping objects that are sometimes
| *not* accessed together on different pages.  Sometimes it is a win
| to separate of objects of different types onto different pages,
| even if the objects are linked together into a single data structure.
| If some traversals of the data structure skip one kind of object,
| it'll be good if those are on a different set of pages than the
| ones you always touch---you don't always have to fault in the
| whole set.
+--

Good point.  Another example of when distribution is a win is
multiprocessor GC on Non-Uniform Memory Access architectures
(e.g. distributed memory) or snoopy cache systems; you want to
distribute data structures somewhat to minimize switch contention
(imagine for example, several processes quicksorting a shared list
of numbers), while you want your GC to help preserve (or enhance)
process memory locality.

[shameless plug] One of the interesting aspects of designing such a
parallel GC is that process scheduling is intricately related and cannot
be considered in isolation, as it is in conventional systems.  I describe
a scheduling algorithm designed with GC in mind (and vice-versa) in my
dissertation:

	ftp://ftp.cs.indiana.edu/pub/techreports/TR445.ps.Z


-- 
Dr. Eric Jeschke                  |       Visiting Research Associate
jeschke@cs.indiana.edu            |          Indiana University   
                                  |       Computer Science Department
http://www.cs.indiana.edu/hyplan/jeschke