A glossary of some terms used here and in the cited works.
- An application is
some code (program or program fragment) that is executed or
traced by one of the tools described here.
Note that an operating system is considered an application:
it is thus possible to speak distinctly of the
host
and
target
operating systems.
The target operating system
may itself be managing programs;
these are considered to be a part of the OS ``application''
and are refered to as ``user-mode parts of the application''.
- Emulation
is simulating a target
machine using both software and a host machine that has special
hardware to help speed the simulation.
See: [Tucker 65];
referenced by [Wilkes]
as the original definition.
- Fidelity
From Paul A. Fishwick <fishwick@cis.ufl.edu>:
``Simulation fidelity'' is usually captured under the title
``Validation'' within the simulation literature, and within
modeling literature in general.
A good place to start with validation is the proceedings of
the Winter Simulation Conference since the first part of the
proceedings is dedicated to tutorials and introductions.
Recently, Sargent had a tutorial on validation and you may
find others as well.
- The host machine is the
``real machine'' where the simulation or tracing is finally
run.
Compare to the target machine,
which is the machine that is being simulated or traced.
Note that the host and the target may be the same machine,
e.g. a V8 SPARC simulator that runs on a V8 SPARC.
See also virtual host.
There are many other terms that can and have been used
for host and target.
For example,
[Wilkes] refers to them
as the ``object machine'' and ``subject machine''.
- Static analysis,
optimization, etc.
is performed using the static code but no runtime data.
Compare to dynamic or runtime operations,
which may use program data
and which may be interleaved with program execution.
Note that static execution is possible,
but is limited to pieces that do not depend on program data
or places where data values is speculated
and a ``backup'' mechanism is available where the speculation
was erronious.
- The target machine is
the machine that is being simulated or traced.
The target machine may be old hardware (e.g. machines that no
longer exist), proposed hardware (e.g. machines that do not
yet exist), or machines that do currently exist, but for which
it is nonetheless valuable to perform simulation or tracing.
Compare to the host machine,
which is the real machine that actually executes the
simulation and tracing code.
Note that the host and target may be the same machine,
e.g. a V8 SPARC simulator that runs on a V8 SPARC.
There's reportedly an IBM paper that referes to the target
as the ``guest'' machine.
- The term virtual host
may be used when there are several levels of simulation and
tracing.
For example, SoftPC can run on a
SPARC and simulate an 8086; that simulated 8086 can then
execute Z80MU, which rus on an 8086
and simulates a Z80.
As far as Z80MU is concerned, it is running on an 8086 host;
the simulated 8086 provided by SoftPC is thus a virtual host
for Z80MU.
Note that the real host and the virtual host may be the same
machine.
For example, Shade runs on a
V8 SPARC and simulates a V8 SPARC, and so Shade can simulate
a V8 SPARC that is running Shade that is simulating a V8 SPARC
that is running an application.