Operating System Support for Virtual Machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.

Slides:



Advertisements
Similar presentations
Debugging operating systems with time-traveling virtual machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.
Advertisements

© 2010 VMware Inc. All rights reserved Application-level mobile virtualization Harvey Tuch, Staff Engineer, Mobile Virtualization Platform January 25 th.
CS533 Concepts of Operating Systems Class 14 Virtualization and Exokernels.
User-Mode Linux Ken C.K. Lee
Memory Protection: Kernel and User Address Spaces  Background  Address binding  How memory protection is achieved.
Bart Miller. Outline Definition and goals Paravirtualization System Architecture The Virtual Machine Interface Memory Management CPU Device I/O Network,
Virtual Machines Measure Up John Staton Karsten Steinhaeuser University of Notre Dame December 15, 2005 Graduate Operating Systems, Fall 2005 Final Project.
OS Spring’03 Introduction Operating Systems Spring 2003.
Microkernels: Mach and L4
KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor Fall 2014 Presented By: Probir Roy.
OS Spring’04 Introduction Operating Systems Spring 2004.
Chapter 6 - Implementing Processes, Threads and Resources Kris Hansen Shelby Davis Jeffery Brass 3/7/05 & 3/9/05 Kris Hansen Shelby Davis Jeffery Brass.
Operating System Support for Virtual Machines Samuel King, George Dunlap, Peter Chen Univ of Michigan Ashish Gupta.
Operating System Support for Virtual Machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.
ThreadsThreads operating systems. ThreadsThreads A Thread, or thread of execution, is the sequence of instructions being executed. A process may have.
Virtual Machine Monitors CSE451 Andrew Whitaker. Hardware Virtualization Running multiple operating systems on a single physical machine Examples:  VMWare,
CSE598C Virtual Machines and Their Applications Operating System Support for Virtual Machines Coauthored by Samuel T. King, George W. Dunlap and Peter.
CSE 451: Operating Systems Autumn 2013 Module 6 Review of Processes, Kernel Threads, User-Level Threads Ed Lazowska 570 Allen.
Virtualization Technology Prof D M Dhamdhere CSE Department IIT Bombay Moving towards Virtualization… Department of Computer Science and Engineering, IIT.
SymCall: Symbiotic Virtualization Through VMM-to-Guest Upcalls John R. Lange and Peter Dinda University of Pittsburgh (CS) Northwestern University (EECS)
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
Protection and the Kernel: Mode, Space, and Context.
Disco : Running commodity operating system on scalable multiprocessor Edouard et al. Presented by Jonathan Walpole (based on a slide set from Vidhya Sivasankaran)
CS533 Concepts of Operating Systems Jonathan Walpole.
CS533 Concepts of Operating Systems Jonathan Walpole.
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.
Three fundamental concepts in computer security: Reference Monitors: An access control concept that refers to an abstract machine that mediates all accesses.
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.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto OS-Related Hardware.
The Performance of Micro-Kernel- Based Systems H. Haertig, M. Hohmuth, J. Liedtke, S. Schoenberg, J. Wolter Presentation by: Seungweon Park.
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
Disco: Running Commodity Operating Systems on Scalable Multiprocessors Edouard et al. Madhura S Rama.
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
Disco : Running commodity operating system on scalable multiprocessor Edouard et al. Presented by Vidhya Sivasankaran.
The Performance of μ-Kernel-Based Systems H. Haertig, M. Hohmuth, J. Liedtke, S. Schoenberg, J. Wolter Presenter: Sunita Marathe.
Processes and Virtual Memory
Lecture 26 Virtual Machine Monitors. Virtual Machines Goal: run an guest OS over an host OS Who has done this? Why might it be useful? Examples: Vmware,
The Performance of Micro-Kernel- Based Systems H. Haertig, M. Hohmuth, J. Liedtke, S. Schoenberg, J. Wolter Presentation by: Tim Hamilton.
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
CSE 451: Operating Systems Winter 2015 Module 25 Virtual Machine Monitors Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Virtualizing a Multiprocessor Machine on a Network of Computers Easy & efficient utilization of distributed resources Goal Kenji KanedaYoshihiro OyamaAkinori.
Threads, SMP, and Microkernels Chapter 4. Processes and Threads Operating systems use processes for two purposes - Resource allocation and resource ownership.
6/13/20161 Operating Systems Design (CS 423) Elsa L Gunter 2112 SC, UIUC Based on slides by Roy Campbell, Sam King,
Agile Paging: Exceeding the Best of Nested and Shadow Paging
Embedded Real-Time Systems
Memory Protection: Kernel and User Address Spaces Andy Wang Operating Systems COP 4610 / CGS 5765.
Virtual Machine Monitors
Why VT-d Direct memory access (DMA) is a method that allows an input/output (I/O) device to send or receive data directly to or from the main memory, bypassing.
Memory Protection: Kernel and User Address Spaces
CS352H: Computer Systems Architecture
Operating System Support for Virtual Machines
Operating Systems Design (CS 423)
Lecture 24 Virtual Machine Monitors
OS Virtualization.
Memory Protection: Kernel and User Address Spaces
Memory Protection: Kernel and User Address Spaces
Memory Protection: Kernel and User Address Spaces
Operating System Support for Virtual Machines
A Survey on Virtualization Technologies
CSE 451: Operating Systems Spring 2012 Module 6 Review of Processes, Kernel Threads, User-Level Threads Ed Lazowska 570 Allen.
CS 140 Lecture Notes: Virtual Machines
Computer Security: Art and Science, 2nd Edition
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Introduction to Virtual Machines
Introduction to Virtual Machines
Xen and the Art of Virtualization
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Memory Protection: Kernel and User Address Spaces
Presentation transcript:

