Course programme

Overview The Developing Real-Time Applications for the Java Platform course provides students with the essential skills required to use the real-time capabilities of the Real-Time Specification for Java (RTSJ) to create real-time applications.

Objectives

· Control garbage collection induced jitter in thread release · Create RealtimeThread objects, and use SchedulingParameters and PeriodicParameters to control thread behavior · Control concurrent access to resources and describe priority inversion and the priority inheritance algorithm · Understand the constraints that apply when using objects in non-heap memory, and issues that might arise when using library APIs in non-heap memory · Use AsyncEvent, OneShotTimer, PeriodicTimer, and AsyncEventHandler objects to provide timed and asynchronous behavior · Control the queueing of asynchronous events to limit the impact of out-of-spec events or handlers on other parts of a system · Interrupt threads asynchronously and control their behavior under such conditions · Use portals to access scoped memory · Describe and use appropriately the scoped run loop, encapsulated method, handoff, timed algorithm, multi-scoped object, wedge thread pattern · Use overrun handlers to limit the impact of out-of-spec threads on other parts of a system

PreRequisites

To succeed fully in this course, students should be able to:· Design, write, and debug programs using Java 1.4 · Make use of inner classes, including anonymous inner classes · Make use of the threading facilities of Java 1.4

Who Can Benefit

Students who can benefit from this course are programmers, developers, and software architects who will be involved in development of real-time systems using the Java programming language with the RTSJ extensions. Students should be fluent in the Java programming Language up to version 1.4 and should be have some familiarity with the nature of real-time programming, though extensive prior experience is not required.

Interacting With the Real World· Design objects that give access to devices · Design objects for use in a real-time system · Describe actuators and sensors · Describe ways of connecting hardware to computers · Outline the use of raw or physical memory · Select the appropriate techniques for handling external events

Introduction to the Event-Driven ArchitectureModule· Describe event-driven architecture · List the advantages and disadvantages of event-driven architecture · Describe how a single CPU is scheduled when multiple threads of differing priorities are runnable · Describe real-time object design · Design sound objects for a real-time system · Schedule and dispatch in the RTSJ · Write code for active components in RTSJ · Add events to the simulation

Component State Patterns· Identify and differentiate component state and lifetimes · Describe and implement the multi-scoped object pattern · Describe and use the portal object of a ScopedMemory object · Describe concurrency approaches suited to portals · Describe and implement the wedge thread pattern · Describe approaches for moving data between scopes · Describe and implement the handoff pattern

Asynchronous Transfer of Control· Describe the purpose of asynchronous transfer of control (ATC) · Describe and use the ATC API · Describe and implement the timed algorithm pattern · Write interruptible code, and code that defers interrupts when necessary