Bibliography for Concurrent Remembered Set Refinement in Generational Garbage Collection
@Article{Ungar:1984:GSN,
author = "D. Ungar",
title = "Generation scavenging: a non-disruptive high
performance storage reclamation algorithm",
journal = "ACM SIG{\-}PLAN Notices",
volume = "19",
number = "5",
pages = "157--167",
month = may,
year = "1984",
coden = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sat Apr 25 11:46:37 MDT 1998",
acknowledgement = ack-nhfb,
classification = "C6120 (File organisation)",
conflocation = "Pittsburgh, PA, USA; 23-25 April 1984",
conftitle = "Proceedings of the ACM SIGSOFT/SIGPLAN Software
Engineering Symposium on Practical Software Development
Environments",
corpsource = "Dept. of Electrical Engng. and Computer Sci., Univ. of
California, Berkeley, CA, USA",
keywords = "automatic storage reclamation; Berkeley Smalltalk
Smalltalk; circular structures; generation scavenging;
interactive computing environments; storage management;
storage reclamation algorithms; virtual memory",
sponsororg = "ACM",
treatment = "T Theoretical or Mathematical",
}
@Article(Baker78,
Author = "Baker, H. G.",
Key = "Baker",
Journal = "Communications of the ACM",
Title = "List Processing in Real Time on a Serial Computer",
Year = "1978",
Month = "April",
Volume = "21",
Number = "4",
Pages = "280-294"
)
@InProceedings{huds90,
author = "Richard L. Hudson and Amer Diwan",
title = "Adaptive Garbage Collection for {M}odula-3 and
{S}malltalk",
address = "Ottawa",
booktitle = "{OOPSLA/ECOOP} '90 Workshop on Garbage Collection in
Object-Oriented Systems",
editor = "Eric Jul and Niels-Christian Juul",
month = oct,
year = "1990",
url = "ftp://ftp.cs.utexas.edu/pub/garbage/GC90/Hudson.ps.Z",
}
@Article{lieb83,
author = "Henry Lieberman and Carl E. Hewitt",
title = "A Real-Time Garbage Collector Based on the Lifetimes
of Objects",
journal = "Communications of the {ACM}",
publisher = "ACM Press",
volume = "26(6)",
pages = "419--429",
year = "1983",
note = "Also report TM--184, Laboratory for Computer Science,
MIT, Cambridge, MA, July 1980 and AI Lab Memo 569,
1981",
abstract = "The authors, motivated by the need for efficient
management of short-lived objects in object-oriented
systems for AI applications, propose a new garbage
collection algorithm. The algorithm which is proposed
has the objective of differentiating the special case
of garbage collection for objects with short lives.
Such differentiation, the paper argues, will also
improve the garbage collection for long-lived objects,
since less effort is made in considering these objects
for reclamation. The algorithm proposed is an extension
of a garbage collection algorithm proposed by Baker.
The most important feature of Baker's algorithm is that
elementary object creation and object access time take
a bounded amount of time regardless of the memory size.
It is a real-time algorithm. As an enhancement to
Baker's algorithm, the authors propose dividing the
address space into small regions, with each region
being composed of a set of pages. This division is
different from the Baker algorithm, which divides the
address space into two regions. The second enhancement
to Baker's algorithm uses the finer divisions of the
address space to vary the rate of garbage collection
for each region according to the age of the region. The
criteria for determining the rate are motivated by the
observation that newer regions contain a higher
percentage of garbage. The paper is excellently
constructed. It was, however, disappointing not to find
comparative measurements for performance, region
fragmentation, the impact of locality, the impact of
programming style, etc. Nevertheless, the paper is
recommended.",
}
@InProceedings{Moon:acm:lfp:1984,
author = "David A. Moon",
title = "Garbage Collection in a Large {Lisp} System",
booktitle = "Conference Record of the 1984 {ACM} Symposium on Lisp
and Functional Programming",
publisher = "ACM",
month = aug,
year = "1984",
pages = "235--246",
refs = "7",
checked = "19940322",
source = "dept. library",
keywords = "Lisp, garbage collection",
abstract = "This paper discusses garbage collection techniques
used in a high-performance Lisp implementation with a
large virtual memory, the Symbolics 3600. Particular
attention is paid to practical issues and experience.
In a large system problems of scale appear and the most
straightforward garbage-collection techniques do not
work well. Many of these problems involve the
interaction of the garbage collector with demand-paged
virtual memory. Some of the solutions adopted in the
3600 are presented, including incremental copying
garbage collection, approximately depth-first copying,
ephemeral objects, tagged architecture, and hardware
assists. We discuss techniques for improving the
efficiency of garbage collection by recognizing that
objects in the Lisp world have a variety of lifetimes.
The importance of designing the architecture and the
hardware to facilitate garbage collection is
stressed.",
reffrom = "Lang:Dupont:iait:1987",
reffrom = "Moon:ieee:c:1987",
reffrom = "Appel:spe:1989",
reffrom = "Johnson:acm:lfp:1990",
reffrom = "Zorn:acm:lfp:1990",
reffrom = "Baker:acm:lfp:1990",
reffrom = "Layer:Richardson:cacm:1991",
reffrom = "Allard:Hawkins:cacm:1991",
reffrom = "Wilson:Lam:Moher:acm:lfp:1992",
reffrom = "Jagannathan:Philbin:acm:lfp:1992",
}
@article{Ung84-sigplan,
author = {D. M. Ungar},
title = "Generation Scavenging: {A} Non-disruptive High Performance Storage Reclamation Algorithm",
journal = {ACM SIGPLAN Notices},
number = 5,
volume = 19,
pages = {157--167},
month = apr,
year = {1984}
}
@inproceedings{Wil92-iwmm,
author = {P. R. Wilson},
title = "Uniprocessor Garbage Collection Techniques",
booktitle = {International Workshop on Memory Management},
address = {St. Malo, France},
publisher = SV,
series = {Lecture Notes in Computer Science},
number = {637},
pages = {1--42},
month = sep,
year = {1992}
}
@book{Jon96-gcbook,
title = {{Garbage Collection: Algorithms for Automatic Dynamic Memory Management}},
author = {Richard Jones and Rafael Lins},
publisher = JWS,
year = {1996}
}
@InProceedings{fitz00,
author = "Robert Fitzgerald and David Tarditi",
title = "The Case for Profile-Directed Selection of Garbage
Collectors",
booktitle = "Proceedings of the Second International Symposium on
Memory Management",
editor = "Tony Hosking",
address = "Minneapolis, MN",
publisher = "ACM Press",
month = oct,
year = "2000",
ISBN = "1-58113-263-8",
abstract = "Many garbage-collected systems use a single garbage
collection algorithm across all applications. It has
long been known that this can produce poor performance
on applications for which that collector is not well
suited. In some systems, such as those that execute
stand-alone compiled executables, an appropriate
collector for each application can be selected from a
pool of available collectors and tuned by using profile
information. In a study of 20 benchmarks and 6
collectors compiled with the Marmot optimizing
Java-to-native compiler, for every collector there was
at least one benchmark that would have been at least
15\% faster with a more appropriate collector. A
detailed analysis of storage management costs shows how
they vary by application and collector.",
}
@InProceedings{HoskingAnt1993a,
author = "Antony L. Hosking and Richard L. Hudson",
booktitle = "ACM OOPSLA'93 Workshop on Memory Management and
Garbage Collection",
title = "Remembered Sets can also Play Cards",
year = "1993",
address = "Washington, DC",
url = "ftp://ftp.cs.utexas.edu/pub/garbage/GC93/hosking.ps",
keywords = "write barrier, generational garbage collection",
month = oct,
scope = "gc",
}
@TechReport{Soba88,
author = "Patrick G. Sobalvarro",
title = "A Lifetime-Based Garbage Collector for {Lisp} Systems
on General-Purpose Computers",
type = "{B.S.} thesis",
institution = "Massachusetts Institute of Technology {EECS}
Department",
address = "Cambridge, Massachusetts",
year = "1988",
}
@inproceedings{HMS92-oopsla,
author = {A. L. Hosking and J. E. B. Moss and D. Stefanovic},
booktitle = {Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications},
address = {Vancouver, Canada},
pages = {92--109},
title = "A Comparative Performance Evaluation of Write Barrier Implementations",
month = oct,
year = {1992}
}
@Article{Wilson:1989:CSC,
author = "Paul R. Wilson and Thomas G. Moher",
title = "A ``Card-Marking'' Scheme for Controlling
Intergenerational References in Generation-based
Garbage Collection on Stock Hardware",
journal = "ACM SIG{\-}PLAN Notices",
volume = "24",
number = "5",
pages = "87--92",
month = may,
year = "1989",
coden = "SINODQ",
ISSN = "0362-1340",
bibdate = "Fri Feb 14 18:46:32 MST 1997",
abstract = "Like D. Moon's Ephemeral Garbage Collector ours does
not actually record which individual locations hold
intergenerational pointers. Ours uses a software
analogue to pages, called cards. Since individual
locations are not remembered, whole cards must be
scanned at scavenge time to find pointers into younger
generations. This lowered-resolution recording has two
benefits, the space required for recording is greatly
reduced, and the base cost of examining this
information (at scavenge time) is similarly decreased.
To minimize the continual run-time overhead, we record
only whether a location is modified. These benefits may
be significant in large heaps, especially if locality
is poor or the page size is large.",
acknowledgement = ack-nhfb,
affiliationaddress = "Chicago, IL, USA",
classification = "723",
journalabr = "SIGPLAN Not",
keywords = "Card Scanning; Computer Operating Systems--Storage
Allocation; Computer Programming languages--lisp;
Computer Software; Data Processing; Data Storage,
Digital--Virtual; Data Structures; Garbage Collection;
Intergenerational References; languages; Stock
Hardware",
subject = "D.4.2 Software, OPERATING SYSTEMS, Storage Management
\\ D.2.m Software, SOFTWARE ENGINEERING, Miscellaneous
\\ D.3.2 Software, PROGRAMMING LANGUAGES, Language
Classifications \\ D.3.3 Software, PROGRAMMING
LANGUAGES, Language Constructs",
}
@InProceedings{Boehm91a,
author = "Hans-J. Boehm and Alan J. Demers and Scott Shenker",
title = "Mostly Parallel Garbage Collection",
pages = "157--164",
ISBN = "0-89791-428-7",
editor = "Brent Hailpern",
booktitle = "Proceedings of the {ACM} {SIGPLAN} '91 Conference on
Programming Language Design and Implementation",
address = "Toronto, ON, Canada",
month = jun,
year = "1991",
publisher = "ACM Press",
}
@InProceedings{1990:popl:demers,
author = "Alan Demers and Mark Weiser and Barry Hayes and Hans
Boehm and Daniel Bobrow and Scott Shenker",
title = "Combining Generational and Conservative Garbage
Collection: Framework and Implementations",
booktitle = "Conference Record of the Seventeenth Annual {ACM}
Symposium on Principles of Programming
Languages",
year = "1990",
organization = "ACM SIGACT and SIGPLAN",
publisher = "ACM Press",
ISBN = "0-89791-343-4",
pages = "261--269",
genterms = "DESIGN, LANGUAGES, THEORY",
categories = "D.3.4 Software, PROGRAMMING LANGUAGES, Processors.
D.1.0 Software, PROGRAMMING TECHNIQUES, General. D.4.2
Software, OPERATING SYSTEMS, Storage Management,
Allocation/deallocation strategies.",
abstract = "Two key ideas in garbage collection are generational
collection and conservative pointer-finding.
Generational collection and conservative
pointer-finding are hard to use together, because
generational collection is usually expressed in terms
of copying objects, while conservative pointer-finding
precludes copying. We present a new framework for
defining garbage collectors. When applied to
generational collection, it generalizes the notion of
younger/older to a partial order. It can describe
traditional generational and conservative techniques,
and lends itself to combining different techniques in
novel ways. We study in particular two new garbage
collectors inspired by this framework. Both these
collectors use conservative pointer-finding. The first
one is based on a rewrite of an existing
trace-and-sweep collector to use one level of
generation. The second one has a single parameter,
which controls how objects are partitioned into
generations; the value of this parameter can be changed
dynamically with no overhead. We have implemented both
collectors and present measurements of their
performance in practice.",
annote = "incomplete",
}
@Article{Baker:acm:sigplan:1993,
author = "Henry G. Baker",
title = "``{I}nfant Mortality'' and Generational Garbage
Collection",
journal = "SIGPLAN Notices",
volume = "28",
number = "4",
pages = "55--57",
month = apr,
year = "1993",
checked = "19940512",
refs = "11",
keywords = "generational garbage collection",
abstract = "Generation-based garbage collection has been advocated
by appealing to the intuitive but vague notion that
``young objects are more likely to die than old
objects''. The intuition is, that if a generation-based
garbage collection scheme focuses its effort on
scanning recently created objects, then its scanning
efforts will pay off more in the form of more recovered
garbage, than if it scanned older objects. In this
note, we show a counterexample of a system in which
``infant mortality'' is as high as you please, but for
which generational garbage collection is ineffective
for improving the average mark/cons ratio. Other
benefits, such as better locality and a smaller number
of large delays, may still make generational garbage
collection attractive for such a system, however.",
sjb = "The example where the generational system doesn't fair
so well is when objects die in an exponential decay
pattern. Suggests that papers on generational
collectors should include amongst other things the
mark/cons ratios and localities.",
}
@InProceedings{1991:oopsla:sharma,
author = "Ravi Sharma and Mary Lou Soffa",
title = "Parallel Generational Garbage Collection",
editor = "Andreas Paepcke",
booktitle = "{OOPSLA}~'91 Conference Proceedings: Object-Oriented
Programming Systems, Languages, and Applications",
year = "1991",
publisher = "ACM Press",
ISBN = "0-89791-446-5 (ACM), 0-201-55417-8 (Addison-Wesley)",
ISSN = "0362-1340",
pages = "16--32",
url = "https://www.acm.org/pubs/articles/proceedings/oops/117954/p16-sharma/p16-sharma.pdf",
genterms = "ALGORITHMS, DESIGN, LANGUAGES",
categories = "D.1.3 Software, PROGRAMMING TECHNIQUES, Concurrent
Programming, Parallel programming. D.3.2 Software,
PROGRAMMING LANGUAGES, Language Classifications,
Object-oriented languages. C.1.2 Computer Systems
Organization, PROCESSOR ARCHITECTURES, Multiple Data
Stream Architectures (Multiprocessors), Parallel
processors**. D.3.4 Software, PROGRAMMING LANGUAGES,
Processors. D.4.2 Software, OPERATING SYSTEMS, Storage
Management, Allocation/deallocation strategies.",
annote = "incomplete",
}
@InProceedings{DTAD:OOPSLAGC93,
author = "David Tarditi and Amer Diwan",
title = "The Full Cost of a Generational copying Garbage
Collection Implementation",
booktitle = "Workshop on Garbage Collection",
month = sep,
year = "1993",
publisher = "{ACM} Press",
note = "Only available online",
ftpdir = "cs.utexas.edu",
filename = "OOPSLA.93.GC/tarditi.ps",
}
@Book{Weaver:1994:SAM,
author = "David L. Weaver and Tom Germond",
title = "The {SPARC} Architecture Manual Version 9",
publisher = "Pren{\-}tice-Hall PTR",
address = "Upper Saddle River, NJ 07458, USA",
pages = "xxii + 357",
year = "1994",
ISBN = "0-13-099227-5",
LCCN = "QA76.9.A73S648 1992",
bibdate = "Fri Jul 22 08:37:56 1994",
price = "US\$33.00",
acknowledgement = ack-nhfb,
}
@InProceedings{Diec99a,
author = "Sylvia Dieckmann and Urs Hoelzle",
editor = "R. Guerraoui",
title = "A Study of the Allocation Behavior of the {SPEC}jvm98
Java Benchmarks",
booktitle = "Proceedings ECOOP'99",
series = "LCNS 1628",
pages = "92--115",
publisher = "Springer-Verlag",
address = "Lisbon, Portugal",
month = jun,
year = "1999",
keywords = "olit ecoop99proc",
abstract = "We present an analysis of the memory usage for six of
the Java programs in the SPECjvm98 benchmark suite.
Most of the programs are real- world applications with
high demands on the memory system. For each program, we
measured as much low level data as possible, including
age and size distribution, type distribution, and the
overhead of object alignment. Among other things, we
found that non-pointer data usually represents more
than 50\% of the allocated space for instance objects,
that Java objects tend to live longer than objects in
Smalltalk or ML, and that they are fairly small.",
}
@inproceedings{DA99-ecoop-b,
author = "David L. Detlefs and Ole Agesen",
title = "Inlining of Virtual Methods",
key = "Detlefs&Agesen",
pages = "258-278",
booktitle = "ECOOP'99 - Object-Oriented Programming",
year = "1999",
organization = "AITO",
publisher = "Springer",
month = "June"
}
@inproceedings{ADG+99-oopsla,
author = {O. Agesen and D. Detlefs and A. Garthwaite and R. Knippel and Y. S. Ramakrishna and D. White},
title = "An Efficient Meta-lock for Implementing Ubiquitous Synchronization",
booktitle = {Proceedings of OOPSLA'99},
address = {Denver, Colorado, USA},
month = nov,
year = {1999}
}
@InProceedings{OTooleJame1994a,
author = "James O'Toole and Scott Nettles",
booktitle = "Conference on Lisp and Functional programming",
title = "Concurrent Replicating Garbage Collection",
year = "1994",
url = "https://www-psrg.lcs.mit.edu/ftpdir/pub/james/papers/lfp94.ps",
month = jun,
publisher = "ACM Press",
scope = "gc",
}
@TechReport(EllisLiAppel,
Author = "John R. Ellis; Kai Li; and Andrew W. Appel",
Key = "Ellis et al.",
Title = "Real-time Concurrent Collection on Stock Multiprocessors",
Institution = "Digital Equipment Corporation Systems Research Center",
Number = "25",
Month = "February",
Year = "1988",
Annote = "Main innovation is the use of virtual-memory protection
primitives provided by most OS's to simulate locking of unscanned objects."
)
@Article{Azagury:1999:CCM,
author = "Alain Azagury and Elliot K. Kolodner and Erez Petrank
and Zvi Yehudai",
title = "Combining card marking with remembered sets: how to
save scanning time",
journal = "ACM SIG{\-}PLAN Notices",
volume = "34",
number = "3",
pages = "10--19",
month = mar,
year = "1999",
coden = "SINODQ",
ISSN = "0362-1340",
bibdate = "Fri Apr 30 11:50:44 MDT 1999",
url = "https://www.acm.org:80/pubs/citations/proceedings/plan/286860/p10-azagury/",
acknowledgement = ack-nhfb,
keywords = "algorithms; design; languages; performance; theory",
subject = "{\bf D.4.2} Software, OPERATING SYSTEMS, Storage
Management, Garbage collection. {\bf D.3.3} Software,
PROGRAMMING LANGUAGES, Language Constructs and
Features, Data types and structures. {\bf G.4}
Mathematics of Computing, MATHEMATICAL SOFTWARE,
Algorithm design and analysis.",
}
@Article{appe89,
title = "Simple Generational Garbage Collection and Fast
Allocation",
author = "Andrew W. Appel",
institution = "princeton",
journal = "Software Practice and Experience",
publisher = "Wiley",
year = "1989",
volume = "19",
number = "2",
pages = "171--183",
url = "https://www.cs.princeton.edu/faculty/appel/papers/143.ps",
abstract = "Generational garbage collection algorithms achieve
efficiency because newer records point to older
records; the only way an older record can point to a
newer record is by a store operation to a previously
created record, and such operations are rare in many
languages. A garbage collector that concentrates just
on recently allocated records can take advantage of
this fact. Such a garbage collector can be so efficient
that the allocation of records costs more than their
disposal. A scheme for quick record allocation attacks
this bottleneck. Many garbage-collected environments do
not know when to ask the operating system for more
memory. A robust heuristic solves this problem. This
paper presents a simple, efficient, low-overhead
version of generational garbage collection with fast
allocation, suitable for implementation in a Unix
environment.",
}
@Article(DijkstraLamportOTF78,
Author = "Edsger W. Dijkstra and Leslie Lamport and A. J. Martin and C. S. Scholten and E. F. M. Steffens",
Key = "Dijkstra et al.",
Journal = "CACM",
Title = "On-the-Fly Garbage Collection: An Exercise in Cooperation",
Year = "1978",
Month = "November",
Volume = "21",
Number = "11",
Pages = "966-975",
Annote = "Coloring garbage collection."
)
@Article(Steele75,
Author = "Guy L. {Steele Jr.}",
Key = "Steele",
Journal = "CACM",
Title = "Multiprocessing Compactifying Garbage Collection",
Year = "1975",
Month = "September",
Volume = "18",
Number = "9",
Pages = "495-508"
)
@InProceedings{,
author = {},
title = {},
booktitle = {},
OPTcrossref = {},
OPTkey = {},
OPTpages = {},
OPTyear = {},
OPTeditor = {},
OPTvolume = {},
OPTnumber = {},
OPTseries = {},
OPTaddress = {},
OPTmonth = {},
OPTorganization = {},
OPTpublisher = {},
OPTnote = {},
OPTannote = {}
}
@InProceedings{Doligez93,
author = "D. Doligez and X. Leroy",
title = "A Concurrent, Generational Garbage Collector for a
Multithreaded Implementation of {ML}",
booktitle = "Conference Record of the Twentieth Annual ACM
SIGPLAN-SIGACT Symposium on Principles of Programming
Languages",
pages = "113--123",
publisher = "ACM",
address = "New York, NY",
year = "1993",
keywords = "functional parallel",
ISBN = "0-89791-560-7",
abstract = "The design and implementation are presented of a
'quasi real-time' garbage collector for Concurrent Caml
Light, an implementation of ML with threads. This
two-generation system combines a fast, asynchronous
copying collector on the young generation with a
non-disruptive concurrent marking collector on the old
generation. This design crucially relies on the ML
compile-time distinction between mutable and immutable
objects.",
}
@Article(BW88-spe,
Author = "Boehm, Hans-Juergen and Weiser, Mark",
Key = "Boehm&Weiser",
Journal = "Software Practice and Experience",
Title = "Garbage Collection in an Uncooperative Environment",
Year = "1988",
Month = "September",
Volume = "18",
Number = "9",
Pages = "807-820",
Annote = "A garbage collector for C. Avoids the integer/pointer problem
by never moving anything."
)
@inproceedings{AD97-oopslagc,
author = {O. Agesen and D. Detlefs},
title = "Finding References in {J}ava\tm\ Stacks",
booktitle = {Proceedings of the OOPSLA'97 Workshop on Garbage Collection and Memory Management},
address = {Atlanta, GA, USA},
month = oct,
year = {1997}
}
@InProceedings{Doligez94,
author = "Damien Doligez and Georges Gonthier",
title = "Portable, Unobtrusive Garbage Collection for
Multiprocessor Systems",
booktitle = "Conference Record of the Twenty-first Annual ACM
SIGPLAN-SIGACT Symposium on Principles of Programming
Languages",
publisher = "ACM Press",
address = "New York, NY, USA",
ISBN = "0-89791-636-0",
pages = "70--83",
month = "January",
year = "1994",
bibdate = "Mon May 3 12:50:22 MDT 1999",
url = "https://www.acm.org:80/pubs/citations/proceedings/plan/174675/p70-doligez/",
abstract = "We describe and prove the correctness of a new
concurrent mark-and-sweep garbage collection algorithm.
This algorithm derives from the classical on-the-fly
algorithm from Dijkstra {\em et al.\/} [9]. A
distinguishing feature of our algorithm is that it
supports multiprocessor environments where the
registers of running processes are not readily
accessible, without imposing any overhead on the
elementary operations of loading a register or reading
or initializing a field. Furthermore our collector
never blocks running mutator processes except possibly
on requests for free memory; in particular, updating a
field or creating or marking or sweeping a heap object
does not involve system-dependent synchronization
primitives such as locks. We also provide support for
process creation and deletion, and for managing an
extensible heap of variable-sized objects.",
acknowledgement = ack-nhfb,
keywords = "algorithms; theory",
subject = "{\bf D.4.2} Software, OPERATING SYSTEMS, Storage
Management. {\bf D.3.4} Software, PROGRAMMING
LANGUAGES, Processors.",
}
@techreport{WG99-rep,
author = {D. White and A. Garthwaite},
title = "The {GC} Interface in the {EVM}",
institution = SUNLABS,
number = {TR-98-67},
year = {1999}
}
@TechReport(KungSong77,
Author = "H. T. Kung and S. Song",
Key = "Kung&Song",
Title = "An Efficient Parallel Garbage Collector and its
Correctness Proof",
Institution = "Carnegie Mellon University",
Month = "September",
Year = "1977",
Annote = "Not read yet."
)
@InProceedings{doma00a,
author = "Tamar Domani and Elliot K. Kolodner and Ethan Lewis
and Elliot E. Salant and Katherine Barabash and Itai
Lahan and Erez Petrank and Igor Yanover and Yossi
Levanoni",
title = "Implementing an On-the-fly Garbage Collector for
{J}ava",
booktitle = "Proceedings of the Second International Symposium on
Memory Management",
editor = "Tony Hosking",
address = "Minneapolis, MN",
publisher = "ACM Press",
month = oct,
year = "2000",
ISBN = "1-58113-263-8",
abstract = "Java uses garbage collection (GC) for the automatic
reclamation of computer memory no longer required by a
running application. GC implementations for Java
Virtual Machines (JVM) are typically designed for
single processor machines, and do not necessarily
perform well for a server program with many threads
running on a multiprocessor. We designed and
implemented an on-the-fly GC, based on the algorithm of
Doligez, Leroy and Gonthier~\cite{doli93,dili94} (DLG)
for Java in this environment. An {\em on-the-fly
collector}, a collector that does not stop the program
threads, allows all processors to be utilized during
collection and provides uniform response times. We
extended and adapted DLG for Java (e.g., adding support
for weak references) and for modern multiprocessors
without sequential consistency, and added performance
improvements (e.g., to keep track of the objects
remaining to be traced). We compared the performance of
our implementation with stop-the-world mark-sweep GC.
Our measurements show that the performance advantage
for our collector increases as the number of threads
increase and that it provides uniformly low response
times.",
}
@InProceedings{BaconPLDI01,
author = "David Bacon and Clement Attanasio and Han Lee and V.
T. Rajan and Stephen Smith",
title = "Java without the coffee breaks: a nonintrusive
multiprocessor garbage collector",
pages = "92--103",
ISSN = "0362-1340",
editor = "Cindy Norris and Jr. James B. Fenwick",
booktitle = "Proceedings of the {ACM} {SIGPLAN} '01 Conference on
Programming Language Design and Implementation
({PLDI}-01)",
month = jun # " ~20--22",
series = "ACM SIGPLAN Notices",
volume = "36.5",
publisher = "ACM Press",
address = "N.Y.",
year = "2001",
}
@TechReport{DeTreville90b,
Author = "DeTreville, John",
Key = "DeTreville",
Title = "Experiences with Concurrent Garbage Collectors for
{M}odula-2+",
Year = "1990",
institution = "Digital Equipment Corporation Systems Research Center",
number = "64",
}
@InProceedings{DomaniKolPet00,
author = "Tamar Domani and Elliot K. Kolodner and Erez Petrank",
title = "A Generational On-the-Fly Garbage Collector for
{J}ava",
booktitle = "Proceedings of the {ACM} {SIGPLAN} '00 Conference on
Programming Language Design and Implementation",
address = "Vancouver, British Columbia",
month = jun # " 18--21,",
year = "2000",
pages = "274--284",
}
@InProceedings{Printezis00,
author = "Tony Printezis and David Detlefs",
title = "A Generational Mostly-concurrent Garbage Collector",
booktitle = "Proceedings of the International Symposium on Memory Management",
address = "Minneapolis, Minnesota",
month = oct # " 15--19,",
year = "2000",
}
@InProceedings{Flood01,
author = "Christine H. Flood and David Detlefs and Nir Shavit and Xiaolan Zhang",
title = "Parallel Garbage Collection for Shared Memory Multiprocessors",
booktitle = "{Proceedings of the Java\tm\ Virtual Machine Research and Technology Symposium}",
organization = "USENIX",
address = "Monterey",
month = "April",
year = "2001"
}
@InProceedings{Heil00,
author = "Timothy H. Heil and James E. Smith",
title = "Concurrent Garbage Collection Using Hardware-Assisted Profiling",
booktitle = "Proceedings of the International Symposium on Memory Management",
address = "Minneapolis, Minnesota",
month = oct # " 15--19,",
year = "2000",
}
@InProceedings{holz93,
author = "Urs H{\"o}lzle",
title = "A Fast Write Barrier for Generational Garbage
Collectors",
booktitle = "{OOPSLA/ECOOP} '93 Workshop on Garbage Collection in
Object-Oriented Systems",
month = oct,
editor = "Eliot Moss and Paul R. Wilson and Benjamin Zorn",
year = "1993",
url = "ftp://self.stanford.edu/pub/papers/write-barrier.ps.Z",
}
@InProceedings{HM:Train,
author = "Richard L. Hudson and J. Eliot B. Moss",
title = "Incremental collection of mature objects",
booktitle = "International Workshop on Memory Management",
editor = "Yves Bekkers and Jacques Cohen",
year = "1992",
month = sep,
address = "St. Malo, France",
publisher = "Springer-Verlag",
series = "Lecture Notes in Computer Science",
pages = "388--403",
}
@TechReport{agesen:gcpoints,
author = "Ole Agesen",
title = "{GC} Points in a Threaded Environment",
institution = "Sun Microsystems Laboratories",
year = "1998",
key = "Agesen",
number = "98-70"
}