Efficient and language-independent mobile programs

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 sacrifices performance to gain safety through abstract machine interpretation.Omniware 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 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 Sparc processor architectures. Including the overhead for enforcing safety on all four processors, OmniVM executed the benchmark programs within 21% as fast as the optimized, unsafe code produced by the vendor-supplied compiler.

[1]  Owen R. Mock,et al.  The problem of programming communication with changing machines: a proposed solution , 1958, CACM.

[2]  Richard E. Sweet The Mesa programming environment , 1985, SLIPE '85.

[3]  David A. Patterson,et al.  Reduced instruction set computers , 1985, CACM.

[4]  David W. Wall,et al.  Global register allocation at link time , 1986, SIGPLAN '86.

[5]  Semantics and Implementation of Schema Evolution in Object-Oriented Databases , 1987, SIGMOD Conference.

[6]  Jay Banerjee,et al.  Semantics and implementation of schema evolution in object-oriented databases , 1987, SIGMOD '87.

[7]  Fred C. Chow,et al.  How many addressing modes are enough? , 1987, ASPLOS.

[8]  Henri E. Bal,et al.  Orca: a language for distributed programming , 1990, SIGP.

[9]  Charles N. Fischer Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation , 1990, PLDI 1996.

[10]  John K. Ousterhout,et al.  Tcl: An Embeddable Command Language , 1989, USENIX Winter.

[11]  Michael Stonebraker,et al.  The POSTGRES next generation database management system , 1991, CACM.

[12]  Monica S. Lam,et al.  The cache performance and optimizations of blocked algorithms , 1991, ASPLOS IV.

[13]  Christopher W. Fraser,et al.  A retargetable compiler for ANSI C , 1991, SIGP.

[14]  Michael Rodeh,et al.  Global instruction scheduling for superscalar machines , 1991, PLDI '91.

[15]  Kevin O'Brien,et al.  Performance characteristics of architectural features of the IBM RISC System/6000 , 1991, ASPLOS IV.

[16]  Luca Cardelli,et al.  Modula-3 language definition , 1992, SIGP.

[17]  David W. Wall,et al.  Experience with a software-defined machine architecture , 1992, TOPL.

[18]  Kristy Andrews,et al.  Migrating a CISC computer family onto RISC via object code translation , 1992, ASPLOS V.

[19]  Robert Wahbe,et al.  Efficient software-based fault isolation , 1994, SOSP '93.

[20]  Robert Wahbe,et al.  Practical data breakpoints: design and implementation , 1993, PLDI '93.

[21]  T. Yager Compton's Interactive Encyclopedia , 1993 .

[22]  Linda Torczon,et al.  Interprocedural optimization: eliminating unnecessary recompilation , 1986, SIGPLAN '86.

[23]  Peter Lee,et al.  Advanced Languages for Systems Software: The Fox Project in 1994 , 1994 .

[24]  Jeffrey D. Ullman Elements of ML programming , 1994 .

[25]  Nathaniel S. Borenstein,et al.  EMail With A Mind of Its Own: The Safe-Tcl Language for Enabled Mail , 1994, ULPAA.

[26]  Michael Steffen Oliver Franz,et al.  Code_generation On_the_fly: a Key to Portable Software , 1994 .

[27]  David F. Bacon,et al.  Compiler transformations for high-performance computing , 1994, CSUR.

[28]  Robert Wahbe,et al.  Adaptable Binary Programs , 1995, USENIX.

[29]  James A. Gosling,et al.  The java language environment: a white paper , 1995 .

[30]  Bjarne Steensgaard,et al.  Object and native code thread mobility among heterogeneous computers , 1995, SOSP.

[31]  James Gosling,et al.  Java Intermediate Bytecode , 1995, Intermediate Representations Workshop.

[32]  Mahadev Satyanarayanan,et al.  A Programming Interface for Application-Aware Adaptation in Mobile Computing , 1995, Comput. Syst..

[33]  Robert Wahbe,et al.  Omniware: A Universal Substrate for Web Programming , 1996, World Wide Web J..

[34]  P. Hoffman Internet Draft , 1998 .