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
Real-time replication garbage collection
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Portable, unobtrusive garbage collection for multiprocessor systems
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
First-class user-level threads
SOSP '91 Proceedings of the thirteenth ACM symposium on Operating systems principles
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
Experience with processes and monitors in Mesa
Communications of the ACM
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 economic paradigm for query processing and data migration in mariposa
PDIS '94 Proceedings of the third international conference on on Parallel and distributed information systems
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
Priority Inheritance Protocols: An Approach to Real-Time Synchronization
IEEE Transactions on Computers
Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
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
Scalable real-time parallel garbage collection for symmetric multiprocessors
Scalable real-time parallel garbage collection for symmetric multiprocessors
An Emprical Evaluation of Memory Management Alternatives for Real-Time Java
RTSS '06 Proceedings of the 27th IEEE International Real-Time Systems Symposium
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
Design and implementation of a comprehensive real-time java virtual machine
EMSOFT '07 Proceedings of the 7th ACM & IEEE international conference on Embedded software
A study of concurrent real-time garbage collectors
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Demonstration: on-line visualization and analysis of real-time systems with tuningfork
CC'06 Proceedings of the 15th international conference on Compiler Construction
CDx: a family of real-time Java benchmarks
Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems
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
Butterfly analysis: adapting dataflow analysis to dynamic parallel monitoring
Proceedings of the fifteenth edition of ASPLOS on Architectural support for programming languages and operating systems
Schism: fragmentation-tolerant real-time garbage collection
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Scheduling real-time garbage collection on uniprocessors
ACM Transactions on Computer Systems (TOCS)
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
QVM: An Efficient Runtime for Detecting Defects in Deployed Systems
ACM Transactions on Software Engineering and Methodology (TOSEM)
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
And then there were none: a stall-free real-time garbage collector for reconfigurable hardware
Communications of the ACM
Hi-index | 0.02 |
Real-time Garbage Collection (RTGC) has recently advanced to the point where it is being used in production for financial trading, military command-and-control, and telecommunications. However, among potential users of RTGC, there is enormous diversity in both application requirements and deployment environments. Previously described RTGCs tend to work well in a narrow band of possible environments, leading to fragile systems and limiting adoption of real-time garbage collection technology. This paper introduces a collector scheduling methodology called tax-and-spend and the collector design revisions needed to support it. Tax-and-spend provides a general mechanism which works well across a variety of application, machine, and operating system configurations. Tax-and-spend subsumes the predominant pre-existing RTGC scheduling techniques. It allows different policies to be applied in different contexts depending on the needs of the application. Virtual machines can co-exist compositionally on a single machine. We describe the implementation of our system, Metronome-TS, as an extension of the Metronome collector in IBM's Real-time J9 virtual machine product, and we evaluate it running on an 8-way SMP blade with a real-time Linux kernel. Compared to the state-of-the-art Metronome system on which it is based, implemented in the identical infrastructure, it achieves almost 3x shorter latencies, comparable utilization at a 2.5x shorter time window, and mean throughput improvements of 10-20%.