Real-time concurrent collection on stock multiprocessors
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Mostly parallel garbage collection
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Debugging optimized code with dynamic deoptimization
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
A concurrent, generational garbage collector for a multithreaded implementation of ML
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Portable, unobtrusive garbage collection for multiprocessor systems
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Generational stack collection and profile-driven pretenuring
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
A generational on-the-fly garbage collector for Java
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
List processing in real time on a serial computer
Communications of the ACM
On-the-fly garbage collection: an exercise in cooperation
Communications of the ACM
An efficient, incremental, automatic garbage collector
Communications of the ACM
Multiprocessing compactifying garbage collection
Communications of the ACM
A generational mostly-concurrent garbage collector
Proceedings of the 2nd international symposium on Memory management
Implementing an on-the-fly garbage collector for Java
Proceedings of the 2nd international symposium on Memory management
Sapphire: copying GC without stopping the world
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
Java without the coffee breaks: a nonintrusive multiprocessor garbage collector
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
A parallel, real-time garbage collector
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Hard Real-Time Garbage-Collection in the Jamaica Virtual Machine
RTCSA '99 Proceedings of the Sixth International Conference on Real-Time Computing Systems and Applications
An on-the-fly mark and sweep garbage collector based on sliding views
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Ulterior reference counting: fast garbage collection without a long wait
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
A parallel, incremental, mostly concurrent garbage collector for servers
ACM Transactions on Programming Languages and Systems (TOPLAS)
An on-the-fly reference-counting garbage collector for java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Stopless: a real-time garbage collector for multiprocessors
Proceedings of the 6th international symposium on Memory management
A study of concurrent real-time garbage collectors
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Integrating generations with advanced reference counting garbage collectors
CC'03 Proceedings of the 12th international conference on Compiler construction
A lock-free, concurrent, and incremental stack scanning mechanism for garbage collectors
ACM SIGOPS Operating Systems Review
VMKit: a substrate for managed runtime environments
Proceedings of the 6th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Optimizations in a private nursery-based garbage collector
Proceedings of the 2010 international symposium on Memory management
Friendly barriers: efficient work-stealing with return barriers
Proceedings of the 10th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Hi-index | 0.00 |
Two major efficiency parameters for garbage collectors are the throughput overheads and the pause times that they introduce. Highly responsive systems need to use collectors with as short as possible pause times. Pause lengths have decreased significantly during the years, especially through the use of concurrent garbage collectors. For modern concurrent collectors, the longest pause is typically created by the need to atomically scan the runtime stack. All practical concurrent collectors that we are aware of must obtain a snapshot of the pointers on each thread's runtime stack, in order to reclaim objects correctly. To further reduce the length of the collector pauses, incremental stack scans were proposed. However, previous such methods employ locks to stop the mutator from accessing a stack frame while it is being scanned. Thus, these methods introduce a potential long and unpredictable pauses for a mutator thread. In this work we propose the first concurrent, incremental, and lock-free stack scanning for garbage collectors, allowing high responsiveness and support for programs that employ fine-synchronization to avoid locks. Our solution can be employed by all concurrent collectors that we are aware of, it is lock-free, it imposes a negligible overhead on the program execution, and it supports the special in-stack references existing in languages like C#.