ISSN 1000-1239 CN 11-1777/TP

计算机研究与发展 ›› 2019, Vol. 56 ›› Issue (8): 1783-1791.doi: 10.7544/issn1000-1239.2019.20170871

• 系统结构 • 上一篇    下一篇

动态二进制翻译中库函数处理的优化

傅立国,庞建民,王军,张家豪,岳峰   

  1. (数学工程与先进计算国家重点实验室 郑州 450001) (flg_njlg@163.com)
  • 出版日期: 2019-08-01
  • 基金资助: 
    国家自然科学基金项目(61472447)

Optimization of Library Function Disposing in Dynamic Binary Translation

Fu Liguo, Pang Janming, Wang Jun, Zhang Jiahao, Yue Feng   

  1. (State Key Laboratory of Mathematical Engineering and Advanced Computing, Zhengzhou 450001)
  • Online: 2019-08-01

摘要: 在无源跨平台移植的研究中,效率是制约动态二进制翻译技术发展的主要瓶颈.使用本地函数封装替换的翻译处理方式可以有效提高二进制翻译的性能.然而在实际应用中,随着源程序中库函数调用次数或者翻译器支持库函数数量的增长,库函数处理过程的无用查询开销随之增长,减弱了该方法的优化效果.针对此类问题,结合动态二进制库函数处理过程内在动静结合的性质,提出了将查询信息静态预处理,使用散列函数实现查询过程的优化方法,实现了源程序中库函数地址到相对应处理函数的快速映射,降低了查询开销.基于动态二进制翻译器QEMU实现并测试了优化方法,通过实验验证了该方法降低库函数处理过程中查询开销的有效性.

关键词: 动态二进制翻译, 库函数处理, 查询开销优化, 静态预处理, 散列函数

Abstract: In the research of cross-platform migration without source code, efficiency is the main bottleneck restricting the development of dynamic binary translation technology. Using the method of disposing the local function can effectively improve the performance of binary translation by jacketing and replacing. However, in practical applications, as the number of library function calls in the source program or the number of the library function supported by translators increasing, the benefit of using disposing the local function is on decrease. The querying useless overhead in library function disposing grows which weakens and reduces the optimization effect of the method of disposing the local function. In order to address this kind of problem, a method is proposed based on the properties combined with dynamic and static translation. It is based on the characteristic of dynamic binary translation and the using of disposing the local function. The overhead for the query decreases with the method by preprocessing the query table and realizing the query with Hash function. It can map the source program addresses to corresponding processing function rapidly. Realized on a dynamic translator QEMU, the optimization method is implemented and tested. Experiments verify the effectiveness of this method to reduce query overhead in the process of using disposing the local function with dynamic translation.

Key words: dynamic binary translation, local function disposing, query overhead optimization, static pre-processing, Hash function

中图分类号: