Information Technology Reference
In-Depth Information
state-of-the-art profiling tools and methodologies
available today that operate at various levels of
abstraction, including the operating system, vir-
tual machine, and middleware levels.
connected with the ability to gather all necessary
information about the start state of the system. In
most cases this is impractical, primarily due to
very long causal chains (sequences of interrelated
effects) and environmental interactions (i.e., input)
that are hard to model and predict. In this chapter,
we define determinism as the ability to predict the
future state of a system. We therefore consider
computer systems as generally being nondeter-
ministic because we cannot practically predict the
future state of the system. Accurate predictions
would require a complete understanding of the
start state, as well as prediction of environmental
variables, such as user interaction and environ-
mental effects (e.g., temperature sensitivity).
Most enterprise-style computing systems
today demonstrate nondeterministic behavior.
Key sources of nondeterminism in these systems
include distributed communications (e.g., interac-
tion across a network to machines with unknown
state), user input (e.g., mouse/keyboard), and
dynamic scheduling (e.g., priority-based with
dynamic priority queues). These activities and
actions typically result in a system whose execu-
tion behavior is hard to predict a priori.
A prominent cause of nondeterminism in
multithreaded systems stems from the operating
system's scheduler. The choice of which logical
thread to execute on which physical processor is
bacKground
Behavioral analysis is the examination and
understanding of a system's behavior. Within
the context of computing systems, behavioral
analysis can be applied throughout the software
lifecycle. The role of behavioral analysis—and
the benefits it brings—vary according to how it
is applied and the point in the life cycle to which
it is applied. At a broad level, behavioral analysis
supports assurance, optimization, diagnosis and
prediction of software-system execution. Table
1 shows the relationship between these roles and
different stages of software development.
nondeterministic behavior in
multithreaded Systems
Systems that behave according to classical physics,
including electronic computers that are based on
the von Neumann architecture, are deterministic
in a strict sense. Actually predicting the behavior
of a computing system, however, is fundamentally
Table 1. Roles of behavioral analysis in software-systems development
Role
Lifecycle Stage
Purpose
Assurance
Design, Implementation,
Testing
Ensuring correct functionality
and performance
Optimization
Implementation
Ensuring optimal use of com-
puting resources
Diagnosis
Integration, Testing
Determining the condi-
tions that lead to unexpected
behavior
Prediction
Maintenance
Assessing how program modi-
fications and integration will
affect system behavior
Search WWH ::




Custom Search