论文部分内容阅读
本文提出了动态代码植入技术(Dynamic Code Implantation),它借用半虚拟化的方式,动态修改全虚拟化系统中客户操作系统(Guest OS)的内核代码。在有硬件辅助的全虚拟化虚拟机管理器(VMM)下,由VMM在二进制代码层对Guest OS中的内核代码进行函数级替换,这种替换对客户操作系统而言是透明的,客户操作系统并不会感知到这些变动。动态代码植入技术试图结合全虚拟化和半虚拟化的优势,解决性能和普适性这对矛盾。本文还涉及了动态代码植入技术在内存虚拟化中的一个重要的应用:降低内存虚拟化开销的动态内存半虚拟化方法(Dynamic Memory Paravirtualization,DMP)。在VMM中实现了一套新的内存虚拟化管理机制,避免使用影子页表进行虚拟内存地址转换,并方便采用动态代码植入技术消除内存管理引起的VM陷出。在采用Intel VT的KVM-72版本中实现了动态内存半虚拟化原型系统。实验表明,可以显著地减少页面中断导致的VM陷出,从而降低其带来的系统开销。动态代码植入技术能够不修改Guest OS源代码也可达到半虚拟化的效果。