PVMsim: A parallel simulation platform to evaluate virtual machines

Server consolidation is becoming an increasingly popular technique to manage and utilize system. In server consolidation, multiple server workloads are deployed onto Virtual Machines (VMs), which then run on a single, more-powerful server. In fact, multi-core processors provide excellent opportunities to expand server consolidation. In order to research how to support virtualization better from the perspective of multi-core architecture design, and verify the function and performance of some novel virtualization technologies, we need a simulation platform to evaluate virtual machines efficiently. However, nowadays most of the simulators which support virtualization are all full-system. And most of them have really complicated state and code space, and therefore lead to rather slow simulation speed. In this paper we present a parallel user-level simulator, PVMsim, inside which processor and memory virtualization functions are provided. We implement the PVMsim in three steps: 1) hardware virtualization, 2) implement communication mechanism between different virtual machines thread, 3) implement synchronization mechanism between different virtual machines thread.