• No results found

Java and Real Time Storage Applications

N/A
N/A
Protected

Academic year: 2021

Share "Java and Real Time Storage Applications"

Copied!
24
0
0

Loading.... (view fulltext now)

Full text

(1)

Gary Mueller

Janet Borzuchowski

Java and Real Time Storage

Applications

(2)

Flavors of Java for Embedded

Systems

• Software Java Virtual Machine(JVM)

• Compiled Java

• Hardware Java Virtual Machine

(3)

Software JVMs and RTOS

• Software JVM runs as a critical,

non-real time, low priority task

– Hardware configuration

– Maintenance and diagnostics – Code upgrades and loads

• Java threads including garbage collection

(4)

WindRiver® Personal Jworks™

• Software JVM runs as a set of tasks on

VxWorks®

• Does not provide real-time response

• Garbage collection and other Java tasks can

be executed at a lower priority than other time critical tasks.

(5)

Compiled Java

• Java is compiled into native machine code

• Garbage collection is implemented through

runtime libraries

• Provides the benefit of an object oriented

language without the performance penalty of an interpreted language

(6)

WindRiver® Diab™ FastJ®

• Compiles C, C++ and Java to native machine

code

• Configure core libraries to reduce code size

• Memory management options

– Explicit memory management

• Similar to C/C++, eliminates garbage collection

– Standard, non-incremental garbage collection

• When memory is low or explicitly called

– Preemptive, incremental garbage collection

(7)

Hardware JVM

• JVM is implemented in silicon.

• Ultimate in speed and performance

• Implemented as either a co-processor or

(8)

ARM® Jazelle™

• Hardware JVM for ARM® family of

processors

• Executes both Java byte codes and ARM®

machine codes

• Special instruction to enter Java state and

(9)

JVM is the RTOS

• JVM is the RTOS

• Combines the JVM and an operating system

(10)

Esmertec JBed

• Entire application including device drivers

can be written in Java

• Bytecode is translated to machine code

(11)

Why Java for Embedded

Systems?

• Java is an object oriented language

– All the advantages of object technology – Enforces object concepts

• Space, performance and deterministic

problems are being solved

• New software engineers are trained in Java

(12)

Java and Embedded Systems

• Space

– Will the JVM and class libraries fit?

• Performance

– Can the JVM run fast enough to meet hard real time deadlines?

• Deterministic

– Is the JVM deterministic?

(13)

Contact Information

Gary Mueller [email protected] 303-465-4279 Janet Borzuchowski [email protected] 303-673-8297

(14)

Software Java Virtual Machine

Classic use of Java

• Most desktop applications execute Java

using a JVM running as a process or task on the desktop

• Browsers execute Java within the browser

(15)

Personal Jworks™ Architecture

PersonalJava 3.1 Core Libraries JVM Lightweight JDK 1.1.8AWT

Supporting Native Libraries WindML 2.0

(16)

Gnu Compiler for Java™(gcj)

• Compiled applications are linked with the

gcj runtime library, libgcj

– Java source code to native machine code – Java source code to Java bytecode

– Java bytecode to native machine code

Requires port of libgcj library

– Core classes

– Garbage collector – Bytecode interpreter

(17)

FastJ® Compiler Architecture

C Source C++ Source Java Source

C Parser C++ Parser Java Parser

Global Optimizer

Code Selector

Code Generator

Assembler

Linker Archiver

Common Back End

ELF Executable File Run-Time Profile Info CPU-Specific Info Libraries ASM Source

(18)

Jazelle™ Run-Time Architecture

Java Application

Native Application

Network Graphics Remote Methods

Native Methods

Verifier Class Loader Garbage Collector Process Manager Memory Manager

Jazelle™ Software Kernel

Native Operating

System

Jazelle™ Enabled ARM® Processor

Trusted Interface Class Libraries Java VM Java ISA

(19)

Jbed™ Run-Time Architecture

com.jbed.* java.* javac.* javax.microedition.*

Java Applications Http Protocol Tftp Protocol TBCC GC Log Debug Agent ... ...

(20)

On the Java Road

• Introducing C++ and Object design and

analysis to time critical code

• Evaluating FastJ™

• Exploring Jbed™ option

• Discussing Jazelle™ with ARM®

(21)

Steps to Java

• First Step --- FastJ™

– Similar to current development environment – Least disruptive

– Does not require hardware changes

• Next step --- Jbed™

– Combination of hardware/software

(22)

Our Environment

• 9840 and 9940 family of tape drives

• ARM7® 32 bit processor

• 2-4MB of RAM

– Code image

• 32MB - 64MB data buffer

• SCSI, ESCON, and Fibre Channel Interface

(23)

State of Java and Embedded

Systems

• Resurgence in Java chips

– ARM - England

– Ajile - United States

– Vulcan Machines Ltd - England – NTT Docomo - Japan

• Personal Digital Assistants

(24)

Java Runtime Environment

• Java is an interpreted language

Java is compiled to an intermediate language

– Java Byte Codes

– Assembly language for the Java Virtual Machine

• Java Virtual Machine executes Java Byte

code

References

Related documents

Like traditional high-level language compilers, a direct Java compiler starts with an application’s Java source code (or, alternatively, with its bytecode) and trans- lates it

• With Java, you write the program once, and compile the source program into a special type of object code, known as bytecode. • The bytecode can then run on any computer with a

Rather a special native program called the Java interpreter reads the byte code and executes the corresponding native machine instructions.. Thus to port Java programs to a new

The SHAP microarchitecture has to fulfill a cou- ple of requirements defined by the agent concept as well as the Java Virtual Machine (JVM): real- time execution of Java bytecode

Class Loader and bytecode Verifier are a part of Java Virtual Machine internal security: Class Loader prevents code loaded by different class loaders from interfering with one

In fact, the tester does not even need the source code to test a program, although, because the Java bytecode retains information about source code, if the source is available, the

For example, the Java compiler, which converts Java source code into Java bytecode (an intermediate language for the Java Virtual Machine (JVM)), is provided as part of the Java

Java programs are not executed directly, or compiled to native machine code, but compiled to virtual machine code The virtual machine code is interpreted.. instruction-by-instruction