Fast static analysis of C++ virtual function calls
Proceedings of the 11th 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
An Implementation of Scoped Memory for Real-Time Java
EMSOFT '01 Proceedings of the First International Workshop on Embedded Software
StreamIt: A Language for Streaming Applications
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Efficient memory-reference checks for real-time java
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
Programming with non-heap memory in the real time specification for Java
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Scoped Types for Real-Time Java
RTSS '04 Proceedings of the 25th IEEE International Real-Time Systems Symposium
Mackinac: Making HotSpot" Real-Time
ISORC '05 Proceedings of the Eighth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing
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
An Emprical Evaluation of Memory Management Alternatives for Real-Time Java
RTSS '06 Proceedings of the 27th IEEE International Real-Time Systems Symposium
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
Reflexes: abstractions for highly responsive systems
Proceedings of the 3rd international conference on Virtual execution environments
Using real-time Java for industrial robot control
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
Streamflex: high-throughput stream programming in java
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
A real-time Java virtual machine with applications in avionics
ACM Transactions on Embedded Computing Systems (TECS)
Implicit ownership types for memory management
Science of Computer Programming
Minimal Ownership for Active Objects
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
PTIDES on flexible task graph: real-time embedded systembuilding from theory to practice
Proceedings of the 2009 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Reflexes: Abstractions for integrating highly responsive tasks into Java applications
ACM Transactions on Embedded Computing Systems (TECS)
PRP: priority rollback protocol -- a PIP extension for mixed criticality systems: short paper
Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems
Capabilities for uniqueness and borrowing
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Tailor-made JVMs for statically configured embedded systems
Concurrency and Computation: Practice & Experience
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
Hi-index | 0.00 |
The disadvantages of unconstrained shared-memory multi-threading in Java, especially with regard to latency and determinism in realtime systems, have given rise to a variety of language extensions that place restrictions on how threads allocate, share, and communicate memory, leading to order-of-magnitude reductions in latency and jitter. However, each model makes different trade-offs with respect to expressiveness, efficiency, enforcement, and latency, and no one model is best for all applications. In this paper we present Flexible Task Graphs (Flexotasks), a single system that allows different isolation policies and mechanisms to be combined in an orthogonal manner, subsuming four previously proposed models as well as making it possible to use new combinations best suited to the needs of particular applications. We evaluate our implementation on top of the IBM Web-Sphere Real Time Java virtual machine using both a microbenchmark and a 30 KLOC avionics collision detector. We show that Flexotasks are capable of executing periodic threads at 10 KHz with a standard deviation of 1.2μs and that it achieves significantly better performance than RTSJ's scoped memory constructs while remaining impervious to interference from global garbage collection.