11 research outputs found

    Adaptable Binary Programs

    No full text
    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..

    Efficient data breakpoints

    No full text

    Efficient and Language-Independent Mobile Programs

    No full text
    This paper describes the design and implementation of Omniware: a safe, efficient and language-independent system for executing mobile program modules. Previous approaches to implementing mobile code rely on either language semantics or abstract machine interpretation to enforce safety. In the former case, the mobile code system sacrifices universality to gain safety by dictating a particular source language or type system. In the latter case, the mobile code system sacrifices performance to gain safety through abstract machine interpretation. Our approach uses software fault isolation, a technology developed to provide safe extension code for databases and operating systems, to achieve a unique combination of language-independence and excellent performance. Software fault isolation uses only the semantics of the underlying processor to determine whether a mobile code module can corrupt its execution environment. This separation of programming language implementation from program modu..

    Efficient Software-Based Fault Isolation

    No full text
    One way to provide fault isolation among cooperating software modules is to place each in its own address space. However, for tightly-coupled modules, this solution incurs prohibitive context switch overhead. In this paper, we present a software approach to implementing fault isolation within a single address space. Our approach has two parts. First, we load the code and data for a distrusted module into its own fault domain, a logically separate portion of the application's address space. Second, we modify the object code of a distrusted module to prevent it from writing or jumping to an address outside its fault domain. Both these software operations are portable and programming language independent. Our approach poses a tradeo relative to hardware fault isolation: substantially faster communication between fault domains, at a cost of slightly increased execution time for distrusted modules. We demonstrate that for frequently communicating modules, implementing fault isolation in software rather than hardware can substantially improve end-to-end application performance

    Abstract Efficient and Language-Independent Mobile Programs

    No full text
    This paper evaluates the design and implementation of Omniware: a safe, efficient, and language-independent system for executing mobile program modules. Previous approaches to implementing mobile code rely on either language semantics or abstract machine interpretation to enforce safety. In the former case, the mobile code system sacrifices universality to gain safety by dictating a particular source language or type system. In the latter case, the mobile code system sac-rifices performance to gain safety through abstract machine interpretation. Omniware uses software fault isolation, a technology de-veloped to provide safe extension code for databases and operating systems, to achieve a unique combination of language-independence and excellent performance. Soft-ware fault isolation uses only the semantics of the underlying processor to determine whether a mobile code module can corrupt its execution environment. This separation of pro-gramming language implementation from program module safety enables our mobile code system to use a radically simplified virtual machine as its basis for portability. We measured the performance of Omniware using a suite of four SPEC92 programs on the Pentium, PowerPC, Mips, and Spare processor architectures, Including the overhead for enforcing safety on all four processors, OmniVM executed the bench-mark programs within 21 % as fast as the optimized, unsafe code produced by the vendor-supplied compiler. Permissionto make digitathard copy of part or all of this work for personal or olassroomuse is rantad without fee provided that copies are not made or distributed for pro! Nor eommaroialadvantage, the copyright notice, the title of the ubliition and & date appear, and notice is given that copying isi y permission of ACM, ho. To copy otherwise, to republish, to pest on servers,or to redistribute to lists, requires prior spedfie permission and/or a fee

    Practical data breakpoints

    No full text
    corecore