Abstract
Virtualization, which means running guest virtual machines on a host physical machine, recently becomes a hot topic. The kernel-based virtual machine (KVM) is a virtualization solution for Linux. By providing the CPU, memory and I/O virtualization capabilities, KVM makes Linux be able to act as a hypervisor to host guest virtual machines on multi-core virtualization processors. In this thesis, we focus on the memory virtualization in KVM using a general mechanism called shadow paging. In this mechanism, the guest operating system maintains page tables as usual, but the hardware actually accesses the shadow page tables synchronized with the page tables in the guest virtual machine through a great number of page faults. Since the page fault is an expensive operation, to reduce the number of page faults, we propose a helper threaded shadow paging technique that introduces a shadow paging helper thread (SPHT) into KVM and uses a heuristic algorithm to pre-build shadow page tables. The purpose of SPHT is to avoid the guest virtual machine switching to the hypervisor due to the page faults. The helper threaded shadow paging technique is evaluated by a well-known Kernel Build benchmark. The experimental results show that the guest virtual machine performance can be up to 35% better when the helper threaded shadow paging technique is applied.