6.5.1

Table Of Contents
CPU Virtualization Basics 3
CPU virtualization emphasizes performance and runs directly on the processor whenever possible. The
underlying physical resources are used whenever possible and the virtualization layer runs instructions
only as needed to make virtual machines operate as if they were running directly on a physical machine.
CPU virtualization is not the same thing as emulation. ESXi does not use emulation to run virtual CPUs.
With emulation, all operations are run in software by an emulator. A software emulator allows programs to
run on a computer system other than the one for which they were originally wrien. The emulator does this
by emulating, or reproducing, the original computers behavior by accepting the same data or inputs and
achieving the same results. Emulation provides portability and runs software designed for one platform
across several platforms.
When CPU resources are overcommied, the ESXi host time-slices the physical processors across all virtual
machines so each virtual machine runs as if it has its specied number of virtual processors. When an ESXi
host runs multiple virtual machines, it allocates to each virtual machine a share of the physical resources.
With the default resource allocation seings, all virtual machines associated with the same host receive an
equal share of CPU per virtual CPU. This means that a single-processor virtual machines is assigned only
half of the resources of a dual-processor virtual machine.
This chapter includes the following topics:
n
“Software-Based CPU Virtualization,” on page 17
n
“Hardware-Assisted CPU Virtualization,” on page 18
n
“Virtualization and Processor-Specic Behavior,” on page 18
n
“Performance Implications of CPU Virtualization,” on page 18
Software-Based CPU Virtualization
With software-based CPU virtualization, the guest application code runs directly on the processor, while the
guest privileged code is translated and the translated code runs on the processor.
The translated code is slightly larger and usually runs more slowly than the native version. As a result,
guest applications, which have a small privileged code component, run with speeds very close to native.
Applications with a signicant privileged code component, such as system calls, traps, or page table updates
can run slower in the virtualized environment.
VMware, Inc.
17