论文部分内容阅读
动态二进制翻译器借助于二进制翻译技术,其发展初期通常被用在程序移植、代码优化等方面,目前也越来越多的被广泛的应用于硬件设计、系统安全等领域。然而,当前关于动态二进制翻译器乃至二进制技术发展尚存在一些挑战,主要的挑战来自于以下几个方面。首先,商用的动态二进制翻译器普遍与底层硬件存在着强烈的依赖关系,可扩展性和兼容性差;其次,学术界的动态二进制翻译器虽然在扩展性上有所突破,但其性能往往令人垢病,得不到大面积推广应用;再次,当今的动态二进制翻译技术及动态二进制翻译器的应用几乎只局限于商用服务器或者个人电脑领域,却不支持在一些硬件资源有限的痩客户端上的应用。 本文在深入研究当今动态二进制翻译器相关技术现状的基础上,针对这些挑战提出一系列系统的解决方案。相比于之前的研究工作,本文的研究致力于提供一套更为实际、全面和高效的解决方案,该方案可以为今后的动态二进制翻译器系统设计提供帮助,同时也拓展了在其它应用场合,如痩客户端领域、云计算环境领域的应用前景。 具体而言,本文的主要贡献有如下几点: 1.为动态二进制翻译器设计了一套通用的虚拟中间指令集V-IIS。借助于该中间指令集,在不损失过多性能的前提下,动态二进制翻译器能较好的实现“多源多目标”的目的,减少了动态二进制翻译器开发的复杂度,节省了人力物力; 2.为痩客户端设计了一种分布式的动态二进制翻译器框架-DistriBit。在该分布式框架中,根据服务器和痩客户端功能和计算能力的强弱安排不同的分工,功能强大的服务器负责代码翻译和优化的工作,资源有限的客户端负责代码执行工作; 3.为DistriBit中的痩客户端设计了一种代码缓存管理策略。针对痩客户端缓存的大小和代码执行的情况,在服务器端为其量身制定了相适应的缓存管理策略,借助于该缓存管理策略的指导,痩客户端可以进行较复杂的高效率的代码管理; 4.在云计算虚拟分布式环境下,我们研究了一些优化因素,诸如中间指令集的虚拟寄存器的数量、热路径上基本块的数量对DistriBit系统的性能影响。