understanding the role of real-time java in aegis warship...

Post on 16-Feb-2019

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1© 2012, Atego. All Rights Reserved.© 2011 Atego. All Rights Reserved.

Understanding the Role of Real-Time Javain Aegis Warship ModernizationDr. Kelvin Nilsen, Chief Technology Officer Java, Atego Systems

2© 2012, Atego. All Rights Reserved.

Aegis Weapons System Overview

� The shield of the fleet, providing area air defense for a “carrier

battlegroup”, as well as long-range ballistic missile defense

� Computers monitor data from Radars, provide situational awareness

to human operators, and automate launching of interceptor missiles

� About 100 computers, many multi-core, providing end-to-end timing

guarantees of less than 100 ms on computations spanning many

computers

� Jitter constraints on “local” computations are well under one ms

3© 2012, Atego. All Rights Reserved.

Why “Modernize” the Aegis Weapons Software?

� Original Aegis Weapons software ran on a mix of government-

specified UYK computers and some other systems, running custom

software mostly written in CMS-2

� The reliance on custom technology limited access to competition:

could not leverage economies of scale

� Step one: replace some UYK computers with COTS processors

� Replaced some CMS-2 code with Ada, C++, and Jovial applications

� But porting software to each new COTS hardware configuration

required considerable time and effort

� Aegis “Baseline 7” selected hardware in 1998, but first (of many

planned) deployment(s) was delayed until 2005

� Cannot afford the calendar time, nor the costs associated with continual

porting of the software to new platforms

4© 2012, Atego. All Rights Reserved.

Key Objectives of Aegis Weapons System Modernization

�To decouple hardware from software, enabling all

deployed Aegis Combat Systems to undergo hardware

upgrades every 4 years and software upgrades every 2

years, on a staggered schedule (over 100 ships, plus

new land-based deployments)

�To enable competitive bidding for new software

capabilities, with new software components easily

integrated into the existing software infrastructure

without compromising existing software capabilities

5© 2012, Atego. All Rights Reserved.

Original Software Architecture

Kill

Evaluation

Launcher

Management

Anti-Air Warfare

(AAW) Engageability

Track

Processing

Simultaneous

Phased Array (SPY)

Radar

Electro-Optic (EO)

Management

Command and

Decision (C&D)

Pre/Post Launch

Scheduler

Mid-Course

Guidance

Illumination

Management

Display

Management

Aegis Display

System (ADS)

Monolithic

Shared

Memory

Hosted by

Proprietary

SMP

Processors

Common shared memory

data access

Pro

prieta

ry inte

r-pro

cess c

om

munic

ation

About 200,000 lines of code

6© 2012, Atego. All Rights Reserved.

Modernized Software Architecture

Simultaneous

Phased Array

Radar (SPY)

Engagement

Administrator

Light Airborne

Multi-Purpose

System

(LAMPS)

Helicopter

(Boundary)

Aegis Display

System (ADS)

Illuminator

(Broker)

Air

Administrator

Command

and Decision

(C&D)

Weapon

Resource

Schedule

Sensor

Resource

Broker

Operational

Readiness

and Test

(ORTS)

Adapter

Close-in

Weapons

(CIWS)

Broker

(Phalanx)

Command

and Control

(C2) Adapter

Aegis

Combat

Training

System

(ACTS)

Adapter

Launcher

Boundary

Display

Adapter

Session Factory

SessionSession

Session

Engagement Factory

Engage

mentEngage

mentEngage

ment

Target

Tracker

Missile Factory

MissileMissile

Missile

Target

Tracker

About 500,000 lines of “Real-Time Java” code

7© 2012, Atego. All Rights Reserved.

� It is not the “Real-Time Specification for Java” (RTSJ)

� Real-Time Garbage Collection

– Typical applications enforce time constraints of 1-100 ms

� Portable Real-Time Scheduling and Synchronization

– Global dispatching always runs the N highest priority ready Java threads

on N available cores

– Implements priority inheritance on all Java synchronization locks

– Maintains all thread queues in priority order

– Optional use of extended priority range (1-32)

� Embedded integrations (RTOS, processors, ROM deployment)

