Virtual Machines: Versatile Platforms for Systems and Processes

Slides:



Advertisements
Similar presentations
An Overview Of Virtual Machine Architectures Ross Rosemark.
Advertisements

Virtualization Dr. Michael L. Collard
Virtualisation From the Bottom Up From storage to application.
Infrastructure as a Service
Distributed Systems CS Virtualization- Part I Lecture 23, Dec 5, 2011 Majd F. Sakr, Mohammad Hammoud andVinay Kolar 1.
Network Implementation for Xen and KVM Class project for E : Network System Design and Implantation 12 Apr 2010 Kangkook Jee (kj2181)
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
ELEC6200, Fall 07, Oct 29 Westrom: Virtual Machines 1 Kenneth Westrom ELEC-6620.
Introduction to Virtual Machines
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization.
CIS 700 Machine Virtualization Autumn 2004.
Slide 1-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 1.
Distributed Systems CS Virtualization- Overview Lecture 22, Dec 4, 2013 Mohammad Hammoud 1.
Introduction to Virtual Machines. Administration Presentation and class participation: 40% –Each student will present two and a half times this semester.
CSE 451: Operating Systems Winter 2012 Module 18 Virtual Machines Mark Zbikowski and Gary Kimura.
A Survey on Virtualization Technologies
Computer Organization
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
A Survey on Virtualization Technologies. Virtualization is “HOT” Microsoft acquires Connectix Corp. EMC acquires VMware Veritas acquires Ejascent IBM,
High-level Languages.
Operating System Support for Virtual Machines Samuel T. King, George W. Dunlap,Peter M.Chen Presented By, Rajesh 1 References [1] Virtual Machines: Supporting.
Virtualization Concepts Presented by: Mariano Diaz.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
Secure & flexible monitoring of virtual machine University of Mazandran Science & Tecnology By : Esmaill Khanlarpour January.
COMP25212: Virtualization Learning Objectives: a)To describe aims of virtualization - in the context of similar aims in other software components b)To.
VirtualBox What you need to know to build a Virtual Machine.
Introduction 1-1 Introduction to Virtual Machines From “Virtual Machines” Smith and Nair Chapter 1.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: Operating-System Structures.
School of Computer Science & Information Technology G6DICP Introduction to Computer Programming Milena Radenkovic.
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
Copyright © Mohamed Nuzrath Java Programming :: Syllabus & Chapters :: Prepared & Presented By :: Mohamed Nuzrath [ Major In Programming ] NCC Programme.
Beginning Snapshots Chapter 0. C++ An Introduction to Computing, 3rd ed. 2 Objectives Give an overview of computer science Show its breadth Provide context.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Distributed Systems CS Lecture 25, November 23, 2014 Gregory Kesden Borrowed from our good friends in Doha: Majd F. Sakr, Mohammad Hammoud andVinay.
Full and Para Virtualization
Lecture 12 Virtualization Overview 1 Dec. 1, 2015 Prof. Kyu Ho Park “Understanding Full Virtualization, Paravirtualization, and Hardware Assist”, White.
Introduction Why are virtual machines interesting?
Operating-System Structures
Virtualization: Techniques and Applications CSE 598F Introduction and Overview Lecture 1: January 11, 2011 Instructor: Bhuvan Urgaonkar.
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Slide 6-1 Chapter 6 System Software Considerations Introduction to Information Systems Judith C. Simon.
CSE 451: Operating Systems Winter 2015 Module 25 Virtual Machine Monitors Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Virtual Machines Mr. Monil Adhikari. Agenda Introduction Classes of Virtual Machines System Virtual Machines Process Virtual Machines.
E Virtual Machines Lecture 1 What is Virtualization? Scott Devine VMware, Inc.
6/13/20161 Operating Systems Design (CS 423) Elsa L Gunter 2112 SC, UIUC Based on slides by Roy Campbell, Sam King,
Virtualization Neependra Khare
1 Virtualization "Virtualization software makes it possible to run multiple operating systems and multiple applications on the same server at the same.
CompSci 143A1 1. Introduction 1.1 The Role of Operating Systems - Bridge the “Semantic Gap” between Hardware and Application - Three Views of Operating.
Introduction to Operating Systems Concepts
Computer System Structures
VIRTUALIZATION.
Introduction to Virtualization
CSC235 Computer Organization & Assembly Language
Operating System & Application Software
Virtualization Dr. Michael L. Collard
Virtual Machines: Versatile Platforms for Systems and Processes
Operating Systems Design (CS 423)
Java programming lecture one
Georgia Tech November 2006 J. E. Smith
Virtualization Layer Virtual Hardware Virtual Networking
Virtualization Techniques
A Survey on Virtualization Technologies
Virtual Machines (Introduction to Virtual Machines)
An Overview of Virtual Machine Architectures
Introduction to Virtual Machines
Introduction to Virtual Machines
Distributed Systems CS
Hypervisor A hypervisor or virtual machine monitor (VMM) is computer software, firmware or hardware that creates and runs virtual machines. A computer.
Presentation transcript:

Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center

