Check out the new USENIX Web site. next up previous
Next: Summary and Conclusions Up: Virtualizing I/O Devices on Previous: Bypassing the Host OS


Related Work

Providing interoperability and preserving compatibility are frequently necessary when introducing any new technology. As computer architectures and operating systems advance, they need to remain compatible with existing software and applications. By providing a hardware abstraction layer, virtual machine technology allows hardware differences to be hidden from legacy software, and allows multiple incompatible computing environments to co-exist on a machine.

Achieving native machine performance is a prime target of virtual machine technology. The ability to execute virtual machine code directly on the hardware allows the technology to outperform other technologies based on machine simulation or emulation. Subsequent to the early mainframe virtual machine support, IBM designed a number of architectural features to further enhance the performance of virtual machines. Gum [7] describes a number of hardware assists in the IBM System/370 architecture for further reducing the overhead of handling privileged guest instructions, guest memory address translation, and multiprocessing support.

Borden et al. [2] describe PR/SM, a partitioning feature on the IBM 3090 series of mainframes that allows specific devices, I/O channels and memory address ranges to be dedicated to a virtual machine. Guest I/O accesses can then be handled directly by the hardware without requiring VMM intervention. Borden et al. report that this feature allows a virtual machine with dedicated I/O devices to achieve within 1-2% of native hardware performance. A PC-based server platform with similar partitioning features would allow VMware's virtual machines to do the same.

Hall and Robinson [8] describe virtualizing the VAX architecture which, like the IA-32 architecture, is not naturally virtualizable and has more than two protection rings. They rely on modifications to the VAX architecture as well as the microcode. In contrast, VMware's virtualization technology does not require any hardware modifications.

Bugnion et al. [3] apply virtual machine technology towards providing scalable performance on large scale NUMA machines. Most commodity operating systems do not scale to a large NUMA machine without extensive modifications. However, a virtual machine monitor can be designed from the ground up to manage such a machine and hide its NUMA nature from a commodity OS. The machine can then run multiple commodity OS images, with each OS allocated as many CPUs as it can scale to.

VMware Workstation's hosted virtual machine architecture relies on user-level emulation of I/O devices. This parallels the approach taken by microkernel-based operating systems (e.g., Mach [6]) which rely on user-level emulation of operating system APIs to provide multiple application environments on a single machine. The primary difference lies at the abstraction layer: while virtual machines abstract the hardware layer, microkernels abstract the OS API layer. Härtig et al. [9] describe techniques for improving the performance of microkernel-based systems.


next up previous
Next: Summary and Conclusions Up: Virtualizing I/O Devices on Previous: Bypassing the Host OS
Beng-Hong Lim 2001-05-01