论文部分内容阅读
多年来,尽管在减少虚拟化虚耗的问题上,业界有着不懈的努力,但是内存虚拟化的额外开销过大的问题对于某些应用程序仍然过于显著,而且至今还无法找到解决该问题的高效且低廉的方案。甚至硬件厂商们还采用了专用的硬件设备来辅助减少内存虚拟化的产生的额外损耗。目前,对于解决这个问题通常有两种途径,一种是采用影子页表(shadow paging)的软件方法,另一种就是采用硬件辅助页表方法(Hardware assisted paging-HAP)。两种方法各有利弊。依赖硬件辅助页表方法虽然消除了大部分由于缺页中断所产生的VM陷出,但是却承受着更高的由TLB失效所带来的开销。另一方面,通过软件的手段虽然可以减少页表遍历的时间开销,但是却是以虚拟机的陷出为代价来保持影子页表和客户机页表之间的一致性。 我们观察到,虽然两种方法在32位虚拟机上不同类别的应用程序上各有千秋,但是在64位虚拟机环境下,软件手段通常有着更好或者至少相等同于HAP方法的效果,由此软件手段渐渐的被更广泛的采用。本篇论文针对这两种方法在这两种VM上的不同效果的问题进行了一系列实验,最后观察到软件方法在32位系统上的效率可以通过优化动态内存管理方法得到显著的提高。我们因此可以总结目前内存虚拟化的开销问题可以通过软件方式得到较好的解决。硬件辅助页表的硬件设计尚不成熟,如果没有突破,那么与影子页表方法相比之下便显得不再必要。