3 Virtualization Implementation Levels
3 Virtualization Implementation Levels
Virtualization
1-4
Virtual Machine, Guest Operating System,
and VMM (Virtual Machine Monitor)
Virtual Machine
A representation of a real machine using software that
provides an environment to host guest OS
Guest Operating System
An operating system running in a virtual machine.
1-5
Virtualization Ranging from Hardware to Applications in
Five Abstraction Levels
Virtualization at ISA (Instruction Set Architecture) level
• Emulating a given ISA by the ISA of the host machine.
• e.g, MIPS binary code can run on an x-86-based host machine with
the help of ISA emulation.
• Dynamic Binary Translation : Translates basic blocks of
source instruction to target instruction.
• Typical systems: Bochs, Crusoe, Quemu, BIRD, Dynamo
• Advantage:
• It can run a large amount of legacy binary codes written for
various processors on any given new hardware host machines
• Best application flexibility
• Shortcoming & limitation:
• One source instruction may require tens or hundreds of native
target instructions to perform its function, which is relatively
slow.
• V-ISA requires adding a processor-specific software translation
layer in the complier.
Virtualization at Hardware Abstraction level
• Virtualization is performed right on top of the hardware.
• It generates virtual hardware environments for VMs (CPU,
Memory, I/O devices)
• Manages the underlying hardware through virtualization.
• Typical systems: VMware, Virtual PC, Denali, Xen
• Xen hypervisor is applied to virtualize x-86 based machines to
run Linux or other guest OS.
• Advantage:
– Has higher performance and good application isolation
• Shortcoming & limitation:
– Very expensive to implement (complexity)
Virtualization at Operating System (OS) level
1 - 10
Virtualization for Linux and Windows NT
Platforms
1 - 11
Virtualization for Linux and Windows
NT Platforms
• So far, most reported OS- Level Virtualizations are
Linux based.
• Virtualization for Windows-based platform is still in
research stage.
• Linux Kernel offers an abstraction layer, to allow
software process to work with and operate on
resources without knowing the hardware details.
Virtualization for Linux and Windows
NT Platforms
1 - 13
Virtualization at OS Level
•Advantages of OS Extension for Virtualization
1. VMs at OS level has minimum startup/shutdown
costs, low resource requirement and high scalability
2. OS-level VM can easily synchronize with its
environment
1 - 16
The vCUDA for Virtualization of GPGPU
1 - 17
The vCUDA for Virtualization of GPGPU
• CUDA is programming model and library for GP- GPUs
• It provides GPUs to run compute intensive applications on host OS.
• It is difficult to run CUDA application on Hardware-level VMs
directly.
• vCUDA virtualizes CUDA library.
• When CUDA applications run on guest OS and issues call to CUDA
API, vCUDA intercepts and directs to CUDA API running on host
OS.
• vCUDA employs client server model to implement CUDA
virtualization.
• vGPU returns local virtual address to application and notify remote
stub to allocate real device memory and execution context for APIs
calls from guest OS.
User-Application level
• It virtualizes an application as a virtual machine.
• High Level Language VMs: This layer sits as an application
program on top of an operating system and exports an
abstraction of a VM that can run programs written and
compiled to a particular abstract machine definition.
• Application-level or Process-Level Virtualization
• Typical systems: JVM , .NET CLI , Panot
• Advantage:
– Best application isolation
• Shortcoming & limitation:
– Low performance, low application flexibility and high implementation
complexity.
Summary
1 - 20
VMM Design Requirements
• First, a VMM should provide an environment for programs
which is essentially identical to the original machine.
• Second, programs run in this environment should show, at
worst, only minor decreases in speed.
• Third, a VMM should be in complete control of the system
resources
– The VMM is responsible for allocating hardware resources
for programs.
– It is not possible for a program to access any resource not
explicitly allocated to it.
– It is possible under certain circumstances for a VMM to
regain control of resources already allocated.
Not all processors satisfy these requirements for a VMM. A VMM is tightly
related to the architectures of processors. It is difficult to implement a VMM
for some types of processors, such as the x86.
Summary
• Implementation Levels of Virtualization
– ISA Level
– Hardware Level
– OS- Level
– Library Level
– Application Level
• VMM Design Requirements