Conclusions - University of York

Download Report

Transcript Conclusions - University of York

Roadmap
 Introduction
 Concurrent Programming
 Scheduling and Schedulable
 Communication and
 Asynchronous Events and
Synchronization
 Completing the Java Model
 Overview of the RTSJ
 Memory Management
 Clocks and Time
Objects
Handlers
 Real-Time Threads
 Asynchronous Transfer of
Control
 Resource Control
 Schedulability Analysis
 Conclusions
© Andy Wellings, 2003
Conclusions
 Java has been generally immensely successful, however, it has


yet to establish itself in the real-time and embedded markets
The provision of real-time programming abstractions along with
the promise of a predictable real-time Java Virtual Machine has
the potential give Java a foothold
However, there are still obstacles to be overcome; the main
challenges are:



© Andy Wellings, 2003
Specification — to produce a consistent and unambiguous Real-Time
Specification for Java along with well-defined profiles for particular realtime application domains
Implementation — to generate efficient implementations of real-time
virtual machines (both open source and propriety ones) for the full
specification and the profiles
Maintaining Momentum — to stimulate evolution of the specification in a
controlled and sustained manner to add new functionality and to address
new architectures
Specification Challenges I
 Schedulable objects




© Andy Wellings, 2003
The RTSJ generalize real-time activities away from real-time
threads towards the notion of schedulable objects ( real-time
threads and asynchronous event handlers)
Unfortunately, the operations that can be performed on a
schedulable object are not consistently defined
E.g. a schedulable object can create and enter into one or more
scoped memory areas; the methods for manipulating the resulting
scoped memory stack can be found partly in RealtimeThread
and partly in AsyncEventHandler
Ideally, all operations associated with schedulable object should
be defined either in the Schedulable interface or in the class
defining the associated functionality (in this case the
MemoryArea class)
Specification Challenges II
 Aperiodic and sporadic real-time threads


AperiodicParameters and SporadicParameters can only
successfully be used with asynchronous event handlers
There is no notion of a release event for an aperiodic (or sporadic) thread
and consequently it is difficult to see how an implementation can detect
deadline miss or cost overrun
 The WaitForNextPeriod method




Is only applicable to real-time threads with periodic release parameters
Ideally, RealtimeThread should contain a waitForNextRelease
method rather than a waitForNextPeriod method.
A releaseRealtimeThread method would also be needed
This approach would also solve the previous problem with aperiodic
threads, and provide a level of consistency between asynchronous event
handlers and real-time threads
© Andy Wellings, 2003
Implementation Challenges
 Memory management



The new memory management assignment rules must be checked by an
implementation
Whilst it is clear that static analysis of programs can eliminate many of the
run-time checks, this requires special RTSJ-aware compilers or tools.
The availability of these, along with efficient run-time implementations of
the overall model, may well determine the eventual impact and take up of
the RTSJ
 Asynchronous Transfer of Control

It a major challenge to keep the ATC overheads in the JVM small and
predictable, and to ensure that code not using this facility suffers minimal
impact
© Andy Wellings, 2003
Maintaining Momentum
 With any new technology, there is a tension between producing a stable
standard base which users can depend on, and providing a dynamic product
that continues to evolve and address new application needs
 Java has caught the imagination of the user-community, produced stable
releases and maintained momentum for its evolution.
 If the RTSJ is to survive, it is important that it keeps pace with the more
general Java development and also that it develops its own momentum.

New standard schedulers

Multiple schedulers

Multiple criticalities

Alternative interrupt handling models

Real-time concurrency utilities

Multiprocessor and distributed systems
© Andy Wellings, 2003
Finally…
 See http://www-course.cs.york.ac.uk/crt for course web page to help
with exam preparation
 The exam will consist of three questions of which you have to answer
two. You will be given summaries of all Java classes/interfaces used in
the course
 One question will be on concurrent programming in Java, the other two
will be on the RTSJ
 Typically a question has
a general part asking you to explain some concept (bookwork)
 an unseen analysis or problem part, for example
 sketch some code to solve a particular problem or illustrate an algorithm
 analysis of a situation - e.g given some code with ATC components what
happen when the ATC is fired
 illustrate the execution of some particular threads which use priority
inheritance, or scoped memory

© Andy Wellings, 2003