Efficient type inclusion tests
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Thin locks: featherweight synchronization for Java
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
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
Real-Time Garbage Collection in Multi-Threaded Systems on a Single Processor
RTSS '99 Proceedings of the 20th IEEE Real-Time Systems Symposium
An Emprical Evaluation of Memory Management Alternatives for Real-Time Java
RTSS '06 Proceedings of the 27th IEEE International Real-Time Systems Symposium
Realtime garbage collection in the JamaicaVM 3.0
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
A real-time Java virtual machine with applications in avionics
ACM Transactions on Embedded Computing Systems (TECS)
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Accurate garbage collection in uncooperative environments revisited
Concurrency and Computation: Practice & Experience
Schism: fragmentation-tolerant real-time garbage collection
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems
The embedded Java benchmark suite JemBench
Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems
WCET analysis of Java bytecode featuring common execution environments
Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems
Memory management for safety-critical Java
Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems
Flash memory in embedded Java programs
Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems
Fine-grained adaptive biased locking
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
Safety-critical Java for low-end embedded platforms
Proceedings of the 10th International Workshop on Java Technologies for Real-time and Embedded Systems
Safety-critical Java on a Java processor
Proceedings of the 10th International Workshop on Java Technologies for Real-time and Embedded Systems
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
Design of safety-critical Java level 1 applications using affine abstract clocks
Proceedings of the 16th International Workshop on Software and Compilers for Embedded Systems
TetaSARTS: a tool for modular timing analysis of safety critical Java systems
Proceedings of the 11th International Workshop on Java Technologies for Real-time and Embedded Systems
Non-blocking inter-partition communication with wait-free pair transactions
Proceedings of the 11th International Workshop on Java Technologies for Real-time and Embedded Systems
Hi-index | 0.04 |
Real-time Java is quickly emerging as a platform for building safety-critical embedded systems. The real-time variants of Java, including [8, 15], are attractive alternatives to Ada and C since they provide a cleaner, simpler, and safer programming model. Unfortunately, current real-time Java implementations have trouble scaling down to very hard real-time embedded settings, where memory is scarce and processing power is limited. In this paper, we describe the architecture of the Fiji VM, which enables vanilla Java applications to run in very hard environments, including booting on bare hardware with only very rudimentary operating system support. We also show that our minimalistic approach delivers comparable performance to that of server-class production Java Virtual Machine implementations.