INTRODUCTION This material is based on the book, Virtual Machines: Versatile Platforms for Systems and Processes, Copyright 2005 by Elsevier Inc. All rights reserved. It has been used and/or modified with permission from Elsevier Inc.

Course Objectives Study VM architectures and applications Study key implementation technologies Focus on architecture and microarchitecture aspects Cover significant case studies Introduction

Introduction Why are virtual machines interesting? They allow transcending of interfaces (which often seem to be an obstacle to innovation) They enable innovation in flexible, adaptive software & hardware, security, network computing (and others) They involve computer architecture in a pure sense Virtualization will be a key part of future computer systems A fourth major discipline? (with HW, System SW, Application SW) Introduction

Advantages of Standard Interfaces Major design tasks are decoupled In space and time Different hardware and software development schedules Software can run on any machine supporting a compatible interface MacIntosh apps. Windows apps. Linux apps Figs1/compat1 MacOS Windows Linux PowerPC x86 x86 Introduction

There are also disadvantages… Software compiled for one ISA will not run on hardware with a different ISA Apple Mac (PowerPC) binaries on an x86? Even if ISAs are the same, OSes may differ Windows NT applications on a Solaris x86? Binary may not be optimized for the specific hardware platform it runs on Intel Pentium 4 binaries on an AMD Athlon? MacIntosh apps Windows apps. Figs1/clash MacOS Linux x86 x86 Introduction

Disadvantages (contd.) Innovation may be inhibited by fixed ISA Hard to add new instructions OR remove obsolete ones What was the most recent (successful) new ISA? Or new OS? Difficult for software to interact directly with implementation Performance features Power management Fault tolerance Software is supposed to be implementation independent Introduction

Hardware Resources Conventional system software manages hardware resources directly An OS manages the physical memory of a specific size I/O devices are managed as physical entities Difficult to share resources except through OS All users of hardware must use the same OS All users are vulnerable to attack from other users sharing the resource (via security holes in OS) Introduction

Abstraction Computer systems are built on levels of abstraction file abstraction Higher level of abstraction hide details at lower levels Example: files are an abstraction of a disk Introduction

Virtualization An isomorphism from guest to host Map guest state to host state Implement “equivalent” functions e (S ) i S i S j Guest V( S ) i V( S ) j e '(S ') i S ' S ' i j Host Introduction

Virtualization Similar to abstraction Construct Virtual Disks Except Details not necessarily hidden Construct Virtual Disks As files on a larger disk Map state Implement functions VMs: do the same thing with the whole “machine” file virtualization Introduction

The “Machine” Different perspectives on what the Machine is: OS developer Compiler developer Application programmer Instruction Set Architecture ISA Major division between hardware and software Application Programs Libraries Operating System Execution Hardware Application Program Interface API User ISA + library calls Application Binary Interface ABI User ISA + OS calls Memory Translation System Interconnect (bus) I/O devices Main and Memory Networking Introduction

The “Machine” Different perspectives on what the Machine is: OS developer Instruction Set Architecture ISA Major division between hardware and software Application Programs Libraries Operating System Execution Hardware Memory Translation System Interconnect (bus) I/O devices Main and Memory Networking Introduction

The “Machine” Different perspectives on what the Machine is: Compiler developer Application Programs Libraries Operating System Execution Hardware Application Binary Interface ABI User ISA + OS calls Memory Translation System Interconnect (bus) I/O devices Main and Memory Networking Introduction

The “Machine” Different perspectives on what the Machine is: Application programmer Application Programs Libraries Operating System Execution Hardware Application Program Interface API User ISA + library calls Memory Translation System Interconnect (bus) I/O devices Main and Memory Networking Introduction

Virtual Machines add Virtualizing Software to a Host platform and support Guest process or system on a Virtual Machine (VM) Example: System Virtual Machine Applications Applications Guest OS OS Figs1/fx32 Virtualizing VMM Software Virtual Machine Hardware Host "Machine" Introduction

