Optimizing System Performance and Dependability Using Compiler Techniques
Abstract (Summary)
As systems become more complex, there are increasing demands for improvement with respect
to attributes such as performance, dependability, and security. Optimization is defined as the
process of making the most effective use of a set of resources with respect to some attribute. Existing
optimization techniques, however, have two fundamental limitations. They target individual
parts of a system without considering the potentially significant global picture, and they are designed
to improve a single attribute at a time. These limitations impose significant restrictions on
the kinds of optimization possible, the effectiveness of the techniques, and the ability to improve
the optimization process itself.
This dissertation presents holistic system optimization, a new approach to optimization based
on taking a broad view of a system. Unlike current approaches, holistic optimizations consider
different kinds of interactions at multiple levels in a system, and target a variety of metrics uniformly.
A key component of this research has been the use of proven compiler techniques to
ensure transparency, automation, and correctness. These techniques have been implemented in
Cassyopia, a software prototype of a framework for performing holistic optimization.
The core of this work is three new holistic optimizations, which are also presented. The
first describes profile-directed static optimizations designed to improve the performance of eventbased
programs by spanning boundaries that separate code that raises events from handlers that
field them. The second, system call clustering, improves the system call behavior of an entire
program by grouping together calls that can be executed in a single boundary crossing. In this
case, the optimization spans kernel and user address spaces. Finally, authenticated system calls
optimize system security through a novel implementation of an efficient system call monitor. This
example demonstrates how the new approach can be used to create new optimizations that not
only span address space boundaries but also target attributes such as dependability. All of these
optimizations involve the application of standard compiler techniques in non-traditional contexts
and demonstrate how systems can be improved beyond what is possible using existing techniques.
13
Bibliographical Information:
Advisor:
School:The University of Arizona
School Location:USA - Arizona
Source Type:Master's Thesis
Keywords:
ISBN:
Date of Publication: