Real-time concurrent collection on stock multiprocessors
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
A concurrent copying garbage collector for languages that distinguish (im)mutable data
PPOPP '93 Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming
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
Garbage collection: algorithms for automatic dynamic memory management
Garbage collection: algorithms for automatic dynamic memory management
Generational stack collection and profile-driven pretenuring
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Thin locks: featherweight synchronization for Java
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
List processing in real time on a serial computer
Communications of the ACM
Java Virtual Machine Specification
Java Virtual Machine Specification
Proceedings of the International Workshop on Memory Management
IWMM '92 Proceedings of the International Workshop on Memory Management
Incremental Collection of Mature Objects
IWMM '92 Proceedings of the International Workshop on Memory Management
Trading data space for reduced time and code space in real-time garbage collection on stock hardware
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Heap architectures for concurrent languages using message passing
Proceedings of the 3rd international symposium on Memory management
A parallel, incremental and concurrent GC for servers
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Open runtime platform: flexibility with performance using interfaces
JGI '02 Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande
Mostly concurrent garbage collection revisited
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, 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
Garbage-first garbage collection
Proceedings of the 4th international symposium on Memory management
A parallel, incremental, mostly concurrent garbage collector for servers
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Compressor: concurrent, incremental, and parallel compaction
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Lock-free parallel and concurrent garbage collection by mark&sweep
Science of Computer Programming
An efficient on-the-fly cycle collection
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
Concurrent GC leveraging transactional memory
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
A study of concurrent real-time garbage collectors
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Path specialization: reducing phased execution overheads
Proceedings of the 7th international symposium on Memory management
A lock-free, concurrent, and incremental stack scanning for garbage collectors
Proceedings of the 2009 ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Fast memory snapshot for concurrent programmingwithout synchronization
Proceedings of the 23rd international conference on Supercomputing
A lock-free, concurrent, and incremental stack scanning mechanism for garbage collectors
ACM SIGOPS Operating Systems Review
Replicating real-time garbage collector for Java
Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems
Tracing garbage collection on highly parallel platforms
Proceedings of the 2010 international symposium on Memory management
Improved replication-based incremental garbage collection for embedded systems
Proceedings of the 2010 international symposium on Memory management
Age-Oriented concurrent garbage collection
CC'05 Proceedings of the 14th international conference on Compiler Construction
An efficient on-the-fly cycle collection
CC'05 Proceedings of the 14th international conference on Compiler Construction
Parallel memory defragmentation on a GPU
Proceedings of the 2012 ACM SIGPLAN Workshop on Memory Systems Performance and Correctness
The Collie: a wait-free compacting collector
Proceedings of the 2012 international symposium on Memory Management
A study of data structures with a deep heap shape
Proceedings of the ACM SIGPLAN Workshop on Memory Systems Performance and Correctness
Hi-index | 0.00 |
Many concurrent garbage collection (GC) algorithms have been devised, but few have been implemented and evaluated, particularly for the Java programming language. Sapphire is an algorithm we have devised for concurrent copying GC. Sapphire stresses minimizing the amount of time any given application thread may need to block to support the collector. In particular, Sapphire is intended to work well in the presence of a large number of application threads, on small- to medium-scale shared memory multiprocessors. A specific problem that Sapphire addresses is not stopping all threads while thread stacks are adjusted to account for copied objects (in GC parlance, the “flip” to the new copies).Sapphire extends previous algorithms, and is most closely related to replicating copying collection, a GC technique in which application threads observe and update primarily the old copies of objects [13]. The key innovations of Sapphire are: (1) the ability to “flip” one thread at a time (changing the thread's view from the old copies of objects to the new copies), as opposed to needing to stop all threads and flip them at the same time; and (2) avoiding a read barrier.