260 likes | 337 Vues
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.
E N D
Introduction to Virtual Machines From “Virtual Machines” Smith and Nair Chapter 1 Introduction
Two fundamental notions incomputer system design • Levels of Abstraction … • ….separated by well-defined Interfaces • Keys to managing complexity in computer systems. Introduction
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
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
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
Example: Disk Virtualization Virtual Disk 1 Virtual Disk 2 Virtualization File 1 File 2 Interface Real Disk Introduction
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
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
Computer Architecture User ISA : 7 System ISA : 8 Syscalls : 3 ABI : 3, 7 API : 2,7 Introduction
Machine Interfaces Application Binary Interface ISA Interface (Process View) (OS View) Introduction
Two Types of VMsProcess VMs System VMs Introduction
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
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
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
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
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
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
Classic System VMs • Try to execute natively on the host ISA • VMM directly controls hardware • Provides all device drivers • Traditional mainframe model Introduction
Hosted VMs • Similar to classic system VM • Operates in process space • Relies on host OS to provide drivers • E.g. VMWare Introduction
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
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
Taxonomy Introduction
Versatility Java App Linux IA-32 Windows IA-32 Crusoe VLIW JVM VMWare Code Morphing Introduction