Realtime Java Intro
From Suhrid.net Wiki
Jump to navigationJump to search
Intro
- US NIST coordinated guiding principles and set of requirements for the RealtimeJava.
- Guiding principles was to support current real time practices and and facilitate advances in state of the art real time implementation.
Current Practice
- Fixed priority and round robin scheduling
- Mutual exclusion locking (avoiding priority inversion)
- Inter-thread communication (e.g. semaphores)
- User-defined interrupt handlers and device drivers — including the ability to manage interrupts (e.g., enabling and disabling)
- Timeouts and aborts on running threads
Implementation Requirements
- A framework for finding available profiles (e.g. safety critical, no dynamic loading and distributed real time profiles).
- Bounded preemption latency on GC.
- A well defined model for real time Java threads.
- Communication and synchronization between real time and non real time java threads.
- Mechanisms for handling internal and external asynchronous events.
- Asynchronous thread termination.
- Mutex without blocking.
- Ability to determine if thread is real time or non real time.
- A well defined relationship between real time and non real time threads.
Guiding Principles
- Write once run anywhere.
- Be backward compatible with non real time Java programs - the RTJVM should be able to run standard java apps.
- Address current real time practice.
- Give priority to predictable execution in all design tradeoffs.
- Require no syntactic extensions to the Java language.
- Give platform implementers flexibility.