Garbage collection of strings and linked data structures in real time
Software—Practice & Experience
Control flow analysis in scheme
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
The treadmill: real-time garbage collection without motion sickness
ACM SIGPLAN Notices
Accurate garbage collection in an uncooperative environment
Proceedings of the 3rd international symposium on Memory management
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
Harissa: A Hybrid Approach to Java Execution
IEEE Software
Priority Inheritance Protocols: An Approach to Real-Time Synchronization
IEEE Transactions on Computers
The Design and Performance of the jRate Real-Time Java Implementation
On the Move to Meaningful Internet Systems, 2002 - DOA/CoopIS/ODBASE 2002 Confederated International Conferences DOA, CoopIS and ODBASE 2002
Proceedings of the 4th international symposium on Memory management
Mackinac: Making HotSpot" Real-Time
ISORC '05 Proceedings of the Eighth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing
Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
An Emprical Evaluation of Memory Management Alternatives for Real-Time Java
RTSS '06 Proceedings of the 27th IEEE International Real-Time Systems Symposium
Deterministic execution of java's primitive bytecode operations
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
Toba: java for applications a way ahead of time (WAT) compiler
COOTS'97 Proceedings of the 3rd conference on USENIX Conference on Object-Oriented Technologies (COOTS) - Volume 3
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 real-time Java virtual machine with applications in avionics
ACM Transactions on Embedded Computing Systems (TECS)
Memory Management for Real-Time Java: State of the Art
ISORC '08 Proceedings of the 2008 11th IEEE Symposium on Object Oriented Real-Time Distributed Computing
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
Real-Time Java Programming: With Java RTS
Real-Time Java Programming: With Java RTS
Accurate garbage collection in uncooperative environments revisited
Concurrency and Computation: Practice & Experience
CDx: a family of real-time Java benchmarks
Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems
Use of PERC Pico in the AIDA avionics platform
Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems
Scheduling Hard Real-Time Garbage Collection
RTSS '09 Proceedings of the 2009 30th IEEE Real-Time Systems Symposium
Schism: fragmentation-tolerant real-time garbage collection
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Developing safety critical Java applications with oSCJ/L0
Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems
KESO: an open-source multi-JVM for deeply embedded systems
Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems
Static checking of safety critical Java annotations
Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems
Putting events in context: aspects for event-based distributed programming
Proceedings of the tenth international conference on Aspect-oriented software development
Virtualizing real-time embedded systems with Java
Proceedings of the 48th Design Automation Conference
Specifying subtypes in SCJ programs
Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems
Exploiting static application knowledge in a Java compiler for embedded systems: a case study
Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems
Tailor-made JVMs for statically configured embedded systems
Concurrency and Computation: Practice & Experience
Ji.Fi: visual test and debug queries for hard real-time
Proceedings of the 10th International Workshop on Java Technologies for Real-time and Embedded Systems
Plan B: a buffered memory model for Java
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Abstracting context in event-based software
Transactions on Aspect-Oriented Software Development IX
Reducing startup time of a deterministic virtualizing runtime environment
Proceedings of the 16th International Workshop on Software and Compilers for Embedded Systems
RTDroid: a design for real-time Android
Proceedings of the 11th International Workshop on Java Technologies for Real-time and Embedded Systems
Hi-index | 0.00 |
While managed languages such as C# and Java have become quite popular in enterprise computing, they are still considered unsuitable for hard real-time systems. In particular, the presence of garbage collection has been a sore point for their acceptance for low-level system programming tasks. Real-time extensions to these languages have the dubious distinction of, at the same time, eschewing the benefits of high-level programming and failing to offer competitive performance. The goal of our research is to explore the limitations of high-level managed languages for real-time systems programming. To this end we target a real-world embedded platform, the LEON3 architecture running the RTEMS real-time operating system, and demonstrate the feasibility of writing garbage collected code in critical parts of embedded systems. We show that Java with a concurrent, real-time garbage collector, can have throughput close to that of C programs and comes within 10% in the worst observed case on realistic benchmark. We provide a detailed breakdown of the costs of Java features and their execution times and compare to real-time and throughput-optimized commercial Java virtual machines.