The Family of Virtual Machines Lots of things are called “virtual machines” IBM VM/370 Java VMware Some things not called “virtual machines”, are virtual machines IA-32 EL Dynamo Transmeta Crusoe Introduction

Taking a Unified View “The subjects of virtual machines and emulators have been treated as entirely separate. … they have much in common. Not only do the usual implementations have many shared characteristics, but this commonality extends to the theoretical concepts on which they are based” -- Efrem G. Wallach, 1973 Introduction

Major Program Interfaces ISA Interface -- supports all conventional software Application Software System Calls Operating System System ISA User ISA ISA System Calls User ISA System ISA ABI Application Software Operating System Application Binary Interface (ABI) -- supports application software only Figs1/isaint (modified) Figs1/abiint (modified) Introduction

System Virtual Machines Provide a system environment Constructed at ISA level Persistent Examples: IBM VM/360, VMware, Transmeta Crusoe guest guest guest guest guest guest process process process process process process Guest OS Guest OS2 VMM VMM HOST PLATFORM virtual network communication Introduction

System Virtual Machines Native VM System VMM privileged mode Guest OS user mode Example: classic IBM VMs User-mode Hosted VM VMM runs as user application Dual-mode Hosted VM Parts of VMM privileged; parts non-privileged Example VMware Virtual Machine Host OS Hardware VMM Virtual Machine Host OS Hardware VMM Virtual Machine VMM Hardware Non-privileged modes Privileged Mode Introduction

Process VMs Execute application binaries with an ISA different from hardware platform Couple at ABI level via Runtime System Examples: IA-32 EL, FX!32 Guest Application Process Application Process Runtime Virtualizing Software Figs1/fx32 Virtual OS Machine Host Machine Hardware Introduction

Process Virtual Machines Constructed at ABI level Runtime manages guest process Not persistent Guest processes may intermingle with host processes As a practical matter, guest and host OSes are often the same Dynamic optimizers are a special case Examples: IA-32 EL, FX!32, Dynamo HOST OS Disk file sharing network communication guest process create host runtime Introduction

Same-ISA Dynamic Binary Optimizers Optimize Binary at Runtime An ABI level optimization A type of Process VM Example HP Dynamo Can optimize for dynamic properties of program Can optimize for a specific processor implementation HP Apps UNIX HP PA Figs1/dynamo Introduction

HLL VMs Java and CLI are recent examples Binary class files are distributed “ISA” is part of binary class format OS interaction via APIs (part of VM platform) Java Binary Classes Java VM Architecture Figs1/javasim VM VM VM implementation implementation implementation Sparc x86 Apple Workstation PC Mac Introduction

High Level Language Virtual Machines Raise the level of abstraction User higher level virtual ISA OS abstracted as standard libraries Process VM (or API VM) HLL Program Intermediate Code Memory Image Object Code ( ISA ) Compiler front-end Compiler back-end Loader Portable Code Virtual ISA Host Instructions Virt. Mem. Image Compiler VM loader VM Interpreter/Translator Traditional HLL VM Introduction

Co-Designed VMs Perform both translation and optimization VM provides interface between standard ISA software and implementation ISA Primary goal is performance or power efficiency Use proprietary implementation ISA Transmeta Crusoe and IBM Daisy best-known examples X86 Apps Windows VLIW Figs1/virtmach (with modifications) Introduction

Composition apps 1 OS 1 apps 2 OS 1 ISA 2 Introduction Similar to figs1/variety ISA 2 Introduction

Composition: Example Java application JVM Linux x86 VMware Windows x86 Crusoe VLIW Code Morphing Figs1/multvms Introduction

Summary (Taxonomy) VM type (Process or System) Host/Guest ISA same or different Multiprogrammed Systems Java VM MS CLI Transmeta Crusoe same ISA different ISA Process VMs System VMs Virtual PC for Mac IBM VM/370 VMware HP Dynamo IA-32 EL FX!32 Figs1/taxonomy modified? Introduction

Course Topics Introduction & VM Overview Emulation: Interpretation & Binary Translation Process VMs & Dynamic Translators Dynamic Binary Optimization Co-Designed VMs HLL VMs System VMs Emerging Applications Introduction

Case Studies Shade Sun WABI Compaq FX!32 HP Dynamo VMware Transmeta Crusoe IBM Daisy Intel VT-x …. and others Introduction