OmniVM Efficient and Language- Independent Mobile Programs Ali-Reza Adl-Tabatabai, Geoff Langdale, Steven Lucco and Robert Wahbe from Carnegie Mellon University.

Slides:



Advertisements
Similar presentations
Virtual Memory Basics.
Advertisements

An Overview Of Virtual Machine Architectures Ross Rosemark.
8. Code Generation. Generate executable code for a target machine that is a faithful representation of the semantics of the source code Depends not only.
Department of Computer Science and Engineering University of Washington Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Carnegie Mellon Lessons From Building Spiral The C Of My Dreams Franz Franchetti Carnegie Mellon University Lessons From Building Spiral The C Of My Dreams.
Modern Compiler Internal Representations Silvius Rus 1/23/2002.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
1 Lecture 1  Getting ready to program  Hardware Model  Software Model  Programming Languages  The C Language  Software Engineering  Programming.
1 Programming Languages b Each type of CPU has its own specific machine language b But, writing programs in machine languages is cumbersome (too detailed)
LIFT: A Low-Overhead Practical Information Flow Tracking System for Detecting Security Attacks Feng Qin, Cheng Wang, Zhenmin Li, Ho-seop Kim, Yuanyuan.
The Design of a Resourceable and Retargetable Binary Translator Cristina Cifuentes Sixth Working Conference on Reverse Engineering On page(s):
Operating System Support for Virtual Machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Efficient Software-Based Fault Isolation—sandboxing Presented by Carl Yao.
Programming Languages Generations
CS 350 Operating Systems & Programming Languages Ethan Race Oren Rasekh Christopher Roberts Christopher Rogers Anthony Simon Benjamin Ramos.
Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. C+J Software Architecture Shanghai Jiaotong University Author: Lu,
JVM And CLR Dan Agar April 16, Outline Java and.NET Design Philosophies Overview of Virtual Machines Technical Look at JVM and CLR Comparison of.
Virtual Machines: Versatile Platforms for Systems and Processes
Natawut NupairojAssembly Language1 Introduction to Assembly Programming.
Operating System Support for Virtual Machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.
Introduction to the Java Virtual Machine 井民全. JVM (Java Virtual Machine) the environment in which the java programs execute The specification define an.
Introduction 1-1 Introduction to Virtual Machines From “Virtual Machines” Smith and Nair Chapter 1.
Proof Carrying Code Zhiwei Lin. Outline Proof-Carrying Code The Design and Implementation of a Certifying Compiler A Proof – Carrying Code Architecture.
Native Client: A Sandbox for Portable, Untrusted x86 Native Code
1 COMP 3438 – Part II-Lecture 1: Overview of Compiler Design Dr. Zili Shao Department of Computing The Hong Kong Polytechnic Univ.
Chapter 5 Information Systems in Business Software
Efficient Software-Based Fault Isolation Robert Wahbe, Steven Lucco Thomas E. Anderson, Susan L. Graham J. Garrett Morris, presenter.
Compilers for Embedded Systems Ram, Vasanth, and VJ Instructor : Dr. Edwin Sha Synthesis and Optimization of High-Performance Systems.
EXTENSIBILITY, SAFETY AND PERFORMANCE IN THE SPIN OPERATING SYSTEM
Introduction to Compilers. Related Area Programming languages Machine architecture Language theory Algorithms Data structures Operating systems Software.
MIPS Processor Chapter 12 S. Dandamudi To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer,
A compiler is a computer program that translate written code (source code) into another computer language Associated with high level languages A well.
Efficient Software-Based Fault Isolation By Robert Wahbe, Steven Lucco, Thomas E. Anderson, and Susan L. Graham Presented by Pehr Collins.
Efficient Software Based Fault Isolation Author: Robert Wahobe,Steven Lucco,Thomas E Anderson, Susan L Graham Presenter: Maitree kanungo Date:02/17/2010.
Efficient Software-based Fault Isolation Robert Wahbe, Steven Lucco, Thomas E. Anderson & Susan L. Graham Presented By Tony Bock.
Introduction Why are virtual machines interesting?
By: Cheryl Mok & Sarah Tan. Java is partially interpreted. 1. Programmer writes a program in textual form 2. Runs the compiler, which converts the textual.
Efficient Software-Based Fault Isolation Robert Wahbe, Steven Lucco, Thomas E. Anderson, Susan L. Graham.
Efficient software-based fault isolation Robert Wahbe, Steven Lucco, Thomas Anderson & Susan Graham Presented by: Stelian Coros.
Chapter 1 Introduction. Components of a Computer CPU (central processing unit) Executing instructions –Carrying out arithmetic and logical operations.
Programming Language Concepts (CIS 635) Elsa L Gunter 4303 GITC NJIT,
Efficient Software-Based Fault Isolation Authors: Robert Wahbe Steven Lucco Thomas E. Anderson Susan L. Graham Presenter: Gregory Netland.
1 Introduction Read D&D Sec 1.8; Sec 1.13 THE Java tutorial -
QEMU, a Fast and Portable Dynamic Translator Fabrice Bellard (affiliation?) CMSC 691 talk by Charles Nicholas.
Introduction to Programming 1 1 2Introduction to Java.
Language Based Operating Systems by Sean Olson What is a virtual machine? What is managed code? Kernels. Memory and security models. What is a language.
نظام المحاضرات الالكترونينظام المحاضرات الالكتروني Computer Software.
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
Memory Protection: Kernel and User Address Spaces Andy Wang Operating Systems COP 4610 / CGS 5765.
VXA: A Virtual Architecture for Durable Compressed Archives Bryan Ford Computer Science and Artificial Intelligence Laboratory Massachusetts Institute.
Introduction to threads
Efficient Software-Based Fault Isolation
Memory Protection: Kernel and User Address Spaces
Programming Language Hierarchy, Phases of a Java Program
Virtual Machines: Versatile Platforms for Systems and Processes
Choices in Designing an ISA
Memory Protection: Kernel and User Address Spaces
Memory Protection: Kernel and User Address Spaces
Memory Protection: Kernel and User Address Spaces
Mobile Development Workshop
Operating System Support for Virtual Machines
A Survey on Virtualization Technologies
Computer Architecture
Introduction to Virtual Machines
Introduction to Virtual Machines
Lecture 4: Instruction Set Design/Pipelining
Memory Protection: Kernel and User Address Spaces
Presentation transcript:

