E. Douglas Jensen's

Real-Time for the Real World

 
Home  |  Search  |  Contact Me   
 
 

My personal manifesto about the widely misunderstood field of real-time computing...

"I don't understand why people are frightened of new ideas. It's the old ideas that frighten me."
-- John Cage


 

Introduction
About Me
Real-Time
Distributed Real-Time
Distrib. Real-Time Java
Real-Time Java
Real-Time CORBA
Real-Time Resources
Our Documents
 

Time/Utility Function Case Studies:
The AWACS Surveillance Tracking System

Applying Time/Utility Functions and Utility Accrual Scheduling to Association

This project’s goal was to improve the tracker’s – and hence the surveillance mission’s – performance by enabling the tracker to do a better job of selecting the most useful subset of incoming data that it could feasibly process. Our approach to achieving that goal was to employ a computing system (in this case, operating system) scheduling facility instead of mechanisms internal to the tracker as extant AWACS surveillance trackers do.

This led to the experimental tracker being multithreaded, including a separate thread per data association (i.e., per cluster). The association algorithms are the most computationally demanding ones, and were encapsulated in an object that was extracted from the rest of the tracker. This object can be – and has been – run on other nodes in a distributed tracking system. Moreover, there is provision in the tracker to select the association server to be used on a cluster-by-cluster basis. For brevity and clarity, here we consider only the association threads and make the simplifying assumption that each cluster has only a single track.

To improve handling of overloads, we used time/utility functions to dynamically apply resources to the right tracks at the right times. The tracker dynamically applies computational resources to threads to adapt to changes in physical environment - e.g., tracks and sensor reports, updated operator preferences, modified mission goals, and changes in processing capability (overloads, failures). During overload, data processing order is based on relative thread utility.

The AWACS sensor properties imply a general utility function for the association computation. The radar antenna rotates with a 10S period. That suggests the association utility function has a “critical time” at the 10S period length, at least two distinct non-zero utilities before the critical time, and a third distinct, lower, utility after the critical time. See Figure 1.
 

Figure 1:

Next, we determined the thread time/utility function shapes.

Prior to the critical time, processing a sensor report for one of these tracks in under five seconds (half the sweep period) would provide better data for the corresponding report from the out-of-phase sensor, so the utility decreases with time. In this project, the utility function had to decrease linearly, due to an implementation artifact in our experimental system – the OS (OSF/RI’s MK7.3A) time/utility function scheduling algorithm allowed only one critical time. The slope was arrived at  empirically (we are currently devising and documenting a methodology to facilitate this).

After the critical time, the utility is zero, because newer sensor data has probably arrived. If the processing load in one sensor sweep period is so heavy that it couldn’t be completed,
probably the load will be about same in next period, so there will be no capacity to also process data from the previous sweep. A tracker that could process older as well as current data would be significantly more complex, and probably delay the track update.

That established the time/utility function shape for the tracker’s association threads, as shown in Figure 2.

Figure 2:

Three QoS metrics that could quantify track processing were chosen that fit the project’s scope:
bullet

Quality – 0 to 7
The traditional measure of the amount of recent sensor data incorporated in a track record; it is incremented or decremented after each radar scan

bullet

Accuracy – high or low
A measure of the uncertainty of the estimate of a track’s position and velocity; it is derived from traditional Kalman filter processing

bullet

Importance – high or low
The traditional operator-identified importance based on geography, threat, and other characteristics

Tracker domain experts’ preferences in terms of track QoS metrics imply the thread utility values:
bullet

Don’t drop tracks, because they are expensive to re-create

bullet

User-identified “important” tracks receive preference

bullet

User-identified “important” geographic regions receive preference

bullet

Maneuvering tracks need to be updated more frequently than non-maneuvering tracks

bullet

Potentially high threat tracks receive preference

bullet

High speed tracks receive preference

bullet

Tracks with poor state estimates receive preference

The initial utility U1 of an association for a track report was derived from track QoS metrics by gedanken experiments - the project system designers interacting with tracker domain experts. These interactions required considerable time and thought, because previously, tracker domain experts didn’t have incentives to use their knowledge to understand and express behavioral options in the face of dynamic uncertainties (i.e., gracefully handling overloads) that plague current trackers. Figure 3 illustrates the resulting relative initial utilities for the twelve cases using the three QoS metrics.

Figure 3:

The association (and other) threads are scheduled based on their utility functions.

For the association threads, the tracking application selects the established utility function from the OS scheduler’s library of shapes. The tracking application does a look-up in the utility U1 table for each association thread before calling the OS scheduler. A utility-based processor-scheduling policy in the OS schedules threads according to a heuristic that attempts to maximize total accrued (summed) utility.

The MK7.3A [ref] real-time OS (based on a merger of the Mach 3 [ref] and Alpha [Clark et al. 93] OS's) includes a scheduling framework that allows arbitrary scheduling policies to be plugged in. This allowed the project to evaluate the tracker's performance using three different scheduling policies: FIFO, a common policy in non-real-time systems; fixed priority, the most common policy in conventional real-time computing systems; and a (Locke's) time/utility function policy.

The time/utility function-based scheduling policy performed better than FIFO and priority policies; one example is shown in Figure 4.

Figure 4:

This project's AWACS tracker showed that the time/utility function model can provide significant cost-effective improvements in dynamic systems requiring resource management adaptivity in the face of overloads (a common case in the systems of interest to us).

This experimental project produced an adaptive, distributed surveillance tracker that was directly driven by application-level QoS metrics. Time/utility functions encouraged domain experts to use their knowledge to understand and express behavioral options in the face of dynamic uncertainties (i.e., gracefully handling overloads) that plague current trackers.
The utility model used only three of many possible tracker metrics to achieve significant tracker performance.

The tracker was demonstrated to USAF AWACS operators and tracker designers at Boeing, and received strong supportive feedback, including about its QoS metrics and its behavior under overload.

We also implemented the AWACS tracker using the Real-Time Specification for Java (RTSJ) [ref] Reference Implementation [ref]. Performance results of the RTSJ RI based tracker were similar to those of the original C++ based one, as illustrated in Figure 5.

Figure 5:

 

References

Clark et al. 99 Raymond Clark, E. Douglas Jensen, Arkady Kanevsky, John Maurer, Paul Wallace, Thomas Wheeler, Yun Zhang, Douglas Wells, Tom Lawrence, and Pat Hurley, An Adaptive, Distributed Airborne Tracking System ("Process the Right Tracks at the Right Time"), Proc. Workshop on Parallel and Distributed Real-Time Systems, 1999, IEEE.

Add to Favorites

Print Page

Download a PDF copy of this page

 

 

Real-Time:

Motivation and Intro

Real-Time Overview

Time Constraints

Deadlines

Time/Utility Functions

Time Constraints Scopes and Priorities

Sequencing

Sequencing Criteria

Timeliness Optimality

Predictability

Hard and Soft Real-Time

Sequencing Algorithms

Worked Examples

AWACS Tracker

Coastal Air Defense

History

 
 

View Site Changes  RSS feed | Site Updated 03/30/2008 |  Legal