Symmetric Multiprocessing Virtualization




Southern, Gabriel

Journal Title

Journal ISSN

Volume Title



The reemergence of system virtualization, and the introduction of the single-chip multiprocessor, are two technologies that are altering the landscape of modern general-purpose computing architecture. System virtualization is a technology that uses software to partition the resources of a single physical computer into multiple virtual machines (VMs). Multiprocessing combines the capabilities of multiple CPUs into a single computer system. Virtualization continues to play an important role in efficiently utilizing multiprocessor systems; however, developing efficient multiprocessor virtual machines is a significant challenge. Multicore processors — those that combine multiple logical CPUs in a single physical socket — now dominate the general purpose microprocessor marketplace. These processors require operating system support for multiprocessing, and the most common form of multiprocessing is symmetric multiprocessing (SMP), where all processors have identical behavior and any processor can perform any task. System virtualization introduces additional complexities for implementing SMP because VMs have different timing behavior from physical computers. In this thesis I examine two approaches to implementing SMP in VMs used by two leading virtualization platforms: VMware ESX server and the Xen hypervisor. I demonstrate the comparative advantages of these two different virtualization systems, and propose a new optimization technique to improve performance through dynamic virtual CPU (VCPU) allocation. I find that Xen performs well when executing independent single threaded applications that do not require any synchronization between the processes running on multiple processors. However, Xen scales poorly for applications that require synchronization between multiple threads. ESX uses a more conservative scheduling algorithm, called co-scheduling, that provides more balanced performance for both single threaded and multithreaded workloads. However, ESX has some significant optimization that provide improved performance over a naive implementation of co-scheduling. Finally, I propose an algorithm for dynamic allocation of VCPU resources that can be used by Xen to improve the efficiency of multithreaded workloads. I provide a simulation for this algorithm and discuss the tasks required for a complete implementation of the algorithm.



Virtualization, SMP, Scheduling, Dynamic VCPU Allocation, Xen, WMware ESX