Operating System Support for Virtual Machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan

Virtual Machines Software abstraction of a machine Software backward compatibility Convenient place for new services Strong isolation

Virtual Machine Configurations Runs directly on hardware Good performance Uses existing host OS abstractions to implement services Poor performance Type I VMM Hardware Virtual Machine Monitor Guest Operating System Guest Process Type II VMM Virtual Machine Monitor Guest Operating System Host Operating System Hardware Guest Process

Can we have Type I performance with Type II elegance? Yes! Only 510 lines of code added to Linux Type II VMM attain performance that approaches type I VMM

Presentation Outline Background on UMLinux Discussion of optimizations Conclusions

UMLinux Architecture Linux on top of Linux Port of Linux to run in UMLinux ptrace used for virtualization –intercept guest system calls –track guest user / kernel mode transitions Guest OS Linux Operating System PC Hardware Guest Process UMLinux VMM

Hardware Equivalents

Performance

Original UMLinux Guest System Call Host operating system VMM Process Guest application Guest operating system

Move VMM to Host Kernel Host operating system VMM Process Guest application Guest operating system VMM Process

Performance

Switching Guest Modes Significant number of guest kernel / user mode crossings –Kernel compile benchmark: 22 million guest memory exceptions 1.4 million guest system calls Protection provided using mprotect system calls Instead, use x86 segmentation hardware

Use Segmentation Bounds for Kernel Protection Guest OS 0x Guest Apps 0x guest kernel- mode segment bound Host OS 0xffffffff 0xc Accessible Memory Guest OS 0x Guest Apps 0x guest user- mode segment bound Host OS 0xffffffff 0xc Accessible Memory

Performance

Original UMLinux Guest Application Context Switching proc_a mem proc_b mem RAM File process_a running 0x8000 Guest Application Memory proc_a mem proc_b mem 0x8000 RAM File process_b page at 0x8000 mapped in, process_b executes Guest Application Memory

Multiple Address Space Definitions Instead, modify hardware page table pointer Page Table Ptr Host operating system Guest OS guest proc a guest proc bswitchguest syscall

Final Performance Results

Conclusion Existing OS abstractions sufficient, slow Fast interception of signals and exceptions Expose power of underlying hardware Type II VMM CAN be as fast as type I Questions?

Related Work User-Mode-Linux SUNY Palladium Mach, Exokernel, L4 Wisconsin Wind Tunnel

Further Areas of Improvement Asynchronous I/O Exception Handling