Adaptable Binary Programs

Abstract

To accurately and comprehensively monitor a program's behavior, many performance measurement tools must transform the program's executable representation or binary. By instrumenting binary programs to monitor program events, tools can precisely analyze compiler optimization effectiveness, memory system performance, pipeline interlocking, and other dynamic program characteristics that are fully exposed only at this level. Binary transformation has also been used to support software-enforced fault isolation, debugging, machine re-targeting and machine-dependent optimization. At present, binary transformation applications face a difficult trade-off. Previous approaches to implementing robust transformations incur significant disk space and run-time overhead. To improve efficiency, some current systems sacrifice robustness, relying on heuristic assumptions about the program and recognition of complex, compiler-dependent code generation idioms. In this paper we present adaptable binaries, a technique for implementing robust, efficient, and compiler- independent binary transformations. We evaluated a prototype implementation of adaptable binaries under the Ultrix 4.2 operating system and the MIPS processor architecture. Using the C SPEC92 benchmarks, we assessed adaptable binaries in three ways. First, we demonstrated that the information necessary to build adaptable binaries can be compactly recorded, increasing space overhead by only 9% for the SPEC92 benchmarks. Second, we measured the run-time overhead of previous approaches to implementing robust binary transformations, and showed that adaptable binaries significantly reduce this overhead. Finally, we measured the run-time transformation overhead of two user applications, pixie and MemSpy.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Apr 01, 1994
Accession Number
ADA280243

Entities

People

  • Robert Wahbe
  • Steven Lucco
  • Susan L. Graham

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • Human Systems

DTIC Thesaurus Topics

  • Algorithms
  • Assembly
  • Assembly Languages
  • Computer Programming
  • Computer Science
  • Computers
  • Computing System Architectures
  • Data Compression
  • Debugging
  • High Level Languages
  • Information Theory
  • Instructions
  • Instrumentation
  • Language
  • Operating Systems
  • Programming Languages
  • Simulations

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computer Programming and Software Development.
  • Parallel and Distributed Computing.
  • Systems Analysis and Design

Technology Areas

  • Space