CSE598C Virtual Machines and Their Applications Operating System Support for Virtual Machines Coauthored by Samuel T. King, George W. Dunlap and Peter.

Slides:



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

Debugging operating systems with time-traveling virtual machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.
1 VIRTUAL MACHINES By: Sai Siddharth Kumar Dantu.
User-Mode Linux Ken C.K. Lee
Secure In-VM Monitoring Using Hardware Virtualization Monirul Sharif, Wenke Lee, Weidong Cui, and Andrea Lanzi Presented by Tyler Bletsch.
Using VMX within Linux We explore the feasibility of executing ROM-BIOS code within the Linux x86_64 kernel.
CS-3013 & CS-502, Summer 2006 Virtual Machine Systems1 CS-502 Operating Systems Slides excerpted from Silbershatz, Ch. 2.
Virtual Machines Measure Up John Staton Karsten Steinhaeuser University of Notre Dame December 15, 2005 Graduate Operating Systems, Fall 2005 Final Project.
Disco Running Commodity Operating Systems on Scalable Multiprocessors.
1/28/2004CSCI 315 Operating Systems Design1 Operating System Structures & Processes Notice: The slides for this lecture have been largely based on those.
1 Last Class: Introduction Operating system = interface between user & architecture Importance of OS OS history: Change is only constant User-level Applications.
Towards Application Security On Untrusted OS
KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor Fall 2014 Presented By: Probir Roy.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
November 1, 2004Introduction to Computer Security ©2004 Matt Bishop Slide #29-1 Chapter 33: Virtual Machines Virtual Machine Structure Virtual Machine.
Operating System Support for Virtual Machines Samuel King, George Dunlap, Peter Chen Univ of Michigan Ashish Gupta.
Slide 3-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 3 Operating System Organization.
Operating System Support for Virtual Machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.
Role Of Virtual Machine In Operating System By- Name: Abdul Mobin KSU ID:
Virtual Machine Monitors CSE451 Andrew Whitaker. Hardware Virtualization Running multiple operating systems on a single physical machine Examples:  VMWare,
Xen and the Art of Virtualization. Introduction  Challenges to build virtual machines Performance isolation  Scheduling priority  Memory demand  Network.
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.
Tanenbaum 8.3 See references
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
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.
Operating System Support for Virtual Machines Samuel T. King, George W. Dunlap,Peter M.Chen Presented By, Rajesh 1 References [1] Virtual Machines: Supporting.
Operating System Support for Virtual Machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
OS provide a user-friendly environment and manage resources of the computer system. Operating systems manage: –Processes –Memory –Storage –I/O subsystem.
Xen I/O Overview. Xen is a popular open-source x86 virtual machine monitor – full-virtualization – para-virtualization para-virtualization as a more efficient.
Introduction to Operating Systems Chapter 1. cs431 -cotter2 Lecture Objectives Understand the relationship between computing hardware, operating system,
Operating Systems ECE344 Ashvin Goel ECE University of Toronto OS-Related Hardware.
Our work on virtualization Chen Haogang, Wang Xiaolin {hchen, Institute of Network and Information Systems School of Electrical Engineering.
CS533 Concepts of Operating Systems Jonathan Walpole.
By Teacher Asma Aleisa Year 1433 H.   Goals of memory management  To provide a convenient abstraction for programming  To allocate scarce memory resources.
E X C E E D I N G E X P E C T A T I O N S OP SYS Linux System Administration Dr. Hoganson Kennesaw State University Operating Systems Functions of an operating.
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.
By Teacher Asma Aleisa Year 1433 H.   Goals of memory management  To provide a convenient abstraction for programming.  To allocate scarce memory.
Introduction to virtualization
Operating Systems Security
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Concurrency, Processes, and System calls Benefits and issues of concurrency The basic concept of process System calls.
Processes and Virtual Memory
Full and Para Virtualization
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,
Operating-System Structures
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,
Virtual Machines Mr. Monil Adhikari. Agenda Introduction Classes of Virtual Machines System Virtual Machines Process Virtual Machines.
Running Commodity Operating Systems on Scalable Multiprocessors Edouard Bugnion, Scott Devine and Mendel Rosenblum Presentation by Mark Smith.
1.3 Operating system services An operating system provide services to programs and to the users of the program. It provides an environment for the execution.
Introduction to threads
Introduction to Virtualization
Virtual Machine Monitors
Kernel Design & Implementation
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.
Operating System Support for Virtual Machines
Lecture 24 Virtual Machine Monitors
Operating System Structure
OS Virtualization.
Operating System Support for Virtual Machines
LAB 01 Installation of VIRTUAL MACHINE and LINUX
Prof. Leonardo Mostarda University of Camerino
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Chapter 1: Introduction CSS503 Systems Programming
CS295: Modern Systems Virtualization
Presentation transcript:

CSE598C Virtual Machines and Their Applications Operating System Support for Virtual Machines Coauthored by Samuel T. King, George W. Dunlap and Peter M. Chen In Proceedings of the 2003 USENIX Technical Conference Presented by Ken C.K. Lee ( Jan 23, 2006

CSE598C Virtual Machines and Their Applications Outline Introduction Review of Virtual Machines UMLinux – an evaluated Type II VMMs Host OS Support for Type II VMMs Performance Results Conclusions

CSE598C Virtual Machines and Their Applications Introduction About Virtual Machine Monitor (VMM) –A layer of software emulating hardware of a complete computer system. –Provide an abstraction – virtual machine (VM). –Could provide a VM identical to underlying hardware platform running VMM or totally different hardware platform. Uses of VMMs –To create illusion of multiple machines on a single physical machines. –To provide software environment for OS debugging. –To provide means of isolation that untrusted applications run separately.

CSE598C Virtual Machines and Their Applications Introduction Two types of VMMs –Type I –Type II

CSE598C Virtual Machines and Their Applications Virtual Machines The classification of VMMs can be based on whether the VM created by a VMM emulates the same underlying hardware. –VMs emulating the underlying hardware (homogeneous) Some performance problems due to enumeration overheads, additional complexity in term of frequent task switches and memory mapping. –VMs emulating different hardware (heterogeneous) Various degree of compatibility: –Denali supports only some instructions. –Microkernel provides high-level services that are not provided by hardware. –Java VM is completely hardware independent.

CSE598C Virtual Machines and Their Applications Virtual Machines Another classification based on Type I/II VMMs This paper focuses on homogeneous Type II VMMs: –Pros: Run as a process that system developers/administrators can have an easier control on it. As a debugging platform –Cons: Undesirable performance due to lack of sufficiently powerful interfaces provided by underlying operating systems. That’s work to be presented in this paper.

CSE598C Virtual Machines and Their Applications UMLinux What is UMLinux? –UMLinux is a Type II VMM, a case Type II VMM studied in this paper –It runs upon Linux and the guest operating systems and guest applications run as a single process. –Note: The interfaces provided by UMLinux is similar but not identical to underlying hardware, so modifications on both guest OS and VMM are needed. –It makes use of functionality supplied by underlying OS, e.g. process as CPU, Host memory mapping and protection as virtual MMU Memory files as file systems etc. files and devices as virtual devices, TUN/TAP devices as virtual network, host signal as virtual interrupts,

CSE598C Virtual Machines and Their Applications UMLinux UMLinux system structure –A VMM process and a guest-machine process –VMM process Redirects operating signal and system calls Restricts the set of system calls allowed by guest OS VMM uses “ ptrace ” to mediate access between guest machine process and host OS. *ptrace is a system call to observe and control another process, and examine and change its core image and registers. It is primarily used to implement breakpoint debugging and system call tracing.

CSE598C Virtual Machines and Their Applications UMLinux UMLinux operations –Example: System call intercepted by VMM process via ptrace guest SIGUSR1 handler calls mmap to access guest kernel data; intercepted by VMM process

CSE598C Virtual Machines and Their Applications Host OS support for Type II VMMs Three bottlenecks in running a Type II VMM –Inordinate number of context switches between processes. –A large number of memory protection operations. –A large number of memory mapping operations. –This paper proposed possible modifications to VMM and in general, the modifications involves only a few number of lines of code.

CSE598C Virtual Machines and Their Applications Host OS support for Type II VMMs Dealing with extra host context (process) switches –Causes: Using ptrace between VMM and host OS to intercept all requests. –Solution: Moving VMM process’s functionality into host kernel.

CSE598C Virtual Machines and Their Applications Host OS support for Type II VMMs Dealing with a large number of memory protection operations –Causes: When the guest machine process switches between guest kernel mode to guest user mode, the access mode of guest kernel’s portion address space must be changed appropriately. The access mode alternation is invoked by making host system calls – mmap, munmap and mprotect that incur significant overhead. Memory map of UMLinux

CSE598C Virtual Machines and Their Applications Host OS support for Type II VMMs Dealing with a large number of memory protection operations (Cont’d) –2 Solutions: Solution 1: By adjusting the bound on the user code and data segments rather than granting entire address space. Drawbacks: –Limited use of actual and available memory address space.

CSE598C Virtual Machines and Their Applications Host OS support for Type II VMMs Dealing with a large number of memory protection operations (Cont’d) –2 Solutions: Solution 2: By using the page table’s supervisor-only bit to distinguish between guest kernel mode and guest user mode.

CSE598C Virtual Machines and Their Applications Host OS support for Type II VMMs Dealing with a large number of memory mapping operations –Causes: Switching of multiple guest applications. Changing the current memory mapping between guest virtual pages and the page in virtual machine’s physical memory file. System calls – mmap and munmap are invoked. –Solutions: UMLinux defers the system call til it is needed but it does not reduce mmap and munmap calls. Modification of OS (i.e. switchguest) to support multiple several address space definitions. The system call switchguest is pretty fast since it need to change the pointer rather than manipulating the actual memory.

CSE598C Virtual Machines and Their Applications Performance Results Objectives: –Measuring the 3 proposals for identified bottlenecks. Experiment setup: –Performance metrics: A null system call Switching between two concurrent guest application processes (64KB each) (Time of) Transferring 10MB of data using TCP across 100Mb/s Ethernet switch. –Three benchmarks: POV-Ray Kernel-build SPECweb99 –AMD Athlon CPU, 256MB Memory and Linux kernel ported to UMLinux.

CSE598C Virtual Machines and Their Applications Performance Results Results –The effect are cumulated among all proposed schemes. Standalone must be the best Significant improvement by reducing context switches

CSE598C Virtual Machines and Their Applications Performance Results Results (Cont’d) Significant improvement by reducing context switches

CSE598C Virtual Machines and Their Applications Performance Results Results CPU intensive tasks

CSE598C Virtual Machines and Their Applications Performance Results Results (Cont’d) Conclusion from the result: The improvement made according to the proposal is shown effective.

CSE598C Virtual Machines and Their Applications Summary Three performance bottlenecks of Type II VMM (i.e., UMLinux) are identified, namely, –A number of context switches between host processes –A number of memory protection operations –A number of memory operations Corresponding to these bottlenecks, improvements are made in terms of structural change of VMM and exploring alternatives to some expensive system calls. Performance results prove the claims of the proposal.