Introduction 1-1 Introduction to Virtual Machines From “Virtual Machines” Smith and Nair Chapter 1
Introduction 1-2 Two fundamental notions in computer system design Levels of Abstraction … ….separated by well-defined Interfaces Keys to managing complexity in computer systems.
Introduction 1-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 1-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. m Software designers don’t need to worry about their different implementations. Disadvantage: Components designed for one interface cannot work on another m E.g. x86 vs IBM PowerPC m Diversity of interfaces can be restrictive for applications.
Introduction 1-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 m Virtualization does not necessarily hide the level of details of the real system
Introduction 1-6 Example: Disk Virtualization Real Disk File 1File 2 Interface Virtualization Virtual Disk 1 Virtual Disk 2
Introduction 1-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. m E.g. Virtual PC on Apple MAC/PowerPC emulates Windows/x86. Uses: m Multiple OSes on one machine m Isolation, m Enhanced security m Platform emulation m On-the-fly optimization m Realizing ISAs not found in physical machines
Introduction 1-8 Virtualization – Isomorphism Maps a virtual guest system to a real host system. SiSi Si’Si’ Sj’Sj’Si’Si’ V(S i )V(S j ) e’(S i ’) e(S i ) Guest Host
Introduction 1-9 Computer Architecture User ISA : 7 System ISA : 8 Syscalls : 3 ABI : 3, 7 API : 2,7
Introduction 1-10 Machine Interfaces Application Binary InterfaceISA Interface (Process View) (OS View)
Introduction 1-11 Two Types of VMs Process VMs System VMs
Introduction 1-12 Process Virtual Machine Virtualizing software translates instructions from one platform to another. Helps execute programs developed for a different OS or different ISA. VM terminates when guest process terminates.
Introduction 1-13 System Virtual Machine Provides a complete system environment OS+user processes+networking+I/O+display+GUI Lasts as long as host is alive
Introduction 1-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 ReplicationComposition
Introduction 1-15 Types of Process Virtual Machines Multiprogramming m Standard OS syscall interface + instruction set m Can support multiple processes with its own address space and virtual machine view. Emulators m Support one instruction set on hardware designed for another m Interpreter: Fetches, decodes and emulates the execution of individual source instructions. Can be slow. m Dynamic Binary Translator: Blocks of source instructions converted to target instructions. Translated blocks cached to exploit locality. Alpha ISA Windows NT Runtime IA-32 Windows APP Digital FX!32 System
Introduction 1-16 Types of Process Virtual Machines (contd) Same ISA Binary Optimizers m Optimize code on the fly m Same as emulators except source and target ISAs are the same. High-Level Language VMs m Virtual ISA (bytecode) designed for platform independence m Platform-dependent VM executes virtual ISA m E.g. Sun’s JVM and Microsoft’s CLI (part of.NET) m Both are stack-based VMs that run on register-based m/c.
Introduction 1-17 Types of System VMs Originally developed for large mainframes Today: m Secure way of partitioning major software systems on a common platform m Ability to run multiple OSes on one platform Platform replication provided by VMM m VMM controls access to hardware resources m When guest OS performs a privileged operation, VMM intercepts it, checks for correctness and performs the operation. m Transparent to guest OS.
Introduction 1-18 Classic System VMs Try to execute natively on the host ISA VMM directly controls hardware Provides all device drivers Traditional mainframe model
Introduction 1-19 Hosted VMs Similar to classic system VM m Operates in process space m Relies on host OS to provide drivers m E.g. VMWare
Introduction 1-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 1-21 Co-designed VMs Performance improvement of existing ISA Customized microarchitecture and ISA at hardware level Native ISA not exposed to applications VMM m co-designed with native ISA m Part of native hardware implementation Emulation/translation E.g. Transmeta Crusoe m Native ISA based on VLIW m Guest ISA = x86 m Goal power savings
Introduction 1-22 Taxonomy
Introduction 1-23 Versatility Java App Linux IA-32 Windows IA-32 Crusoe VLIW JVM VMWare Code Morphing