Realtime Java Intro

From Wiki
Revision as of 06:43, 9 January 2012 by Suhridk (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search


  • 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.