Information Technology Reference
In-Depth Information
Chapter 9
Dynamic Analysis and Profiling
of Multithreaded Systems
Daniel G. Waddington
Lockheed Martin, USA
Nilabja Roy
Vanderbilt University, USA
Douglas C. Schmidt
Vanderbilt University, USA
abStract
As software-intensive systems become larger, more parallel, and more unpredictable the ability to analyze
their behavior is increasingly important. There are two basic approaches to behavioral analysis: static
and dynamic. Although static analysis techniques, such as model checking, provide valuable informa-
tion to software developers and testers, they cannot capture and predict a complete, precise, image of
behavior for large-scale systems due to scalability limitations and the inability to model complex ex-
ternal stimuli. This chapter explores four approaches to analyzing the behavior of software systems via
dynamic analysis: compiler-based instrumentation, operating system and middleware profiling, virtual
machine profiling, and hardware-based profiling. We highlight the advantages and disadvantages of
each approach with respect to measuring the performance of multithreaded systems and demonstrate
how these approaches can be applied in practice.
introduction
more than one program to execute simultane-
ously. Multitasking is achieved by dynamically
scheduling different executions to the available
processors over time (sometimes referred to as
time slicing).
Microprocessors execute code as a sequential
flow of instructions. Most contemporary operat-
ing systems support multitasking, which allows
Search WWH ::




Custom Search