Resource Virtualization to Enable Interoperability
As a key component of virtual machines, the hypervisor provides a layer between
software environments and physical hardware that has the following characteristics:
Virtualization provides a way to bypass interoperability constraints. Virtualizing a system or component
such as a processor, memory, or an I/O device at a given abstraction
level maps its interface and visible resources onto the interface and resources of
an underlying, possibly different, real system. Consequently, the real system appears as a
different virtual system or even as multiple virtual systems.
The hypervisor assigns one or more virtual CPUs (VCPUs) to each domain. Each
VCPU contains all the state one would typically associate with a physical CPU,
such as registers, flags, and timestamps. A VCPU in xVM is an
entity that can be scheduled, like a thread in Solaris. When it is
a domain's turn to run on a CPU, xVM loads the physical CPU
with the state in the VCPU, and lets it run. Solaris treats each
VCPU as it would a physical CPU. When the hypervisor selects a VCPU
to run, it will be running the thread that Solaris loaded on the
VCPU.