Concurrent garbage collection on stock hardware
Proc. of a conference on Functional programming languages and computer architecture
Real-time concurrent collection on stock multiprocessors
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Real-time garbage collection on general-purpose machines
Journal of Systems and Software
The treadmill: real-time garbage collection without motion sickness
ACM SIGPLAN Notices
Real-time replication garbage collection
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Generational stack collection and profile-driven pretenuring
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
A compacting incremental collector and its performance in a production quality compiler
Proceedings of the 1st international symposium on Memory management
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Eliminating external fragmentation in a non-moving garbage collector for Java
CASES '00 Proceedings of the 2000 international conference on Compilers, architecture, and synthesis for embedded systems
List processing in real time on a serial computer
Communications of the ACM
A parallel, real-time garbage collector
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
An algorithm for parallel incremental compaction
Proceedings of the 3rd international symposium on Memory management
Beltway: getting around garbage collection gridlock
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
The Real-Time Specification for Java
The Real-Time Specification for Java
Incremental Collection of Mature Objects
IWMM '92 Proceedings of the International Workshop on Memory Management
Space- and Time-Efficient Implementation of the Java Object Model
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Thin Guards: A Simple and Effective Technique for Reducing the Penalty of Dynamic Class Loading
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Garbage collection in a large LISP system
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
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
Non-compacting memory allocation and real-time garbage collection
Non-compacting memory allocation and real-time garbage collection
Java server performance: a case study of building efficient, scalable Jvms
IBM Systems Journal
IBM Systems Journal
Efficient memory-reference checks for real-time java
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
Memory safety without runtime checks or garbage collection
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
Time-triggered garbage collection: robust and adaptive real-time GC scheduling for embedded systems
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
Ownership types for safe region-based memory management in real-time Java
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Heap compression for memory-constrained Java environments
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
The space cost of lazy reference counting
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Oil and Water? High Performance Garbage Collection in Java with MMTk
Proceedings of the 26th International Conference on Software Engineering
Garbage collection for embedded systems
Proceedings of the 4th ACM international conference on Embedded software
Design for Timing Predictability
Real-Time Systems
A unified theory of garbage collection
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
MC2: high-performance garbage collection for memory-constrained environments
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An efficient parallel heap compaction algorithm
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 4th international symposium on Memory management
Write barrier elision for concurrent garbage collectors
Proceedings of the 4th international symposium on Memory management
Mostly concurrent compaction for mark-sweep GC
Proceedings of the 4th international symposium on Memory management
Garbage-first garbage collection
Proceedings of the 4th international symposium on Memory management
Proceedings of the 4th international symposium on Memory management
Exploring the barrier to entry: incremental generational garbage collection for Haskell
Proceedings of the 4th international symposium on Memory management
Compile-Time Concurrent Marking Write Barrier Removal
Proceedings of the international symposium on Code generation and optimization
Memory safety without garbage collection for embedded applications
ACM Transactions on Embedded Computing Systems (TECS)
Using page residency to balance tradeoffs in tracing garbage collection
Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
Garbage collection without paging
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Syncopation: generational real-time garbage collection in the metronome
LCTES '05 Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Static determination of allocation rates to support real-time garbage collection
LCTES '05 Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
High-level real-time programming in Java
Proceedings of the 5th ACM international conference on Embedded software
BIT: A Very Compact Scheme System for Microcontrollers
Higher-Order and Symbolic Computation
Proceedings of the 5th international symposium on Memory management
Portable, mostly-concurrent, mostly-copying garbage collection for multi-processors
Proceedings of the 5th international symposium on Memory management
Visualising dynamic memory allocators
Proceedings of the 5th international symposium on Memory management
Program-level adaptive memory management
Proceedings of the 5th international symposium on Memory management
Eventrons: a safe programming construct for high-frequency hard real-time applications
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Profile-guided proactive garbage collection for locality optimization
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Correctness-preserving derivation of concurrent garbage collection algorithms
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
A new approach to real-time checkpointing
Proceedings of the 2nd international conference on Virtual execution environments
A real-time garbage collection framework for embedded systems
SCOPES '05 Proceedings of the 2005 workshop on Software and compilers for embedded systems
Minimizing GC work by analysis of live objects
ACM SIGPLAN Notices
Systematic dynamic memory management design methodology for reduced memory footprint
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Efficient memory management for concurrent programs that use message passing
Science of Computer Programming - Special issue on five perspectives on modern memory management: Systems, hardware and theory
On measuring garbage collection responsiveness
Science of Computer Programming - Special issue on five perspectives on modern memory management: Systems, hardware and theory
Low memory overhead real-time garbage collection for Java
JTRES '06 Proceedings of the 4th international workshop on Java technologies for real-time and embedded systems
Bell: bit-encoding online memory leak detection
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
Energy-efficient dynamic memory allocators at the middleware level of embedded systems
EMSOFT '06 Proceedings of the 6th ACM & IEEE International conference on Embedded software
Queue - Security
Compilation Techniques for Real-Time Java Programs
Proceedings of the International Symposium on Code Generation and Optimization
Java takes flight: time-portable real-time programming with exotasks
Proceedings of the 2007 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Hierarchical real-time garbage collection
Proceedings of the 2007 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Libra: a library operating system for a jvm in a virtualized execution environment
Proceedings of the 3rd international conference on Virtual execution environments
Reflexes: abstractions for highly responsive systems
Proceedings of the 3rd international conference on Virtual execution environments
Schedulable garbage collection in CLI virtual execution system
Real-Time Systems
Garbage collection-aware utility accrual scheduling
Real-Time Systems
Scoped types and aspects for real-time Java memory management
Real-Time Systems
Garbage collection for safety critical Java
JTRES '07 Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems
Design and implementation of a comprehensive real-time java virtual machine
EMSOFT '07 Proceedings of the 7th ACM & IEEE international conference on Embedded software
Stopless: a real-time garbage collector for multiprocessors
Proceedings of the 6th international symposium on Memory management
Proceedings of the 6th international symposium on Memory management
Streamflex: high-throughput stream programming in java
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
A method specialisation and virtualised execution environment for Java
Proceedings of the fourth ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
A Java processor architecture for embedded real-time systems
Journal of Systems Architecture: the EUROMICRO Journal
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
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
Flexible task graphs: a unified restricted thread programming model for java
Proceedings of the 2008 ACM SIGPLAN-SIGBED conference on Languages, compilers, and tools for embedded systems
A high-performance operating system for structured concurrent programs
Proceedings of the 4th workshop on Programming languages and operating systems
A compacting real-time memory management system
ATC'08 USENIX 2008 Annual Technical Conference on Annual Technical Conference
Non-blocking root scanning for real-time garbage collection
JTRES '08 Proceedings of the 6th international workshop on Java technologies for real-time and embedded systems
Non-blocking object copy for real-time garbage collection
JTRES '08 Proceedings of the 6th international workshop on Java technologies for real-time and embedded systems
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Tax-and-spend: democratic scheduling for real-time garbage collection
EMSOFT '08 Proceedings of the 8th ACM international conference on Embedded software
Decoupled root scanning in multi-processor systems
CASES '08 Proceedings of the 2008 international conference on Compilers, architectures and synthesis for embedded systems
Low-latency time-portable real-time programming with Exotasks
ACM Transactions on Embedded Computing Systems (TECS)
A Formal Soundness Proof of Region-Based Memory Management for Object-Oriented Paradigm
ICFEM '08 Proceedings of the 10th International Conference on Formal Methods and Software Engineering
Proceedings of the ACM/IFIP/USENIX 2007 International Conference on Middleware
Avoiding unbounded priority inversion in barrier protocols using gang priority management
Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems
Data caching, garbage collection, and the Java memory model
Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems
Replicating real-time garbage collector for Java
Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems
Responsive systems: an introduction
IBM Systems Journal
Compile-time concurrent marking write barrier removal
Compile-time concurrent marking write barrier removal
Adaptive optimization of the Sun Java™ real-time system garbage collector
Adaptive optimization of the Sun Java™ real-time system garbage collector
Reducing performance non-determinism via cache-aware page allocation strategies
Proceedings of the first joint WOSP/SIPEW international conference on Performance engineering
High-level programming of embedded hard real-time devices
Proceedings of the 5th European conference on Computer systems
Accurate garbage collection in uncooperative environments with lazy pointer stacks
CC'07 Proceedings of the 16th international conference on Compiler construction
MIDDLEWARE2007 Proceedings of the 8th ACM/IFIP/USENIX international conference on Middleware
ECOOP'07 Proceedings of the 2007 conference on Object-oriented technology
Implementation, compilation, optimization of object-oriented languages, programs and systems
ECOOP'06 Proceedings of the 2006 conference on Object-oriented technology: ECOOP 2006 workshop reader
Schism: fragmentation-tolerant real-time garbage collection
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Z-rays: divide arrays and conquer speed and flexibility
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Tracing garbage collection on highly parallel platforms
Proceedings of the 2010 international symposium on Memory management
Concurrent, parallel, real-time garbage-collection
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
Nonblocking real-time garbage collection
ACM Transactions on Embedded Computing Systems (TECS)
Scheduling of hard real-time garbage collection
Real-Time Systems
Towards memory management for service-oriented real-time systems
Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems
Starvation-free heap size for replication-based incremental compacting garbage collection
Proceedings of the 2010 international conference on Lisp
Space overhead bounds for dynamic memory management with partial compaction
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Exploitation of multicore systems in a java virtual machine
IBM Journal of Research and Development
Fast restore of checkpointed memory using working set estimation
Proceedings of the 7th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Multicore garbage collection with local heaps
Proceedings of the international symposium on Memory management
Waste not, want not: resource-based garbage collection in a shared environment
Proceedings of the international symposium on Memory management
C4: the continuously concurrent compacting collector
Proceedings of the international symposium on Memory management
Handles revisited: optimising performance and memory costs in a real-time collector
Proceedings of the international symposium on Memory management
Short-term memory for self-collecting mutators
Proceedings of the international symposium on Memory management
Scheduling real-time garbage collection on uniprocessors
ACM Transactions on Computer Systems (TOCS)
Virtualizing real-time embedded systems with Java
Proceedings of the 48th Design Automation Conference
A Hardware Abstraction Layer in Java
ACM Transactions on Embedded Computing Systems (TECS)
Bounded-latency regional garbage collection
Proceedings of the 7th symposium on Dynamic languages
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Reducing and eliding read barriers for concurrent garbage collectors
Proceedings of the 6th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems
XAMM: a high-performance automatic memory management system with memory-constrained designs
HiPEAC'05 Proceedings of the First international conference on High Performance Embedded Architectures and Compilers
Programming languages for real-time systems
Embedded Systems Design
Derivation and evaluation of concurrent collectors
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
WWIC'05 Proceedings of the Third international conference on Wired/Wireless Internet Communications
Transparently reconciling transactions with locking for java synchronization
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Can parallel data structures rely on automatic memory managers?
Proceedings of the 2012 ACM SIGPLAN Workshop on Memory Systems Performance and Correctness
And then there were none: a stall-free real-time garbage collector for reconfigurable hardware
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Barriers reconsidered, friendlier still!
Proceedings of the 2012 international symposium on Memory Management
Eliminating read barriers through procrastination and cleanliness
Proceedings of the 2012 international symposium on Memory Management
The Collie: a wait-free compacting collector
Proceedings of the 2012 international symposium on Memory Management
Space overhead bounds for dynamic memory management with partial compaction
ACM Transactions on Programming Languages and Systems (TOPLAS)
Generational real-time garbage collection: a three-part invention for young objects
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Limitations of partial compaction: towards practical bounds
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
And then there were none: a stall-free real-time garbage collector for reconfigurable hardware
Communications of the ACM
Log-structured memory for DRAM-based storage
FAST'14 Proceedings of the 12th USENIX conference on File and Storage Technologies
Hi-index | 0.02 |
Now that the use of garbage collection in languages like Java is becoming widely accepted due to the safety and software engineering benefits it provides, there is significant interest in applying garbage collection to hard real-time systems. Past approaches have generally suffered from one of two major flaws: either they were not provably real-time, or they imposed large space overheads to meet the real-time bounds. We present a mostly non-moving, dynamically defragmenting collector that overcomes both of these limitations: by avoiding copying in most cases, space requirements are kept low; and by fully incrementalizing the collector we are able to meet real-time bounds. We implemented our algorithm in the Jikes RVM and show that at real-time resolution we are able to obtain mutator utilization rates of 45% with only 1.6--2.5 times the actual space required by the application, a factor of 4 improvement in utilization over the best previously published results. Defragmentation causes no more than 4% of the traced data to be copied.