Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Introduction to Virtual Machines • • • • • • Introduction Abstraction and interfaces Virtualization Computer system architecture Process virtual machines System virtual machines EECS 768 Virtual Machines 1 Abstraction • Mechanism to manage complexity in computer systems. • Mechanism consists of – partition the design of a system into levels – allow higher levels to ignore the implementation details of lower levels • In computer systems, lower levels are implemented in hardware, and higher levels in software. EECS 768 Virtual Machines 2 Interfaces • An interface defines the communication boundary between two entities – hierarchical relationship – linear relationship • Software can run on any machine supporting a compatible interface MacIntosh apps. MacOS PowerPC Windows apps. Windows x86 EECS 768 Virtual Machines Linux apps Linux x86 3 Interfaces – Advantages • Allows de-coupling of computer design tasks – each component provides an abstraction of itself to the outside world • Work on different components can progress independently • Helps manage system complexity EECS 768 Virtual Machines 4 Interface – Disadvantages • Software compiled for one ISA will not run on hardware with a different ISA – powerPC binaries on an x86 machine ? • Even if ISA's are same Oses may differ – MS–Windows applications Sun Solaris ? MacIntosh apps MacOS x86 Windows apps. Linux x86 EECS 768 Virtual Machines 5 Interface – Disadvantages (2) • Binaries may not be optimized for the platform they run on – Intel Pentium binaries on AMD Athlon ? • Innovation may be inhibited by a fixed ISA – hard to change instruction sets • Application software cannot directly exploit microprocessor implementation features – software supposed to be implementation-neutral ! EECS 768 Virtual Machines 6 Virtualization • Removes some constraints imposed by system interfaces, and increases flexibility – improves availability of application software – removes the assumption of a single management regime, improving security and failure isolation • Provide a different view to a particular computer resource – not necessarily a simpler view EECS 768 Virtual Machines 7 Virtualization (2) • Virtualization constructs an isomorphism that maps a virtual guest system to a real host. e(Si ) Si Sj Guest V(Si ) V(Sj ) e'(Si') Si' Sj' Host EECS 768 Virtual Machines 8 Virtualization (3) • Virtualization Vs. abstraction – virtualization does not necessarily hide details virtualization file file EECS 768 Virtual Machines 9 Virtual Machines • Concept of virtualization applied to the entire machine. • A virtual machine is implemented by adding a layer of software to a real machine to support the desired virtual machine’s architecture. • Virtualization – mapping of virtual resources or state to real resources – use of real machine instructions to carry out actions specified by the virtual machine instructions EECS 768 Virtual Machines 10 Some Benefits of VMs • • • • Flexibility Portability Isolation Security EECS 768 Virtual Machines 11 Computer System Architecture • Architecture – functionality and appearance of a computer system, but not the details of its implementation • Implementation – the actual embodiment of an architecture EECS 768 Virtual Machines 12 Computer Architecture (2) Software • Computer systems are built of levels of abstraction – hierarchical abstraction – well-defined interfaces Application Programs Libraries Operating System Drivers Memory Manager Scheduler Execution Hardware System Interconnect (bus) Memory Translation Controllers Controllers I/O devices and Networking Main Memory Hardware EECS 768 Virtual Machines 13 The ISA Interface • Interface between hardware and software • Important for – OS developer Application Programs Libraries Operating System Execution Hardware System Interconnect (bus) I/O devices and Networking EECS 768 Virtual Machines Memory Translation Main Memory 14 The ABI Interface • Application Binary Interface (ABI) Application Programs Libraries – user ISA + system calls • Important for Operating System – compiler writers Execution Hardware Memory Translation System Interconnect (bus) I/O devices and Networking EECS 768 Virtual Machines Main Memory 15 The API Interface • Application Programming Interface (API) – user ISA + library calls Application Programs Libraries Operating System Execution Hardware • Important for – application programmers Memory Translation System Interconnect (bus) I/O devices and Networking EECS 768 Virtual Machines Main Memory 16 Major Program Interfaces • ISA – supports all conventional software System Calls Application Software Operating System System ISA User ISA ISA • ABI – supports application software only Application Software System Calls Operating System System ISA User ISA EECS 768 Virtual Machines ABI 17 Process Virtual Machines • Process virtual machine is capable of supporting an individual process – different guest and host ISA – couple at ABI level via runtime system Guest Application Process Runtime Virtualizing Software Virtual Machine OS Host Application Process Machine Hardware EECS 768 Virtual Machines 18 Process Virtual Machines (2) • Constructed at ABI level • Runtime manages guest process • Runtime communicates with host OS • Guest processes may intermingle with host processes • As a practical matter, binaries built for same OS • Dynamic optimizers are a special case • Examples: IA-32 EL, FX!32, Dynamo guest process host process runtime guest process guest process runtime host process runtime create HOST OS file sharing EECS 768 Virtual Machines Disk network communication 19 System Virtual Machines • System Virtual Machine capable of supporting an OS with potentially many user processes – couple at ISA level – eg., IBM VM/360, VMWare, Transmeta Crusoe Applications Guest Applications OS OS VMM Virtualizing Software Host Hardware "Machine" EECS 768 Virtual Machines Virtual Machine 20 PVM – Multiprogramming • PVM provided by a multi-process OS for each concurrently executing application. • Combination of the OS system call interface, and the user-level ISA. • Each process is given the illusion of having the complete machine to itself. EECS 768 Virtual Machines 21 PVM – Emulators • Execute binaries compiled to a different instruction set than that executed by the host’s hardware. • Interpretation – low startup overhead – high steady-state per instruction emulation overhead EECS 768 Virtual Machines 22 PVM – Dynamic Translators • Run-time translation of blocks of source instructions to equivalent target instructions. – high start-up translation overhead – fast steady-state execution • Uses a code cache to store translated blocks of code for reuse. • e.g., Digital’s FX!32 system, Aries system, Intel IA-32 EL system EECS 768 Virtual Machines HP Apps UNIX HP PA 23 PVM – Same ISA Binary Optimizers • Same source and target ISAs. • Main task is the optimization of the source binary – ABI level optimization – may also collect performance profiles – may also enhance security • e.g., Dynamo system, developed at HewlettPackard. EECS 768 Virtual Machines 24 PVM – High Level Language VM • A HLL is designed for VM execution – minimize hardware-specific and OS-specific features that could compromise portability HLL Program Compiler front-end Intermediate Code Compiler back-end HLL Program Compiler Portable Code (Virtual ISA ) VM loader Object Code (ISA) Virt. Mem. Image VM Interpreter/Translator Loader Memory Image Host Instructions Traditional HLL VM EECS 768 Virtual Machines 25 PVM – High Level Language VM • Binary class files are distributed – ISA part of class file (no real implementation) • OS interaction via API • e.g., Java, Microsoft CLI Java Binary Classes Java VM Architecture VM implementation VM implementation VM implementation Sparc Workstation x86 PC Apple Mac EECS 768 Virtual Machines 26 Classic System Virtual Machine • Original meaning of the term virtual machine – all guest and host software use the same ISA – VMM runs on bare hardware (most privileged mode) – VMM intercepts and implements all the privileged operations for the guest OS. Win Win process process Win process Linux Linux Linux process process process Guest OS2 (Linux) Guest OS (Windows) VMM HOST PLATFORM virtual network communication EECS 768 Virtual Machines 27 Hosted System Virtual Machine • Virtualizing software is built on top of an existing host OS. • Advantages – installation is like installing application programs – host OS provides device driver support • Drawbacks – less efficient EECS 768 Virtual Machines 28 Whole System VMs • Different ISA for guest and host systems. – both application and OS code require emulation • Implemented by placing the VMM and the guest software on top of a conventional host OS running on the hardware • e.g., Virtual PC EECS 768 Virtual Machines 29 Codesigned Virtual Machines • VMs designed to enable innovative ISAs and/or hardware implementations for improved performance, power efficiency, etc. • Similar hardware virtualization is common for microprocessors, such as Pentium IV. • Software VM is part of the hardware design – applications/OS never directly execute native ISA instructions • e.g., Transmeta Crusoe processor EECS 768 Virtual Machines 30 VM Taxonomy Process VMs same ISA Multiprogrammed Systems Dynamic Binary Optimizers Dynamo System VMs different ISA Dynamic Translators IA-32EL, FX!32 same ISA Classic System VM IBM VM/370 Hosted VM HLL VM VMware Java VM MS CLI different ISA Whole System VM Virtual PC for Mac Codesigned VM Transmeta Crusoe EECS 768 Virtual Machines 31