论文部分内容阅读
随着软硬件技术的迅猛发展,基于虚拟化技术的计算环境日益变得越来越普遍。虚拟机管理器VMM(Virtual Machine Monitor)作为计算机系统软件中新的一层,其在物理资源管理与系统安全监控应用方面起着越来越重要的作用。在虚拟化环境下,因其所处的特殊位置,VMM为系统安全服务的实现以及系统全局资源的分配与调度优化提供了最佳场所。它们的有效实现很大程度上取决于VMM对Guest OS内部软件抽象、行为状态及其所隐含语义信息了解的多少。然而在现今主流的虚拟化技术中,VMM还没有很好的方法能够直接从Guest OS中获取到这些有用的语义信息,即VMM与Guest OS之间存在语义鸿沟。因此研究探索虚拟化计算环境下的语义鸿沟处理技术有很重要的实践意义。 本文以开源虚拟机Xen与Qemu&Kvm为实验平台,研究开发了一些用于语义鸿沟处理的新技术与方法,具体包括Guest OS内部状态信息的获取、VMM中Guest OS特定行为的截获与识别以及基于Guest OS行为感知的交互型应用负载调度优化。 本文主要工作及贡献如下: 1)基于Guest OS与VMM之间共性特征以及类VMI应用共性需求的研究分析,我们设计实现了一个语义鸿沟处理库SGBL(Semantic Gap Bridging Library)。SGBL采用了类虚拟文件系统的分层设计思想,屏蔽了不同Guest OS与VMM之间的差异性,利用它可非常简便地获取到Guest OS的内部状态语义信息。基于SGBL开发的Guest OS进程列表、Guest OS已加载内模块列表以及Guest OS软件抽象隐藏检测应用实例,成功验证了SGBL功能的正确有效性,可大大简化类VMI安全监控应用的开发并做到跨Guest OS透明。 2)基于硬件体系结构特征规范,我们提出了一种通过打破Guest OS非陷入指令行为正常运行条件使其产生系统异常陷入VMM的方法,相比已有方法它不需要修改Guest OS,因而可应用于不同的Guest OS;作为实例,我们研究了x86架构下三种非陷入系统调用指令并提出了它们在VMM中的截获与识别方法;基于Qemu&Kvm平台实现的原型系统验证了上述方法功能的正确性与有效性,其性能开销也在可接受范围之内。 3)基于gray-box思想,我们提出了一种用于Guest OS交互型应用负载的检测方法,并以此为基础提出了一种提高交互型应用负载时间响应性能的优化调度算法。检测方法依赖于Guest OS交互型应用负载的两个共性特征:抢占式调度以及单一时间周期内CPU运行时间占用短。优化调度算法以credit为基础,将虚拟机VM分为两类:交互型IAVM与非交互型NIAVM,运行时轮流调度两类虚拟机,并在IAVM调度周期内,以更细粒度地方式时分共享物理CPU,这样IAVM在一轮调度周期中有更多的机会被调度从而减少时间延迟。基于Xen平台,我们进行了原型实现,实验表明IAVM的时间响应性能得到显著的提升,同时也能继续维持原有credit调度算法的CPU共享公平性。