Automating Pre-Virtualization for Memory Objects
- Subject:Virtual Machines
- Type:Diploma Thesis
- Date:13.03.2007
- Supervisor:
Prof. Dr. Frank Bellosa, Joshua LeVasseur
- Graduand:Yaowei Yang
- Links:PDF
-
Abstract:
Virtualization is used to construct several virtual machines on a physical machine for high utilization and other benefits. The virtual machines should run independently within their own domain without disturbing the others' execution. In order to achieve this purpose, two things are considered: virtualization-sensitive instruction and sensitive memory operation. Since the virtualization-sensitive instructions and memory operations could change the actual state of physical resources - e.g. CPU, memory and I/O devices - the virtual machine must prohibit their use. The virtual machine monitor must fully control them and share them among many virtual machines.
Currently, virtualization technologies suffer from either performance penalty or high engineering effort to work around the virtualization sensitive instruction and sensitive memory operation. Pre-virtualization tries to balance these two factors by using code analysis, and successfully achieves high performance with low porting engineering effort for virtualizing virtualization sensitive instructions, but it lacks automation for the sensitive memory operations.
In this thesis, we analyze the technique used by pre-virtualization for automatically virtualizing virtualization sensitive instructions and find out that the limitation of this technique comes from the simple type system of assembly language. Therefore, we propose a solution for this problem that parses source code in a programming language that has a rich type system. By using this enhancement, pre-virtualization can achieve high performance and low engineering effort for virtualizating both virtualization sensitive instructions and sensitive memory operations.
BibTex:
@diplomathesis{yang07automem,
author = {Yaowei Yang},
title = {Automating Pre-Virtualization for Memory Objects},
type = {Diploma Thesis},
address = {System Architecture Group, University of Karlsruhe, Germany},
month = mar # "~13",
year = 2007,
url = {http://i30www.ira.uka.de/teaching/theses/pasttheses/}
}