Virtualizing a Multiprocessor Machine on a Network of Computers Easy & efficient utilization of distributed resources Goal Kenji KanedaYoshihiro OyamaAkinori Yonezawa University of TokyoJST Hide HW/SW complexity using virtualization techniques Our Approach
Virtual Multiprocessor Virtualization SMP with N processors N single-processor machines ISA-level virtualization Designed for Intel Pentium architecture Paravirtualization … VMM Processor Physical machine Memory I/O devices Processor Virtual machine Shared memory I/O devices Guest OS Host OS VMM Processor Physical machine Memory I/O devices Host OS VMM Processor Physical machine Memory I/O devices Host OS Processor …
Implementation Virtualizing a Multiprocessor Machine on a Network of Computers Kenji KanedaYoshihiro OyamaAkinori Yonezawa University of TokyoJST Virtualizing processors I is sensitive? Instructions are sensitive if they interfere with the state of an underlying VMM or host OS Scheme to carry out instruction I on a virtual machine Physical machine’s processor carries out I directly Physical machine’s processor carries out I directly VMM interprets I (by trapping a general protection fault) VMM interprets I (by trapping a general protection fault) No Yes
Virtualizing a memory Paging mechanism VMM maps pages to a memory according to a VM’s page directory/table Kernel address space of a guest OS is shifted to avoid overlap with a host OS Page fault exceptions VMM intercepts exceptions that a physical machine generates Memory consistency VMM provides the illusion of a shared memory on top of distributed memories Virtualizing I/O devices VMM intercepts all I/O operations issued by a guest OS Linear address space Kernel space (Host OS) User space 0x xffffffff0xc xa Physical machines Virtual machine Kernel space (Guest OS) Shared memory Write X Processor Memory Processor Memory Processor Memory … Write X Processor …