Cooperative Virtual Machine Scheduling on Multi-Core Multi-Threading Systems - A Feasibility Study
Virtual Machines (VMs) and Multi-core Multi-threading Micro-Processors (MMMP) are two emerging technologies in software and hardware, respectively, and they are expected to become pervasive on computer systems in the near future. However, the nature of resource sharing on an MMMP introduces contention among VMs which are scheduled onto the cores and the threads that share the processor computation resources and caches. Such contention can lead to performance degradation of individual VMs as well as the overall system throughput, if not carefully managed. This paper proposes to address this problem through cooperative VM scheduling that takes processor input to schedule VMs across processors and cores in a way that minimizes the contention on processor resources and maximizes the total throughput of the VMs.