Realtime Development
Platform Independent Software Development
for Multicore Systems
Ingo Prötel, aicas GmbH
Computing Frontiers
Jeopard—Java Environment for Parallel Realtime Development
Jeopard-Project:
Java Envorinment for Parallel Realtime
Development
Project Details:
z
7th FP Objective ICT-2007.3.4: Computing Systems
z
started January, 2008
z
M-Lead: The Open Group
Jeopard—Java Environment for Parallel Realtime Development
Project Goal
Provide a platform independent software development environment
for
z
complex
z
safe
z
Realtime
z
multicore systems.
Leverage off existing technology and past projects:
z
Java, RTSJ, SC-Java
Multilayered Approach
z
Applications
zTools
z
API (Java and C)
zJava VM
z
Operating Systems (RTOS)
zCPU Architecture
Jeopard—Java Environment for Parallel Realtime Development
Corresponds to layered structure of the project
Project Work Package Structure
z
Multi-Java Optimized Processor (JOP)
zHW support for synchronization
WP 3: OS Layer
Corresponds to layered structure of the project
Project Work Package Structure
z
Extend partitioning OS
–
HAL
–
Microkernel API
–Kernel validation
z
Coordination between OS and Java
threads
−
CPU usage measurement
−CPU budget
Jeopard—Java Environment for Parallel Realtime Development
WP 3: OS Layer
WP 4: Virtual Machine Layer
Corresponds to layered structure of the project
Project Work Package Structure
z
Realtime Memory Management
−Parallel and incremental
z
Synchronization
−Java Monitors
−
GC data structures
−
Sub-word data access
zAOT-Compiler support
WP 3: OS Layer
WP 4: Virtual Machine Layer WP 5: API Layer
Corresponds to layered structure of the project
Project Work Package Structure
z
OS level API
zJava level API
zStandardization
−
Multicore Association
−Java Community Process
Jeopard—Java Environment for Parallel Realtime Development
WP 3: OS Layer
WP 4: Virtual Machine Layer WP 5: API Layer
WP 6: Analysis Tools
Corresponds to layered structure of the project
Project Work Package Structure
z
Static Analysis for Correctness
zFresco contract model for Java
zConcurrent Unit Testing FW
WP 3: OS Layer
WP 4: Virtual Machine Layer WP 5: API Layer
WP 6: Analysis Tools WP 7: Validation
Corresponds to layered structure of the project
Project Work Package Structure
z
Multicore Radar Processor
zSoftware Radio
z
Airlines Operation Communication
Jeopard—Java Environment for Parallel Realtime Development
WP 3: OS Layer
WP 4: Virtual Machine Layer WP 5: API Layer
WP 6: Analysis Tools WP 7: Validation
WP 1: Requirements Analysis
WP 9: Management
Corresponds to layered structure of the project
Jeopard—Java Environment for Parallel Realtime Development
POSIX
Jamaica VM
Multicore platform
P1
P3
Pike OS microkernel
Expected Results: Jamaica on PikeOS
Multicore platform
P1
P3
Pike OS microkernel
Run in partition with POSIX identity using its own
scheduler
Expected Results
RTOS
Java VM
Multi-JOP
Java application
Jeopard—Java Environment for Parallel Realtime Development
Expected Results
RTOS
Java VM
Multi-JOP
DFA
Java application
Expected Results
RTOS
Java VM
Multi-JOP
DFA
Concurrent
Unit Test
Java VM
Java application
Jeopard—Java Environment for Parallel Realtime Development
Some Work Items (1)
z
Parallel deterministic garbage collection
−
Root scanning of multiple cores
−
Parallel mark and sweep
−
Locking of global data structures
z
CPU partitioning on a multicore system
Some Work Items (2)
z
Realtime parallel scheduling
−
OS scheduler provides CPU time on a set of CPUs
−
Java scheduler assigns threads to CPUs
−
Use concurrency information from static analysis
Jeopard—Java Environment for Parallel Realtime Development
Some Work Items (3)
z
Nonfunctional analysis on multicore
−
Show lack of deadlocks
−
Identify race conditions
−
Escape analysis
z
Unit testing for multicore
−
Simulate fully parallel environment
−
Prune test cases
Expected Technical Impact
Reduced SW Development Cost
through
standardised APIs that permit interoperability and
reuse of code on different platforms
Higher Reliability
through analysis tools
Reduced Time-to-Market
through standardized
development methods (Java) even for critical
embedded applications (e.g., in avionics,
automotive, industrial markets).
Jeopard—Java Environment for Parallel Realtime Development
Conclusion
Jeopard will provide
z
standard APIs for Java (multicore RTSJ) and C
(multicore posix threads)
z
scheduling technology for multicore RTOS
(multicore PikeOS)
z