OmniVM Efficient and Language- Independent Mobile Programs Ali-Reza Adl-Tabatabai, Geoff Langdale, Steven Lucco and Robert Wahbe from Carnegie Mellon University and Colusa Software presented by Suming Chen April 16, 1998

Motivations n Two ways to ensure safe execution of mobile code: u Language semantics u Abstract machine interpretation n Goals u Portable F run on any machine F safe execution of any source language u Efficient F fast translation u Easy to generate code

What is OmniVM? n A safe, efficient, and language-independent system for executing mobile program modules n RISC-based design u instruction set, register file organization, data format, exception model, and segmented virtual memory model

System Overview C compiler JAVA compiler ML compiler Fortran compiler Source program C source JAVA source ML source Fortran source Compiler Mobile Object Mobile Code MIPS translator SPARC translator PowerPC translator x86 translator Host translator Loaded native executable MIPS object SPARC object PowerPC object x86 object...

Safety n Use software fault isolation (SFI) to enforce safety n Host-imposed permission on address spaces n Inline checks during load time and translation time n In case of violation, delivers access violation exception

Performance n Measured on u 90 MHz Intel Pentium based “Precision Pentium” running Windows NT 3.5 u PowerPC 601 based IBM RS/6000 running AIX version 3 u Mips R4400 based SGI Indigo-2 machine running Irix 5.2 u Sparc based SPARC10 running Solaris 2.4 n Use four C programs from SPEC92 suite u li, compress, alvinn, and eqntott

Performance con’t... Execution time of mobile code relative to native code generated by cc

Performance con’t... Execution time of mobile code relative to native code generated by gcc

Performance con’t... Execution time of mobile code without translator optimization, relative to native code generated by cc.

Conclusion n Including the overhead for enforcing safety, OmniVM executed benchmark programs within 21% as fast as the optimized, unsafe native code n Fastest system for mobile code n First to implement safe, mobile code efficiently and language-independently

Final Remarks n Need to retarget compilers n Requires machine-dependent translator residing on the host machine and these translators need to have prior information on which segments in the memory are safe for the mobile code n Current OmniVM does not support read protection