1988
DOI: 10.21236/ada290169
|View full text |Cite
|
Sign up to set email alerts
|

A Lifetime-Based Garbage Collector for LISP Systems on General-Purpose Computers.

Abstract: Garbage collector performance in LISP systems on custom hardware has been substantially improved by the adoption of lifetime-based garbage collection techniques. To date, however, successful lifetime-based garbage collectors have required special-purpose hardware, or at least privileged access to data structures maintained by the virtual memory system. I present here a lifetime-based garbage collector requiring no special-purpose hardware or virtual memory system support, and discuss its performance.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
21
0

Year Published

1990
1990
2006
2006

Publication Types

Select...
5
3

Relationship

0
8

Authors

Journals

citations
Cited by 36 publications
(21 citation statements)
references
References 10 publications
0
21
0
Order By: Relevance
“…mov eax,allocationPtr ; load allocation pointer into a register add eax, 12 ; add amount of space to be allocated cmp eax,allocationLimitPtr ; compare against limit pointer ja needgc ; call gc if necessary mov allocationPtr,eax ; update the allocation pointer Figure 2 shows the filtering code sequence shared by all the filtering write barriers. It uses a table of ages indexed by the higher-order 16 bits of pointer addresses [29]. The ages are inverted (older generations are assigned lower numbers) and 0 is used for non-heap memory such as stacks and statically-allocated data.…”
Section: Write Barrier Implementationsmentioning
confidence: 99%
See 2 more Smart Citations
“…mov eax,allocationPtr ; load allocation pointer into a register add eax, 12 ; add amount of space to be allocated cmp eax,allocationLimitPtr ; compare against limit pointer ja needgc ; call gc if necessary mov allocationPtr,eax ; update the allocation pointer Figure 2 shows the filtering code sequence shared by all the filtering write barriers. It uses a table of ages indexed by the higher-order 16 bits of pointer addresses [29]. The ages are inverted (older generations are assigned lower numbers) and 0 is used for non-heap memory such as stacks and statically-allocated data.…”
Section: Write Barrier Implementationsmentioning
confidence: 99%
“…The card table (cards) divides memory into cards that are a power of 2 in size and alignment [25,29,36]. The card table stores one bit of information per card.…”
Section: Write Barrier Implementationsmentioning
confidence: 99%
See 1 more Smart Citation
“…For both algorithms, the remembered set is implemented with a two-level bitmap that indicates the locations of intergenerational pointers as described by Sobalvarro [18].…”
Section: Algorithmsmentioning
confidence: 99%
“…The default sizes as specified in the SSCLI source code are 800 K-bytes and 1 M-bytes, respectively. Intergenerational pointers are maintained using card marking [9,25] where each card is 4 K-bytes. Objects from unmanaged code are also managed by the garbage collector; handle list is used to store references coming from unmanaged environment.…”
Section: Garbage Collection In the Ssclimentioning
confidence: 99%