� VM Management Services (monitor, control resource utilization)

� Improved Timing Services

– Monotonically increasing clock for global synchronization

What do we mean by “Real-Time Java”?

8© 2012, Atego. All Rights Reserved.

Aspects of Real-Time Garbage Collection

� Key attributes of Perc Ultra real-time GC for SMP Java:

� Preemptive

� Incremental

� Accurate

� Defragmenting

� Paced

� Parallel and Concurrent

� Garbage collection is a service provided on behalf of application

� Generally runs at “low priority” due to long deadlines

� May inherit priority of any high-priority task that needs to allocate

� Threads that need to run at higher priority than garbage collection need to avoid allocating memory (in order to avoid priority inversion)

9© 2012, Atego. All Rights Reserved.

Incremental Mark and Sweep GC

FreeLists

ScanList

ListEnd

RootPointers

Live, Unmarked

Marked, UnscannedDead

Allocatable Marked, Scanned

10© 2012, Atego. All Rights Reserved.

Fully Copying Garbage Collection

� Incrementally copy objects from from-space into to-space

� Redirect memory accesses between Relocated and

Reserved

A CB

C’ B’ A’

ReservedRelocated

To-space:

From-space:

New

11© 2012, Atego. All Rights Reserved.

Implementation Approach

� Every object has a valid-copy pointer contained within its

header

A CB

C’ B’ A’

ReservedRelocated

To-space:

From-space:

12© 2012, Atego. All Rights Reserved.

Mostly Stationary Garbage Collection

FreeLists

ScanList

ListEnd

RootPointers

Incremental mark and sweep region

To space:From space:

13© 2012, Atego. All Rights Reserved.

Pacing of Garbage Collection

Real Time (seconds)

10

20

30

20%

40%

60%

80%

100%

550 700650600

Preemption of GC by higher prioritynon-Java threads

Preemption of GC by higherPriority Java threads

14© 2012, Atego. All Rights Reserved.

Project Results

� “I can say it was a roaring success for us.” – Andrew Winkler,

Chief Software Architect, Lockheed Martin Aegis Open Architecture

� Existing software engineers (previously proficient in Ada or CMS-2)

quickly adapted to Java

� The Eclipse Integrated Development Environment, debugging

support, and COTS Java tools represented huge improvements

� Implemented Aegis Air Defense Warfare software (150K SLOC),

including test, evaluation, and requirements verification, in 18

months – “Phenomenal”

� Verified 3,500 requirements to Navy satisfaction in 5 months (9-

fold improvement over previous best practice)

15© 2012, Atego. All Rights Reserved.

Project Results (part 2)

� First deployment based on new Open Aegis Architecture required

only 3 years from hardware selection (vs. 7 years)

� Support for a traditional deployment style (AoT compile and link)

satisfied Navy export restrictions (Aegis is shared with many allies)

� After “completing” the Open Aegis Architecture modernization,

support for “Standard Missile 6” was added in only 3 months (vs. 1

full year previously)

16© 2012, Atego. All Rights Reserved.

Conclusions

� “Real-time Java” can provide important value to large and complex

dynamic soft real-time systems

� Soft real-time systems require empirical techniques within a

theoretically sound analysis and implementation architecture

� Object-oriented encapsulation and modular composition are critical to

the success of this effort

� Portability across diverse and evolving hardware and operating

system platforms was perhaps even more critical to the success of

this project

� Use of COTS software technologies can leverage high-volume

economies of scale to the benefit of mission-critical and even safety-

critical systems

17© 2012, Atego. All Rights Reserved.

Acronyms

� AoT: Ahead-of-Time

� CMS-2: Compiler Monitor System

2 (a programming language)

� COTS: commercial off-the-shelf

� CPU: Central Processor Unit

� GC: Garbage Collection

� J2SE: Java 2 Standard Edition

� ms: millisecond

� ROM: Read-Only Memory

� RTOS: Real-Time Operating

System

� RTSJ: Real-Time Specification for

Java

� SLOC: Significant Lines of Code

� SMP: Symmetric Multi-Processor

� VM: (Java) Virtual Machine

top related