Concurrent programming in ERLANG (2nd ed.)
Concurrent programming in ERLANG (2nd ed.)
Fast static analysis of C++ virtual function calls
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Modern control engineering (3rd ed.)
Modern control engineering (3rd ed.)
Design of Dynamically Reconfigurable Real-Time Software Using Port-Based Objects
IEEE Transactions on Software Engineering
Concurrency in Ada (2nd ed.)
Real-time dynamic voltage scaling for low-power embedded operating systems
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Accurate garbage collection in an uncooperative environment
Proceedings of the 3rd international symposium on Memory management
Synchronous Programming of Reactive Systems
Synchronous Programming of Reactive Systems
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
Garbage collection for embedded systems
Proceedings of the 4th ACM international conference on Embedded software
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
A hierarchical coordination language for interacting real-time tasks
EMSOFT '06 Proceedings of the 6th ACM & IEEE International conference on Embedded software
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
Hierarchical real-time garbage collection
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
The embedded machine: Predictable, portable real-time code
ACM Transactions on Programming Languages and Systems (TOPLAS)
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)
Lime: a Java-compatible and synthesizable language for heterogeneous architectures
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
I4Copter: an adaptable and modular quadrotor platform
Proceedings of the 2011 ACM Symposium on Applied Computing
Separate compilation of hierarchical real-time programs into linear-bounded Embedded Machine code
Science of Computer Programming
Tailor-made JVMs for statically configured embedded systems
Concurrency and Computation: Practice & Experience
Hi-index | 0.00 |
Exotasks are a novel Java programming construct that achieve three important goals. They achieve low latency while allowing the fullest use of Java language features, compared to previous attempts to restrict the Java language for use in the submillisecond domain. They support pluggable schedulers, allowing easy implementation of new scheduling paradigms in a real-time Java system. They can achieve deterministic timing, even in the presence of other Java threads, and across changes of hardware and software platform. To achieve these goals, the program is divided into tasks with private heaps. Tasks may be strongly isolated, communicating only with each other and guaranteeing determinism, or weakly isolated, allowing some communication with the rest of the Java application. Scheduling of the tasks' execution, garbage collection, and value passing is accomplished by the pluggable scheduler. Schedulers that we have written employ logical execution time (LET) in association with strong isolation to achieve time portability. We have also built a quad-rotor model helicopter, the JAviator, which we use to evaluate our implementation of Exotasks in an experimental embedded version of IBM's J9 real-time virtual machine. Our experiments show that we are able to maintain very low scheduling jitter and deterministic behavior in the face of variations in both software load and hardware platform. We also show that Exotasks perform nearly as well as Eventrons on a benchmark audio application.