Javelin:
Worst-Case Execution
Time Analysis Using an Architectural Neutral Form.
(DERA
project CSM/1254)
Introduction
Java
Byte Code (JBC) is a suitable generic distributable format for portable
real-time time systems. In order to analyse its temporal properties it
is required to be able to compute worst case execution times of java class
files. This project investigates how worst case execution time analysis
can be performed on JBC so that it can be portable and on the mechanisms
required to include annotations on the java class file to be able to perform
such analysis.
Portability
is achieved by analysing the Java Class files, independently of the source
code in which they have been written (i.e. Java, Ada C,...).
A tool
is currently being developed that parses Java Class Files and determines
worst case execution time of the scopes defined.
A paper
titled "Portable Worst-Case Execution Time Analysis of Java Byte Code"
has been accepted to 12th Euromicro Conference on Real-Time Systems. The
paper describes in detail the aims of the project and the annotation mechanism.
Annotations
The
segments of code to analyse and the annotations are introduced in the source
code as calls to the WCETAn class file. The
code to be analysed is augmented with calls to this class. The WCETAn tool
analyses the Java Byte code and extracts the annotations and uses them
in the WCET process.
The
current version of the annotation class allows to define the scope to limit
the WCET analysis, maximum loop iterations, modes and particular WCET for
each mode and mutually exclusive paths.
An
Ada95 version of the WCETAn class, which is implemented as a standard package
is also available.
Portability
The
annotation mechanism is transparent of the source language used. The key
of portability is achieved by performing the analysis on the Java Class
File, independently wether this class file comes from a Java program, an
Ada program or C program compiled down to Java. Other versions of the annotation
package will be also produced for different languages.
Example
There
is an example of the pow function
with annotations made with the WCETAn class.
WCETAn
Tool
A
prototype tool is currently being developed (watch this space!).
Contact
This project is funded by
the DERA (project number CSM/1254). Please send comments to Guillem
Bernat.
|