[发明专利]用于动态二进制翻译的对象管理方法有效
申请号: | 200810203035.X | 申请日: | 2008-11-20 |
公开(公告)号: | CN101408848A | 公开(公告)日: | 2009-04-15 |
发明(设计)人: | 管海兵;梁阿磊;顾静辉 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 上海交达专利事务所 | 代理人: | 毛翠莹 |
地址: | 200240*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 动态 二进制 翻译 对象 管理 方法 | ||
技术领域
本发明涉及一种用于动态二进制翻译的对象管理方法,用于在动态二进制翻译器中采用多层次状态字方式对大量同类对象的状态进行管理。本发明属于二进制翻译技术领域。
背景技术
动态二进制翻译是虚拟执行技术中应用最为广泛的方法,是为遗留代码提供移植可能性和提高软件的平台适应性的一种有效手段,它在不需要可执行程序的源代码的情况下,可以动态地将源机器平台上的二进制程序经过转换,运行于其他目标机器平台上。对于动态二进制翻译器自身而言,性能和健壮性是两个重要的衡量指标。所谓性能是指,以源程序在原架构下运行的效率为参照,其在动态二进制翻译器提供的运行环境下的效率损失度越低,翻译器的性能越好。所谓健壮性是指,在源程序出现崩溃等突发情况下,动态二进制翻译器自身的健壮程度。
动态二进制翻译器采用何种内部对象管理方法对上述两个指标都有明显的影响。因为在动态二进制翻译过程中,翻译器不仅要产生各种对象来维护自身的状态和运行过程,同时翻译器会根据源程序的可执行文件,将源程序指令以指令块为单位进行翻译和即时运行,即将源程序指令块翻译成现体系架构下可执行的指令块,随后运行翻译好的指令块。在这一过程中翻译器需要生成大量的对象来维护这些指令块的状态和对应关系等信息。在真正实现时,情况远比上述复杂,现时的各种动态二进制翻译器中,都会在主存中维护一段连续的空间,称之为目标指令块缓存,这一块固定大小的地址空间主要是用来存放翻译器在之前已经翻译完成的指令块,并由一类对象对这些指令块一对一的进行状态维护。当执行过程在某个目标指令块结束,需要跳转到下一个指令块时,如 果翻译器发现之后要运行的指令块已经存在与目标指令块缓存中,则马上运行对应的目标指令块,而无需进行重复翻译,由此大大提高了翻译性能,而对目标指令块的查找过程就是对相应对象群的检索过程。此外,由于这一目标指令块缓存大小固定,当翻译完成的指令块较多,缓存空间不够时,就必须采用某种替换算法对目标指令块缓存进行空间释放和刷新。此时,维护指令块的对象也必须做出相应的状态更改,比如,对象释放或重用。可见,对象管理方法的选用,特别是目标指令块的维护对象的管理方法,对翻译器性能有较大影响。
动态二进制翻译器在执行源程序时,无法获知源程序的具体功能、实现情况和可靠程度,也不应对源程序提出除了运行架构之外的任何假设。所以,在实际翻译运行时,当源程序发生崩溃或灾难性操作时,动态二进制翻译器应有对应的防范措施。因此,翻译器必须拥有足够强大的控制力,实时掌握源程序的运行情况,而其前提是翻译器能有效的控制和了解各种对象的状态,特别是目标指令块对象。所以,翻译器必须采用一种有效、可靠的对象管理方法,提高自身的健壮性。
现今已实现的动态二进制翻译器中,并未对翻译器中的对象管理方法给予足够的重视。多数动态二进制翻译器采用一种常用的对象管理方法,即,直接在堆空间中自由申请对象,并运用链表将同类对象联系在一起。这一方式,严重制约了对象检索和释放等操作的效率,并降低了翻译器的控制力度。
因此需要发明一种新的用于动态二进制翻译的对象管理方法,提高动态二进制翻译器的性能和健壮性。
发明内容
本发明的目的在于针对现有技术的不足和动态二进制翻译器的特点,提供一种用于动态二进制翻译的对象管理方法,提高动态二进制翻译器的性能和健壮性,以期减少源程序运行效率的损失,并为之后动态二进制翻译器增加自身的内存对象空间管理提供前提。
为实现上述目的,本发明摈弃常用的对象管理方法,重新设计了一种采用多层次状态字方式的对象管理方法。采用多层次状态字方式,用连续的二进制位 的值标识同类对象状态,其中每位二进制位标识一个对象的两个状态。用多个状态字层标识数量庞大的同类对象的状态,即将状态字层分成上区段和下区段,下区段包含标识对象状态的状态字集合,由多个状态字连续横向排列实现;上区段可以由多个状态字层实现,是标识状态字状态的状态字集合,每个状态字层都由多个状态字连续横向排列组成,再将每个状态字层纵向排列。由此将对象的存储空间完全置于动态二进制翻译器的控制之下,运用连续空间存放同类对象,有效提高翻译器对空间利用和对象操作的控制,降低性能损失。
本发明的用于动态二进制翻译的对象管理方法的具体步骤如下:
1、多层次状态字管理架构
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810203035.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:树节点加载系统及其方法
- 下一篇:具有生理感测模块的输入装置