Concurrent garbage collection on stock hardware
Proc. of a conference on Functional programming languages and computer architecture
Real-time garbage collection on general-purpose machines
Journal of Systems and Software
Real-time replication garbage collection
PLDI '93 Proceedings of the ACM SIGPLAN 1993 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
Cost-effective object space management for hardware-assisted real-time garbage collection
ACM Letters on Programming Languages and Systems (LOPLAS)
Portable, unobtrusive garbage collection for multiprocessor systems
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Performance of a hardware-assisted real-time garbage collector
ASPLOS VI Proceedings of the sixth international conference on Architectural support for programming languages and operating systems
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
Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment
Journal of the ACM (JACM)
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
On-the-fly garbage collection: an exercise in cooperation
Communications of the ACM
Multiprocessing compactifying garbage collection
Communications of the ACM
An on-the-fly reference counting garbage collector for Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The Real-Time Specification for Java
The Real-Time Specification for Java
A real-time garbage collector with low overhead and consistent utilization
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Constant-Time Root Scanning for Deterministic Garbage Collection
CC '01 Proceedings of the 10th International Conference on Compiler Construction
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
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
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
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
A time predictable Java processor
Proceedings of the conference on Design, automation and test in Europe: Proceedings
Proceedings of the 5th international symposium on Memory management
Real-Time Garbage Collection for Java
ISORC '06 Proceedings of the Ninth IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing
WCET analysis for a Java processor
JTRES '06 Proceedings of the 4th international workshop on Java technologies for real-time and embedded systems
Architecture for object-oriented programming languages
JTRES '07 Proceedings of the 5th international workshop on Java technologies for real-time and embedded 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
Secure, Real-Time and Multi-Threaded General-Purpose Embedded Java Microarchitecture
DSD '07 Proceedings of the 10th Euromicro Conference on Digital System Design Architectures, Methods and Tools
A Java processor architecture for embedded real-time systems
Journal of Systems Architecture: the EUROMICRO Journal
A study of concurrent real-time garbage collectors
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
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
Time-predictable memory arbitration for a Java chip-multiprocessor
JTRES '08 Proceedings of the 6th international workshop on Java technologies for real-time and embedded systems
Designing a concurrent hardware garbage collector for small embedded systems
ACSAC'05 Proceedings of the 10th Asia-Pacific conference on Advances in Computer Systems Architecture
Concurrent, parallel, real-time garbage-collection
Proceedings of the 2010 international symposium on Memory management
Optimisation of virtual machine garbage collection policies
ASMTA'11 Proceedings of the 18th international conference on Analytical and stochastic modeling techniques and applications
Hard real-time garbage collection for a Java chip multi-processor
Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems
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
Non-blocking garbage collection for real-time Android
Proceedings of the 11th International Workshop on Java Technologies for Real-time and Embedded Systems
Hi-index | 0.00 |
A real-time garbage collector has to fulfill two basic properties: ensure that programs with bounded allocation rates do not run out of memory and provide short blocking times. Even for incremental garbage collectors, two major sources of blocking exist, namely, root scanning and heap compaction. Finding root nodes of an object graph is an integral part of tracing garbage collectors and cannot be circumvented. Heap compaction is necessary to avoid probably unbounded heap fragmentation, which in turn would lead to unacceptably high memory consumption. In this article, we propose solutions to both issues. Thread stacks are local to a thread, and root scanning, therefore, only needs to be atomic with respect to the thread whose stack is scanned. This fact can be utilized by either blocking only the thread whose stack is scanned, or by delegating the responsibility for root scanning to the application threads. The latter solution eliminates blocking due to root scanning completely. The impact of this solution on the execution time of a garbage collector is shown for two different variants of such a root scanning algorithm. During heap compaction, objects are copied. Copying is usually performed atomically to avoid interference with application threads, which could render the state of an object inconsistent. Copying of large objects and especially large arrays introduces long blocking times that are unacceptable for real-time systems. In this article, an interruptible copy unit is presented that implements nonblocking object copy. The unit can be interrupted after a single word move. We evaluate a real-time garbage collector that uses the proposed techniques on a Java processor. With this garbage collector, it is possible to run high-priority hard real-time tasks at 10 kHz parallel to the garbage collection task on a 100 MHz system.