1 / 23

Introduction to Virtual Machines

Introduction to Virtual Machines. From “Virtual Machines” Smith and Nair Chapter 1. Two fundamental notions in computer system design. Levels of Abstraction … ….separated by well-defined Interfaces Keys to managing complexity in computer systems. Abstraction.

emilek
Download Presentation

Introduction to Virtual Machines

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Virtual Machines From “Virtual Machines” Smith and Nair Chapter 1 Introduction

  2. Two fundamental notions incomputer system design • Levels of Abstraction … • ….separated by well-defined Interfaces • Keys to managing complexity in computer systems. Introduction

  3. Abstraction • Abstraction allows lower levels of design to be ignored/simplified while designing higher levels. • E.g. Details of hard disk abstracted by operating system into multiple variable sized partitions and their file systems. • Disadvantage: Sometimes low-level details are necessary to optimize for performance. E.g. File systems might use better layout if they knew the disk geometry. Introduction

  4. Interfaces • Allow computer design tasks to be decoupled so that different development teams can work independently at different levels of abstraction. • E.g. Instruction set: Intel and AMD implement the same IA-32 (x86) instruction set interface. • Software designers don’t need to worry about their different implementations. • Disadvantage: Components designed for one interface cannot work on another • E.g. x86 vs IBM PowerPC • Diversity of interfaces can be restrictive for applications. Introduction

  5. Virtualization • Provides a way to increase flexibility. • Real system (and its interfaces) appear to be a set of virtual systems (and virtual interfaces). • Virtualization vs. abstraction • Virtualization does not necessarily hide the level of details of the real system Introduction

  6. Example: Disk Virtualization Virtual Disk 1 Virtual Disk 2 Virtualization File 1 File 2 Interface Real Disk Introduction

  7. Virtual Machines • Same concept as disk virtualization in last slide • Implemented by adding layers of software to the real machine to support the desired VM architecture. • E.g. Virtual PC on Apple MAC/PowerPC emulates Windows/x86. • Uses: • Multiple OSes on one machine • Isolation, • Enhanced security • Platform emulation • On-the-fly optimization • Realizing ISAs not found in physical machines Introduction

  8. Virtualization – Isomorphism • Maps a virtual guest system to a real host system. e(Si) Si Si’ Guest V(Si) V(Sj) e’(Si’) Si’ Sj’ Host Introduction

  9. Computer Architecture User ISA : 7 System ISA : 8 Syscalls : 3 ABI : 3, 7 API : 2,7 Introduction

  10. Machine Interfaces Application Binary Interface ISA Interface (Process View) (OS View) Introduction

  11. Two Types of VMsProcess VMs System VMs Introduction

  12. Process Virtual Machine • Virtualizing software translates instructions from one platform to another. • Helps execute programs developed for a different OS or different ISA. (Think of java) • VM terminates when guest process terminates. Introduction

  13. System Virtual Machine • Provides a complete system environment • OS+user processes+networking+I/O+display+GUI • Lasts as long as host is alive • Usually requires guest to use same ISA as host Introduction

  14. Virtual Machine Applications • Emulation: Mix-and-match cross-platform portability • Optimization: Usually done with emulation for platform-specific performance improvement • Replication: Multiple VMs on single platform • Composition: form more complex flexible systems Emulation & Optimization Replication Composition Introduction

  15. Types of Process Virtual Machines • Multiprogramming • Standard OS syscall interface + instruction set • Can support multiple processes with its own address space and virtual machine view. • Emulators • Support one instruction set on hardware designed for another • Interpreter: • Fetches, decodes and emulates the execution of individual source instructions. Can be slow. • Dynamic Binary Translator: • Blocks of source instructions converted to target instructions. • Translated blocks cached to exploit locality. IA-32 Windows APP Digital FX!32 System Windows NT Runtime Alpha ISA Introduction

  16. Types of Process Virtual Machines (contd) • Same ISA Binary Optimizers • Optimize code on the fly • Same as emulators except source and target ISAs are the same. • High-Level Language VMs • Virtual ISA (bytecode) designed for platform independence • Platform-dependent VM executes virtual ISA • E.g. Sun’s JVM and Microsoft’s CLI (part of .NET) • Both are stack-based VMs that run on register-based m/c. Introduction

  17. Types of System VMs • Originally developed for large mainframes • Today: • Secure way of partitioning major software systems on a common platform • Ability to run multiple OSes on one platform • Platform replication provided by VMM • VMM controls access to hardware resources • When guest OS performs a privileged operation, VMM intercepts it, checks for correctness and performs the operation. • Transparent to guest OS. Introduction

  18. Classic System VMs • Try to execute natively on the host ISA • VMM directly controls hardware • Provides all device drivers • Traditional mainframe model Introduction

  19. Hosted VMs • Similar to classic system VM • Operates in process space • Relies on host OS to provide drivers • E.g. VMWare Introduction

  20. Whole System VMs: Emulation • Host and Guest ISA are different • Hosted VM + emulation • So emulation is required • E.g. Virtual PC (Windows on MAC) Introduction

  21. Co-designed VMs • Performance improvement of existing ISA • Customized microarchitecture and ISA at hardware level • Native ISA not exposed to applications • VMM • co-designed with native ISA • Part of native hardware implementation • Emulation/translation • E.g. Transmeta Crusoe • Native ISA based on VLIW • Guest ISA = x86 • Goal power savings Introduction

  22. Taxonomy Introduction

  23. Versatility Java App Linux IA-32 Windows IA-32 Crusoe VLIW JVM VMWare Code Morphing Introduction

More Related