[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