基于虚拟机的多核系统确定执行技术研究
发布时间:2020-05-12 07:42
【摘要】:随着多核技术的深入发展,操作系统针对多核并行的开发就成为当前多线程等并行程序的重要基础。传统多线程主要是在单核单处理器上通过操作系统调度分时运行来给应用程序一个并行的抽象,然而多核技术使得多线程的并行得到真正体现。但并行程序又带来了执行过程的不确定性问题,而这些不确定性问题使得并行程序运行的正确性受到很大影响,而且对并行程序的开发调试、安全维护等应用领域都带来一个挑战。如何解决并行的不确定性问题,使其在调试开发等领域带来更好的支持,已经成为国内外研究的热点。 而目前多核上操作系统的调试等维护技术仍不成熟,且在硬件平台上的调试技术仍有配置复杂、无法重现并行的瞬时错误等问题。因此,针对多核上软件开发所面临的不确定性问题,本文基于虚拟机监控器(VMM: Virtual Machine Monitor),围绕多核系统运行状态维护、多核系统可逆调试等关键技术进行研究。 针对多核系统运行状态的不确定性,本文基于对称多处理虚拟机,提出了确定并发状态机的抽象控制域。确定并发状态机的抽象控制域将虚拟机的运行行为进行了内部与外部的区分。针对内部与外部行为所引起的不确定性的特点,又可以进行不同的控制,最终完成整体运行状态的确定性控制与维护,保证了多核系统的可控性。 针对对称多处理虚拟机的内部行为特点,本文基于影子页表机制,提出了虚拟私有内存模型。该模型既保证了多个虚拟CPU的并行,同时还在确定的时候对其进行同步,维护其内部虚拟CPU状态与内存状态的确定性。而对于对称多处理虚拟机的外部不确定因素特点,本文在虚拟私有内存的基础上,分别以严格和松弛两种确定执行算法,利用记录与重现技术,提出了两个机制——严格确定执行机制和松弛确定执行机制。测试结果表明,在实现参数选取较为合适的情况下,性能损耗平均在50%左右。 在完成了多核系统运行确定执行的基础上,本文基于对称多处理虚拟机,提供了能够对并发执行的整体进行可逆调试的操作系统调试技术。根据确定并发状态机的特点,对多核系统的可逆调试还提出了并行单步状态点的协调可控方法。并行单步状态点利用状态间迁移情况来帮助程序员能够对系统整体有直观的把握,有助于缩小运行过程中出错的位置判断范围,从而提高调试的效率。从性能上的测试结果表明,对于raw格式的虚拟机镜像,其运行过程中的多检查点支持相对正常快照有较高的效率。
【图文】:
第 11 页.4 影子页表机制和维护的页表。客户机执行时,监控放人的是影子页表中指向最高级的影控程序运行时,在物理机的页表基地作系统所指向最高级页表的指针。客维护着影子页表。客户机实际上是通子页表以客户机页表为蓝本建立起来像客户机页表的影子。这就是称它为户机内存的虚拟化问题,但其性能损。随着硬件虚拟化技术的发展,Intel 和就有对内存虚拟化的支持,,对于这两xtended Page Tables,EPT)和快速虚
图 2.8 DPG 的抽象模型图在操作系统上进行 DPG 设计的 dOS 系统框架组成图,操作器对 DPG 组进行内部不确定因素进行确定性控制,并通过层与 DPG 组以外的环境进行通讯。经过内部与外部的不确个 DPG 组内多进程和多线程状态的确定执行。
【学位授予单位】:国防科学技术大学
【学位级别】:硕士
【学位授予年份】:2011
【分类号】:TP302;TP332
本文编号:2659889
【图文】:
第 11 页.4 影子页表机制和维护的页表。客户机执行时,监控放人的是影子页表中指向最高级的影控程序运行时,在物理机的页表基地作系统所指向最高级页表的指针。客维护着影子页表。客户机实际上是通子页表以客户机页表为蓝本建立起来像客户机页表的影子。这就是称它为户机内存的虚拟化问题,但其性能损。随着硬件虚拟化技术的发展,Intel 和就有对内存虚拟化的支持,,对于这两xtended Page Tables,EPT)和快速虚
图 2.8 DPG 的抽象模型图在操作系统上进行 DPG 设计的 dOS 系统框架组成图,操作器对 DPG 组进行内部不确定因素进行确定性控制,并通过层与 DPG 组以外的环境进行通讯。经过内部与外部的不确个 DPG 组内多进程和多线程状态的确定执行。
【学位授予单位】:国防科学技术大学
【学位级别】:硕士
【学位授予年份】:2011
【分类号】:TP302;TP332
【参考文献】
相关期刊论文 前2条
1 邵腾刚;张俊飞;;基于虚拟机日志记录回放的可逆调试方法[J];计算机应用与软件;2011年04期
2 王振东;周忠海;刘军礼;廉月仙;周扬;;Linux系统内核调试的研究[J];商品储运与养护;2008年05期
本文编号:2659889
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2659889.html