Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE 451: Operating Systems Winter 2012 Module 18 Virtual Machines Mark Zbikowski and Gary Kimura.

Similar presentations


Presentation on theme: "CSE 451: Operating Systems Winter 2012 Module 18 Virtual Machines Mark Zbikowski and Gary Kimura."— Presentation transcript:

1 CSE 451: Operating Systems Winter 2012 Module 18 Virtual Machines Mark Zbikowski and Gary Kimura

2 8/20/20152 What is “Virtualization”? Beyond the buzz-word du jour: –Abstraction of computing resources –Hide the physical characteristics of a resource –Allow multiple “instances” of the resource Why? –Sharing the resource among multiple clients Disks (I/O system) Cpu (scheduler and context switches) Memory (processes and virtual memory) –Fault isolation Application Operating System Hardware(!)

3 8/20/20153 Classes of Virtualization Resource –aggregation, spanning, or concatenation combines individual components into larger resources or resource pools (RAID) –VPN or NAT –Multiprocessor/multicore –Encapsulation: hide complexity by the creation with simplified interface.

4 8/20/20154 Classes of Virtualization Platform –1960’s term: virtual machines used hardware and software –Host running sofware using hardware assistance to execute a guest –Guest can be application or entire OS –Guest runs as if it were installed on bare metal –Typically many guests run on a single host

5 8/20/20155 Platform Virtualization – What? Emulation/simulation –Software/hardware decodes each instruction and emulates the guest hardware –Emulate completely different CPU (VirtualPC on PowerPC Mac) –Typically slow (but some clever tricks can be used) Native/Full Virtualization –Host emulates only enough hardware to allow guest to run unmodified OS-Level Virtualization –“personalities” –Underlying OS emulates programming environment: Win32, POSIX, OS/2

6 8/20/20156 Platform Virtualization – How? Emulation/Simulation –Naively, very slow: decode and execute instruction –Why not play compiler? “dynamic recompilation” Decode sequence of guest instructions (basic block) Generate native host instructions Hash table of guest address -> codelet block –Memory management emulation difficult Simulate page directory/table and TLB Java VM and VirtualPC

7 8/20/20157 Platform Virtualization – Difficulties Requirements –Fidelity: guest executes identically to execution on native hardware, barring timing effects –Performance: an overwhelming majority of guest instructions are executed by the hardware without intervention by host –Safety: host manages all hardware resources X86 is not classically virtualizable –Run guest in unprivileged mode (“deprivileging”) –Trap to host on illegal instructions, emulate effects in guest –Illegal instructions: CR (chip control registers) I/O port Memory-mapped devices

8 8/20/20158 More x86 woes Primary and shadow structures –Host maintains shadows of guest’s primary structures –On-CPU state: Page directory pointer Processor status register (interrupt state, flags, debug state) Trivial to maintain –Off-CPU state: Page tables Encodes mappings and permissions Modified by guest AND guest H/W

9 8/20/20159 Improving host performance Allow slightly modified guests –Augment the “hardware” to add host-calls –VMWare Tools/VirtualPC Machine Additions Device drivers that export the I/O at a high level for emulation Dynamic recompliation Hardware extensions –Intel VMRUN VMEXIT instructions –Hardware maintains shadow state –Traps to host when needed –Too limited to be of value

10 8/20/201510 Platform Virtualization Emulating an “environment” –“Win32 API” implemented on Windows 95 –Native API to DOS/Win-based kernel –Windows NT built to allow emulation –DLLs in application address space emulate Windows 95 API but run on an entirely different operating system –Vast majority of Windows 95 applications ran on Windows NT 4 without modification Java –Byte-code defines a virtual machine –Emulator written in portable C, can be compiled and run on almost all hardware architectures –Pcode can be run anywhere –Dynamic recompilation (aka incremental compilation)


Download ppt "CSE 451: Operating Systems Winter 2012 Module 18 Virtual Machines Mark Zbikowski and Gary Kimura."

Similar presentations


Ads by Google