introduction to virtual machines
play

Introduction to Virtual Machines Introduction Abstraction and - PowerPoint PPT Presentation

Introduction to Virtual Machines Introduction Abstraction and interfaces Virtualization Computer system architecture Process virtual machines System virtual machines 1 EECS 768 Virtual Machines Abstraction Mechanism to


  1. Introduction to Virtual Machines • Introduction • Abstraction and interfaces • Virtualization • Computer system architecture • Process virtual machines • System virtual machines 1 EECS 768 Virtual Machines

  2. 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. 2 EECS 768 Virtual Machines

  3. 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. Windows apps . Linux apps MacOS Windows Linux PowerPC x86 x86 3 EECS 768 Virtual Machines

  4. 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 4 EECS 768 Virtual Machines

  5. 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 Windows apps. MacOS Linux x86 x86 5 EECS 768 Virtual Machines

  6. 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 ! 6 EECS 768 Virtual Machines

  7. 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 7 EECS 768 Virtual Machines

  8. Virtualization (2) • Virtualization constructs an isomorphism that maps a virtual guest system to a real host . e(S i ) S i S j Guest V( S i ) V( S ) j e '(S i ') S i ' S j ' Host 8 EECS 768 Virtual Machines

  9. Virtualization (3) • Virtualization Vs. abstraction – virtualization does not necessarily hide details virtualization file file 9 EECS 768 Virtual Machines

  10. 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 10 EECS 768 Virtual Machines

  11. Some Benefits of VMs • Flexibility • Portability • Isolation • Security 11 EECS 768 Virtual Machines

  12. 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 12 EECS 768 Virtual Machines

  13. Computer Architecture (2) Software • Computer systems are Application built of levels of Programs Libraries abstraction Operating System – hierarchical abstraction Memory Drivers Scheduler Manager – well-defined interfaces Execution Hardware Memory Translation System Interconnect (bus) Controllers Controllers I/O devices Main and Memory Networking Hardware 13 EECS 768 Virtual Machines

  14. The ISA Interface • Interface between Application Programs hardware and software Libraries • Important for Operating System – OS developer Execution Hardware Memory Translation System Interconnect (bus) I/O devices Main and Memory Networking 14 EECS 768 Virtual Machines

  15. The ABI Interface • Application Binary Application Programs Interface (ABI) Libraries – user ISA + system calls Operating System • Important for – compiler writers Execution Hardware Memory Translation System Interconnect (bus) I/O devices Main and Memory Networking 15 EECS 768 Virtual Machines

  16. The API Interface • Application Application Programs Programming Libraries Interface (API) – user ISA + Operating System library calls Execution Hardware • Important for Memory – application Translation System Interconnect programmers (bus) I/O devices Main and Memory Networking 16 EECS 768 Virtual Machines

  17. Major Program Interfaces • ISA – supports all conventional software Application Software System Calls Operating System System ISA User ISA ISA • ABI – supports application software only Application Software System Calls Operating System System ISA User ISA ABI 17 EECS 768 Virtual Machines

  18. 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 Application Process Guest Application Process Runtime Virtualizing Software Virtual OS Machine Host Machine Hardware 18 EECS 768 Virtual Machines

  19. Process Virtual Machines (2) • Constructed at ABI level • Runtime manages guest process guest host • Runtime communicates with process process host OS runtime • Guest processes may guest guest host intermingle with host processes process process process • As a practical matter, binaries runtime runtime built for same OS create • Dynamic optimizers are a HOST OS special case file sharing • Examples: IA-32 EL, FX!32, Disk Dynamo network communication 19 EECS 768 Virtual Machines

  20. 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 Applications Guest OS OS Virtualizing VMM Software Virtual Machine Hardware Host "Machine" 20 EECS 768 Virtual Machines

  21. 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. 21 EECS 768 Virtual Machines

  22. 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 22 EECS 768 Virtual Machines

  23. 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 HP Apps store translated blocks of code for reuse. UNIX • e.g., Digital’s FX!32 system, Aries system, HP PA Intel IA-32 EL system 23 EECS 768 Virtual Machines

  24. 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 Hewlett- Packard. 24 EECS 768 Virtual Machines

  25. 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 HLL Program Compiler front-end Compiler Intermediate Code Portable Code ( Virtual ISA ) Compiler back-end VM loader Object Code ( ISA ) Virt. Mem. Image VM Interpreter/Translator Loader Memory Image Host Instructions HLL VM Traditional 25 EECS 768 Virtual Machines

  26. 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 VM VM implementation implementation implementation Apple Sparc x86 Mac Workstation PC 26 EECS 768 Virtual Machines

  27. 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 Win Linux Linux Linux process process process process process process Guest OS2 (Linux) Guest OS (Windows) VMM HOST PLATFORM virtual network communication 27 EECS 768 Virtual Machines

  28. 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 28 EECS 768 Virtual Machines

  29. 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 29 EECS 768 Virtual Machines

Recommend


More recommend