DynBench: A Dynamic Real-time Benchmark Suite and Environment
(manual for use of the benchmark applications and associated tools)
Laboratory for Parallel and Distributed Real-time Systems
Department of Computer Science and Engineering
University of Texas at Arlington
This work was sponsored in part by DARPA/NCCOSC contract
N66001-97-C-8250, and by NSWC/NCEE contracts NCEE/A303/41E-96 and NCEE/A303/50A-98.
1 Introduction *
2 Installation *
2.1 System Requirements *
3 Running *
3.1 Automatic Startup *
3.2 Manual Startup *
3.3 The Filter Manager (FM) *
3.4 Evaluate & Decide Manager *
3.5 Filter *
3.6 Evaluate and Decide (ED) *
3.7 Sensor *
3.8 experiment generator *
3.9 Action Manager *
3.10 Action *
3.11 Actuator *
3.12 Monitor & Guide Manager *
3.13 Monitor & Guide *
3.14 The Radar Console *
3.15 Scenario File *
4 Appendix: The Dynamic Real-time Path Paradigm *
-
Introduction
After careful study of two instances
of an air defense system (adynamic real-time system), a working prototype
of such a system has been constructed as a benchmark for evaluation of
various approaches to dynamic resource and QoS management. The prototype
uses simulated sensors and actuators, and employs real algorithms for filtering,
evaluating, acting, and guidance. It also has the ability to dynamically
adapt to changes in environmental conditions via the addition and removal
of load sharing replicas of application programs.
Figure 1: The DynBench Applications
The software benchmark subsystem exhibits the behavior of all three
dynamic path types: continuous, transient, and quasi-continuous (see Appendix
for definition of the dynamic real-time path paradigm). The (continuous)
situation assessment path consists of the sensor (a simulator program),
a filter manager program, one or more replicas of the filter program, an
evaluate & decide manager (E & D Manager), and one or more replicas
of an evaluate and decide program. The (continuous) console path includes
all programs of the situation assessment path plus a display console program.
The (transient) initiation path consists of three programs: action manager,
action (possibly replicated), and an actuator simulator. The (quasi-continuous)
monitor and guidance path includes all components of the situation assessment
path plus an M&G manager program and a monitor&guide program (possibly
replicated).
The evaluation copy of DynBench consists of all three paths (depicted
in Figure 1). The situation assessment path continuously senses the presence
of moving bodies and evaluates their motions and relative positions. The
simulated sensor reads a scenario file and generates a set of data samples
(referred to as tracks) based on equations of motion contained in the file.
The data samples represent the current positions of the moving bodies with
respect to time. Sensor has the ability to service requests from other
processes to add, modify, or delete the equations of motion of simulated
bodies. The sensor supplies a continuous data stream to filter data manager,
which distributes the current workload among the currently active filters.
Each filter uses a least mean square regression algorithm to correlate
the point data into three equations describing the motion of the body.
The equations of motion for each of the observed bodies are sent to the
evaluate and decide data manger, which distributes the current workload
among the currently active evaluate and decide worker programs. For human
observation, the equations of motion are also sent to console, where they
are displayed as moving radar tracks. The evaluate and decide data manager
also keeps track of the current evaluation rules and updates all the evaluate
and decide programs when these rules change. Evaluate and decide processes
determine if the current position of an observed body is within a critical
region based on the evaluation rules. If it is a previously unidentified
body of interest, it is passed to the initiation path. If it had been identified
previously, it is sent to the monitor and guide data manager.
The components in the evaluation copy of DynBench are explained below:
-
Scenario File: Contains equations of motion for radar tracks
(missiles and aircraft) to be simulated.
-
Sensor: Reads a scenario file and generates a set of data
samples (referred to as tracks) based on the equations of motion contained
in the file. The data samples represent the current positions of the moving
bodies. Sensor has the ability to service requests from other processes
to add, modify, or delete the equations of motion of simulated bodies;
thus allowing dynamically changing environmental conditions. The sensor
supplies a continuous data stream to filter data manager.
-
Radar Console: For human observation, the equations of motion
(which the simulated tracks follow) are sent to console, where they are
displayed as moving radar tracks.
-
Sensor Console: Provides operator control of the tactical
scenario of the benchmark application. The operator can dynamically insert
elements into the sensor data stream through this console. This is useful
in testing resource management technology---tactical load can be increased
significantly, causing QoS violations, thereby necessitating reallocation
of resources.
-
Filter Manager: Distributes the current workload (set of
radar tracks) among the filter programs. Currently, the tracks are evenly
distributed among the filter programs.
-
Filter: Uses a least mean square regression algorithm to
correlate the point data of each radar track into three equations describing
the motion of the track body. The equations of motion for each of the observed
bodies are sent to the evaluate and decide data manger.
-
Evaluate & Decide Manager: Distributes the current workload
(track equations of motion) among the evaluate and decide (worker) programs.
For human observation, the equations of motion for the tracks are also
sent to console, where they are displayed as moving radar tracks. The evaluate
and decide data manager also keeps track of the current track evaluation
rules and updates all the evaluate and decide programs when these rules
change.
-
Evaluate & Decide: Determines if the current position
of an observed body (radar track) is within a critical region based on
the evaluation rules. If it is a previously unidentified body of interest,
it is passed to initiation path. If it had been identified previously,
it is sent to the monitor and guide data manager.
-
Action Manager: When an event is activated by the evaluate
& decide a message is sent to the Action program.
-
Action: Decides what action to take for each incoming event.
-
Actuator: Initiates the action.
-
Monitor & Guide Manager: Previously identified threats
are distributed the among the Monitor & Guide programs. Currently,
the tracks are evenly distributed among the monitor & guide programs.
-
Monitor & Guide: Performs calculations of the position
of the threat and plots an intercept for the interceptor.
-
Name Server: Maintains configuration information for each
middleware program and for each program of the DynBench benchmark. Clients
of the name server can request the host and port assignments for each active
program.
-
QoS Manager: Detects if a real-time application path becomes
unhealthy (misses its deadline), diagnoses the cause of poor health, and
suggests corrective action (such as moving or replicating an application
program) to the resource manager.
-
HCI: Provides information to the user regarding the system
configuration, the status and QoS of the applications, and information
pertaining to reallocation decisions. Also permits control over the benchmark
application programs---they can be terminated via this window.
-
Installation
-
System
Requirements
-
Windows NT 4.0 ( service pack 5 ) on the PC computers
-
Network time protocol (NTP) on all of the computers
Run the setup program "DynBenchX_X.exe". By default, this will install
the DynBench under "c:\ Desiderata", and the directory structure is shown
below. Also, it will create a folder called "DynBenchX_X" on your desktop
which has all the shortcuts to the programs located in the bin directory
as well as a batch file which automates the startup procedure( Thanks to
Jim Carrol ). You must update this batch file to add and remove programs
as you desire.
Desiderata
|_____bin
|_____docs
|_____include
|_____lib
Update the command line arguments for each shortcut in the "DynBenchX_X"
folder. You should only need to chanage the "name server host" to the actual
host name where you will run the "NameSever" program. In some cases you
might have to change the port as well, we have found that 7300 is usually
unused.
-
Running
-
Automatic
Startup
The benchmark applications may be started automatically by the DeSiDeRaTa
middleware, by providing the specification file in this distribution (or
your own specification file). The included batch file ( NT only) may also
be used to start the programs automaitcally.
-
Manual Startup
Start application in the following order.
-
Run FM.
-
Run EDM.
-
Once the EDM is up and running then start RadarConsole
-
Run AM
-
Run MGM
-
Run DM
-
Run actuator
-
Run ED
-
Run filter
-
Run action
-
Run MG
-
Run DC
-
Run sensor.
-
Once the sensor is up, start SensorConsole.
After about a 10 second delay you should see the tracks in the RadarConsole.
The readme files on the following pages explain how to start the benchmark
applications manually.
-
The
Filter Manager (FM)
This program receives a set of radar tracks from the sensor, and divides
them among the filter programs.
Invocation syntax:
FM <unique name> <path id_no.> <name_server_host>
<name_server_port> <QoS path identifier>
Example: FM FM 1 texas 7300 <D:B:sensing>
OPERANDS:
-
unique name: unique name of this application, for use in this instance
of the sensing path.
-
path id no.: unique number of this instance of the path.
-
name_server_host: name of the host where the name server middleware
program is running.
-
name_server_port: name of the port used to communicate with the
name server.
-
QoS path identifier: unique name for the relevant instance of the
QoS manager.
Note: when running manually, and without middle-ware, the argument
<QoS path identifier> should be omitted.
-
Evaluate & Decide
Manager
Distributes the current workload (track equations of motion) among the
evaluate and decide (worker) programs. For human observation, the equations
of motion for the tracks are also sent to radar console, where they are
displayed as moving radar tracks. The evaluate and decide data manager
also keeps track of the current track evaluation rules and updates all
the evaluate and decide programs when these rules change.
Invocation syntax:
EDM <unique name> <path id_no.> <name_server_host>
<name_server_port> <QoS path identifier>
Example: EDM EDM 1 texas 7300 <D:B:sensing>
OPERANDS:
-
unique name: unique name of this application, for use in this instance
of the sensing path.
-
path id no.: unique number of this instance of the path.
-
name_server_host: name of the host where the name server middleware
program is running.
-
name_server_port: name of the port used to communicate with the
name server.
-
QoS path identifier: unique name for the relevant instance of the
QoS manager.
Note: when running manually, and without middle-ware, the argument
<QoS path identifier> should be omitted.
-
Filter
Uses a least mean square regression algorithm to correlate the point data
of each radar track into three equations describing the motion of the track
body. The equations of motion for each of the observed bodies are sent
to the evaluate and decide data manger.
Invocation syntax:
filter <path id_no.> <name_server_host>
<name_server_port>
<FM unique name> <EDM unique name>
<QoS path identifier>
Example: filter 1 texas 7300 FM EDM <D:B:sensing>
OPERANDS:
-
path id no.: unique number of this instance of the path.
-
name_server_host: name of the host where the name server middleware
program is running.
-
name_server_port: name of the port used to communicate with the
name server.
-
FM unique name: unique name of the FM application used in this instance
of the sensing path.
-
EDM unique name: unique name of the EDM application used in this
instance of the sensing path.
-
QoS path identifier: unique name for the relevant instance of the
QoS manager.
Note: when running manually, and without middle-ware, the argument
<QoS path identifier> should be omitted.
-
Evaluate and Decide
(ED)
This program determines if the current position of an observed body (radar
track) is within a critical region based on the evaluation rules. If it
is a previously unidentified body of interest, it is passed to the action
initiation path. If it had been identified previously, it is sent to the
action guidance path.
Invocation syntax:
ED <path id_no.> <name_server_host> <name_server_port>
<EDM unique name> <AM unique name>
<MGM unique name> <DM unique name>
<QoS path identifier>
Example: ED 1 texas 7300 EDM AM MGM DM <D:B:sensing>
OPERANDS:
-
path id no.: unique number of this instance of the path.
-
name_server_host: name of the host where the name server middleware
program is running.
-
name_server_port: name of the port used to communicate with the
name server.
-
EDM unique name: unique name of the EDM application used in this
instance of the sensing path.
-
AM unique name: unique name of the AM application used in this instance
of the sensing path
-
MGM unique name: unique name of the MGM application used in this
instance of the sensing path
-
DM unique name: unique name of the DM application used in this instance
of the sensing path
-
QoS path identifier: unique name for the relevant instance of the
QoS manager.
Note: when running manually, and without middle-ware, the argument
<QoS path identifier> should be omitted.
-
Sensor
Reads a scenario file and generates a set of data samples (referred to
as tracks) based on the equations of motion contained in the file. The
data samples represent the current positions of the moving bodies. Sensor
has the ability to service requests from other processes to add, modify,
or delete the equations of motion of simulated bodies; thus allowing dynamically
changing environmental conditions. The sensor supplies a continuous data
stream to filter data manager.
Invocation syntax:
sensor <unique name> <path id_no.> <name_server_host>
<name_server_port> <FM unique name>
<actuator unique name> <QoS path identifier>
Example: sensor sensor 1 texas 7300 FM actuator <D:B:sensing>
OPERANDS:
-
unique name: unique name of this application, for use in this instance
of the sensing path.
-
path id no.: unique number of this instance of the path.
-
name_server_host: name of the host where the name server middleware
program is running.
-
name_server_port: name of the port used to communicate with the
name server.
-
FM unique name: unique name of the FM application used in this instance
of the sensing path.
-
actuator unique name: unique name of the actuator application used
in this instance of the sensing path
-
QoS path identifier: unique name for the relevant instance of the
QoS manager.
Note: when running manually, and without middle-ware, the argument
<QoS path identifier> should be omitted.
-
Experiment Generator
Provides operator control of the tactical scenario of the benchmark application.
The operator can dynamically insert elements into the sensor data stream
through this program, as shown in the Figure below. This is useful in testing
resource management technology---tactical load can be increased significantly,
causing QoS violations, thereby necessitating reallocation of resources.
It also has interface to NSWC load simulator user interface.
Invocation syntax:
EG <name_server_host> <name_server_port>
[load_simulator_host] [load_simulator_port]
Example: EG texas 7300
OPERANDS:
-
name_server_host: name of the host where the name server middleware
program is running.
-
name_server_port: name of the port used to communicate with the
name server.
-
Load_simulator_host: name of the host where the NSWC?s load simmulator
program is running.
-
Load_simulator_port: The port where NSWC?s load simulator is listening.
This application can run in two modes - interactive and command file.
In command file, user has to specify a file name.
Usage of the Experiment Generator is illustrated in the figures below.
-
Action Manager
This program receives a set of threat tracks from ED, and divides them
among the action programs.
Invocation syntax:
AM <unique name> <path id_no.> <name_server_host>
<name_server_port> <QoS path identifier>
Example: AM AM 1 texas 7300 <D:B:action>
OPERANDS:
-
unique name: unique name of this application, for use in this instance
of the action path.
-
path id no.: unique number of this instance of the path.
-
name_server_host: name of the host where the name server middleware
program is running.
-
name_server_port: name of the port used to communicate with the
name server.
-
QoS path identifier: unique name for the relevant instance of the
QoS manager.
Note: when running manually, and without middle-ware, the argument
<QoS path identifier> should be omitted.
-
Action
This program receives a set of threat tracks form AM and takes appropriate
action.
Invocation syntax:
action <path id_no.> <name_server_host>
<name_server_port> <action manager> <actuator>
<QoS path identifier>
Example: action 1 texas 7300 AM actuator<D:B:Action>
OPERANDS:
-
path id no.: unique number of this instance of the path.
-
name_server_host: name of the host where the name server middleware
program is running.
-
name_server_port: name of the port used to communicate with the
name server.
-
action manager: name of the action manager
-
actuator: name of the actuator the action connects to.
-
QoS path identifier: unique name for the relevant instance of the
QoS manager.
Note: when running manually, and without middle-ware, the argument
<QoS path identifier> should be omitted.
-
Actuator
This programs receives a set of actions from action and initiates those
action. The new tracks ( interceptors ) are put back in the sensor data
stream.
Invocation syntax:
actuator <unique name> <path id_no.>
<name_server_host>
<name_server_port> <QoS path identifier>
Example: actuator actuator 1 texas 7300 <D:B:action>
OPERANDS:
-
unique name: unique name of this application, for use in this instance
of the sensing path.
-
path id no.: unique number of this instance of the path.
-
name_server_host: name of the host where the name server middleware
program is running.
-
name_server_port: name of the port used to communicate with the
name server.
-
QoS path identifier: unique name for the relevant instance of the
QoS manager.
Note: when running manually, and without middle-ware, the argument
<QoS path identifier> should be omitted.
-
Monitor & Guide
Manager
This program receives a set of threat tracks along with the interceptors
from ED, and divides them among the MG programs.
Invocation syntax:
MGM <unique name> <path id_no.> <name_server_host>
<name_server_port> <QoS path identifier>
Example: MGM MGM 1 texas 7300 <D:B:Guidance>
OPERANDS:
-
unique name: unique name of this application, for use in this instance
of the sensing path.
-
path id no.: unique number of this instance of the path.
-
name_server_host: name of the host where the name server middleware
program is running.
-
name_server_port: name of the port used to communicate with the
name server.
-
QoS path identifier: unique name for the relevant instance of the
QoS manager.
Note: when running manually, and without middle-ware, the argument
<QoS path identifier> should be omitted.
-
Monitor & Guide
This program receives a set of threat tracks along with the interceptors,
it updates the position of the interceptor according to the position of
the threat track.
Invocation syntax:
MG <path id_no.> <name_server_host>
<name_server_port> <monitor & guide
manager>
<sensor> <QoS path identifier>
Example: MG 1 texas 7300 MGM sensor <D:B:Guidance>
OPERANDS:
-
path id no.: unique number of this instance of the path.
-
name_server_host: name of the host where the name server middleware
program is running.
-
name_server_port: name of the port used to communicate with the
name server.
-
monitor & guide manager: name of the MG manager that MG connects
to.
-
sensor: name of the sensor the MG connects to.
-
QoS path identifier: unique name for the relevant instance of the
QoS manager.
Note: when running manually, and without middle-ware, the argument
<QoS path identifier> should be omitted.
-
De-conflicting Manager (DM)
This program receives a set of threat tracks along with the interceptors
from ED, and divides them among the DC programs.
Invocation syntax:
DM <Unique Name> <path_identifier> <NameServer Host_name>
<NameServer portno> <path_mgr name>
Example: DM DM 1 texas 7300 <D:B:Deconf>
OPERANDS:
-
unique name: unique name of this application, for use in this instance
of the sensing path.
-
path identifier: unique number of this instance of the path.
-
name_server_host: name of the host where the name server middleware
program is running.
-
name_server_port: name of the port used to communicate with the
name server.
-
Path_mgr_name: unique name for the relevant instance of the QoS
manager.
-
De-conflicting Path (DC)
This program receives a set of threat tracks along with the interceptors,
it calculates the threat paths and determines of there will be deconfliction
among interceptors.
Invocation syntax:
DC <path_identifier> <NameServerhost_name> <NameServerportno>
<server (DM) > <path_manager)>
Example: DC 1 texas 7300 DM <D:B:Deconf>
OPERANDS:
-
path id entifier.: unique number of this instance of the path.
-
name_server_host: name of the host where the name server middleware
program is running.
-
name_server_port: name of the port used to communicate with the
name server.
-
Server (DM): name of the server (DM) the DC connects to.
-
Path manager: unique name for the relevant instance of the QoS manager.
-
The Radar Console
For human observation, the equations of motion (which the simulated tracks
follow) are sent to console, where they are displayed as moving radar tracks.
This program runs on a Windows NT computer.
Invocation:
-
run BM
-
Select the File|Connect menu and input name server host, name server port,
and Eval_Decide_Manager name appended with the unique ID of EDM. (e.g.
EDM1).
Usage of the Radar Console is illustrated in the figures on the following
pages.
Step 1:
Start the program, select File|Connect menu.
Step 2:
Input the name server's host name and port number, also the name of
Evaluate Decide Manager. After pressing the OK button, the radar console
will connect to EDM.
Step 3:
You can select the Zoom|Zoom In/Out/Center menu to zoom the screen,
and you can also click the toolbar buttons (+/-) or just press +|- in keyboard
to zoom in or out. The Figure below shows the effect of zooming in on the
view captured in Figure 4.
Step 4:
The tracks will be shown on the screen as shown in the Figure below.
The gray circle is the red alert / critical zone, a cylinder defined in
the evaluation file. Each radr track is labeled with its height, type and
recent trail. If the track is inside the red alert zone, the trail is marked
by red, otherwise it is green.
-
Scenario File
Contains equations of motion for radar tracks (missiles and aircraft) to
be simulated by the sensor simulator. The format of the scenario file is
shown below.
Cylce=<cycle frequency> // second
Type="<track type>"
Start=<start cycle for this track>
X = <b0> + <b1>t + <b2>t2 ; // East-West Motion Equation
Y = <b0> + <b1>t + <b2>t2 ; // North-South Motion Equation
Z = <b0> + <b1>t + <b2>t2 ; // Altitude Motion Equation
<b0> : Intercept
<b1> : Slope
<b2> : Curve
t : time (current cycle)
t2 = t * t ;
An example scenario file is:
Cycle = 1.0 ;
Type = RANDOM ;
Start = 1 ;
X = 0.00t2 - 10.5t + 600 ;
Y = 0.00t2 - 6.5t + 300 ;
Z = 0.0t2 - 0.082t + 20 ;
Type= THREATS
start = 1 ;
X = 0.0t2 + 5.7t - 590 ;
Y = 0.0t2 - 6.7t + 400 ;
Z = 0.0t2 - 0.87t + 2 ;
Name Server, QoS Manager, QoS Manager HCI
see DeSiDeRaTa user manual for the readme files for these middleware
programs
-
Appendix:
The Dynamic Real-time Path Paradigm
This section presents the dynamic real-time path paradigm. A
path-based real-time subsystem (see Figure 7) typically consists of a situation
assessment path, an action initiation path and an action guidance path.
The paths interact with the environment via evaluating streams of data
from sensors, and by causing actuators to respond (in a timely manner)
to events detected during evaluation of sensor data streams. The system
operates in an environment that is either deterministic, stochastic or
dynamic. A deterministic environment exhibits behavior that can be characterized
by a constant value. A stochastic environment behaves in a manner that
can be characterized by a statistical distribution. A dynamic environment
(e.g., a war-fighting environment) depends on conditions which cannot be
known in advance.
A (partial) air defense subsystem can be modeled using three dynamic
paths: threat detection, engagement, and missile guidance.
The threat detection path examines radar sensor data (radar
tracks) and detects potential threats. The path consists of a radar sensor,
a sensor data stream, a filtering program and an evaluation program. When
a threat is detected and confirmed, the engagement path is activated,
resulting in the firing of a missile to engage the threat. After a missile
is in flight, the missile guidance path uses sensor data to track
the threat, and issues guidance commands to the missile. The missile
guidance path involves sensor hardware, software for filtering, software
for evaluating & deciding, software for acting, and actuator hardware.
The remainder of this section describes the features of dynamic real-time
paths. Recall that a path may be one of three types: situation assessment,
action initiation, or action guidance. The first path type, situation assessment,
continuously evaluates the elements of a sensor data stream to determine
if environmental conditions are such that an action should be taken (if
so, the action initiation path is notified). Thus, this type of path is
called continuous. Typically, there is a timeliness objective associated
with completion of one review cycle of a continuous path, i.e., on the
time to review all of the elements of one instance of a data stream. (Note:
A data stream is produced by sampling the environment. One set of samples
is called a data stream instance.)
The threat detection path of the air defense system is an example
of a continuous path. It is a sensor-data-stream-driven path, with desired
end-to-end cycle latencies for evaluation of radar track data. If it fails
to meet the desired timeliness Quality of Service in a particular cycle,
the path must continue to process track data, even though desired end-to-end
latencies cannot be achieved. Peak loads cannot be known in advance for
the threat detection path, since the maximum number of radar tracks
can never be known. Furthermore, average loading of the path is a meaningless
notion, since the variability in the sensor data stream size is very large
(it may consist of zero tracks, or it may consist of thousands of tracks).
The second path type, action initiation, is driven by a stream of events
sent by a continuous (situation assessment) path. It uses inputs from sensors
to determine which actions should be taken and how the actions should be
performed, notifies actuators to start performing the actions, and informs
the action guidance path that an action has been initiated. We call this
type of path transient, since it performs work in response to events.
Typically, a timing objective is associated with the completion of the
initiation sequence. The importance of the timing objective for a transient
path is often very high, since performance of an action may be mission-critical
or safety-critical.
For example, the engagement path of the air defense example is
a transient path. It is activated by an event from the threat detection
path, and has a QoS objective of end-to-end timeliness. The real-time
QoS of this path has a higher priority than the real-time QoS of the continuous
threat detection path.
The third path type, action guidance, is activated by an action initiation
event, and is deactivated upon completion of the action. Action guidance
repeatedly uses sensor inputs to monitor the progress of an actuator, to
plan corrective actions needed to guide the actuator to its goal, and to
issue commands to the actuator. This type of path is called quasi-continuous,
since it behaves like a continuous path when it is active. A quasi-continuous
path has two timeliness objectives: (1) cycle completion time: the
duration of one iteration of the "monitor, plan, command" loop, and (2)
action completion time (or deactivation time): the time by which the action
must complete in order for success. Note that it is more critical to perform
the required processing before the action completion deadline than it is
to meet the completion time requirement for every cycle (although the two
deadlines are certainly related). Thus, it is acceptable for the completion
times of some cycles to violate the cycle deadline requirement, as long
as the desired actions are successfully completed by the deactivation deadline.
The missile guidance path of the air defense example is
a quasi-continuous path. It is activated by the missile launch event.
Once activated, the path continuously issues guidance commands to the missile
until it detonates (the deactivation event). The required completion time
for one iteration is dynamically determined, based on characteristics of
the threat. If multiple threat engagements are active simultaneously, the
threat engagement path is responsible for issuing guidance commands to
all missiles that have been launched.