《一种程序执行方法、程序管理器和虚拟机.pdf》由会员分享,可在线阅读,更多相关《一种程序执行方法、程序管理器和虚拟机.pdf(15页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103186414 A(43)申请公布日 2013.07.03CN103186414A*CN103186414A*(21)申请号 201110445266.3(22)申请日 2011.12.27G06F 9/46(2006.01)G06F 9/455(2006.01)(71)申请人联想(北京)有限公司地址 100085 北京市海淀区上地信息产业基地创业路6号(72)发明人郭琦 陆见微 李佳 路遥宁晓魁 管慧娟 王竹强(74)专利代理机构北京集佳知识产权代理有限公司 11227代理人逯长明(54) 发明名称一种程序执行方法、程序管理器和虚拟机(57) 摘要本发明提供了一。
2、种程序执行方法、程序管理器和虚拟机,所述方法包括:接收到程序执行请求时,获取需要执行的基于第二硬件架构的第二程序;判断所述第二程序调用的函数是否为第一硬件架构库文件中的预定函数;如果是,则触发所述第一硬件架构按照所述预定函数执行所述第二程序中的指令。通过本发明实施例,提高了程序的执行效率。(51)Int.Cl.权利要求书2页 说明书9页 附图3页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书9页 附图3页(10)申请公布号 CN 103186414 ACN 103186414 A1/2页21.一种程序执行方法,其特征在于,应用于运行在第一硬件架构中的程序管理器,。
3、所述程序管理器是基于第二硬件架构所创建的,所述方法包括:所述程序管理器接收到程序执行请求时,获取需要执行的基于第二硬件架构的第二程序;判断所述第二程序调用的函数是否为第一硬件架构库文件中的预定函数;如果是,则触发所述第一硬件架构按照所述预定函数执行所述第二程序中的指令。2.根据权利要求1所述的方法,其特征在于,当所述第二程序调用的函数不是第一硬件架构库文件中的预定函数时,所述方法还包括:将所述第二程序中的第二指令以及所述调用函数翻译为所述基于第一硬件架构的第一指令和第一函数,并触发所述第一硬件架构在库文件中调用该第一函数,执行所述第一指令。3.根据权利要求1所述的方法,其特征在于,所述获取需要。
4、执行的基于第二硬件架构的第二程序具体为:获取需要执行的基于第二硬件架构的第二程序,并确定所述第二程序中的指令及其调用的函数。4.根据权利要求1所述的方法,其特征在于,所述第一硬件架构为X86平台,所述第二硬件架构为ARM平台。5.一种程序执行方法,其特征在于,应用于运行在第一硬件架构中,且具有第二操作系统的虚拟机中,所述虚拟机是基于第二硬件架构所创建的,所述方法包括:所述虚拟机接收到程序执行请求时,获取需要执行的基于第二硬件架构的第二程序;判断所述第二程序调用的函数是否为第一硬件架构库文件中的预定函数;如果是,则触发所述第一硬件架构按照所述预定函数执行所述第二程序中的指令。6.一种程序管理器,。
5、其特征在于,运行在第一硬件架构中,且基于第二硬件架构所创建的,包括:第一获取模块,用于接收到程序执行请求时,获取需要执行的基于第二硬件架构的第二程序;第一判断模块,用于判断所述第二程序调用的函数是否为第一硬件架构库文件中的预定函数;第一触发模块,用于当所述判断模块判断结果为是时,触发所述第一硬件架构按照所述预定函数执行所述第二程序中的指令。7.根据权利要求6所述的装置,其特征在于,所述装置还包括:第一翻译模块,用于当所述判断模块为否时,将所述第二程序中的第二指令以及所述调用函数翻译为所述基于第一硬件架构的第一指令和第一函数,并触发所述第一硬件架构按照所述第一函数执行所述第一指令。8.根据权利要。
6、求6所述的装置,其特征在于,所述第一获取模块具体用于获取需要执行的基于第二硬件架构的第二程序,并确定所述第二程序中的第二指令及其调用的函数。9.根据权利要求6所述的装置,其特征在于,所述第一硬件架构为X86平台,所述第二硬件架构为ARM平台。10.一种虚拟机,其特征在于,运行在第一硬件架构中,具有第二操作系统,且基于第二权 利 要 求 书CN 103186414 A2/2页3硬件架构所创建的,包括:第二获取模块,用于接收到程序执行请求时,获取需要执行的基于第二硬件架构的第二程序;第二判断模块,用于判断所述第二程序调用的函数是否为第一硬件架构库文件中的预定函数;第二触发模块,用于当所述判断模块判。
7、断结果为是时,触发所述第一硬件架构,由所述第一硬件架构按照所述预定函数执行所述第二程序中的指令。权 利 要 求 书CN 103186414 A1/9页4一种程序执行方法、 程序管理器和虚拟机技术领域0001 本发明涉及计算机技术领域,更具体的说是涉及一种程序执行方法、程序管理器和虚拟机。背景技术0002 X86架构和ARM架构是现有的两种基于不同类型的处理器而形成的计算机硬件架构,由于计算机硬件架构不同,在软件执行过程中其可调用的指令集也不同,因此通常情况下在一个硬件架构上并不能运行另一个硬件架构的程序。0003 但是随着计算机技术的发展,由于基于不同硬件架构的指令集而编译的程序各有自己的优势。
8、,因此在一个硬件架构中常常有运行基于另一个硬件架构的程序的需求,例如基于ARM架构编译的游戏程序,需要在X86架构上进行调试运行等。0004 现有的程序执行方法通常是通过计算机模拟器来执行,以X86架构上运行基于ARM架构的ARM程序为例,当需要执行ARM程序时启动模拟器,模拟器执行所述ARM程序,但是由于ARM程序实际还是运行在X86架构上,其需要通过物理的寄存器以及处理器进行数据传输和指令处理,因此执行所述ARM程序时,需要将ARM程序中的ARM指令翻译成基于X86架构的X86指令后才能执行。0005 由以上过程可以看出,在X86架构中执行ARM程序时,需要进行指令的翻译,而通常情况下为了。
9、满足程序的通用性,一个ARM指令会被翻译成多个X86指令,使得指令增多,因而就会降低程序的执行速率。发明内容0006 有鉴于此,本发明提供了一种程序执行方法、程序管理器和虚拟机,用以解决现有的程序执行速率较低的技术问题。0007 为实现上述目的,本发明提供如下技术方案:0008 一种程序执行方法,应用于运行在第一硬件架构中的程序管理器,所述程序管理器是基于第二硬件架构所创建的,所述方法包括:0009 所述程序管理器接收到程序执行请求时,获取需要执行的基于第二硬件架构的第二程序;0010 判断所述第二程序调用的函数是否为第一硬件架构库文件中的预定函数;0011 如果是,则触发所述第一硬件架构按照。
10、所述预定函数执行所述第二程序中的指令。0012 优选地,当所述第二程序调用的函数不是第一硬件架构库文件中的预定函数时,所述方法还包括:0013 将所述第二程序中的第二指令以及所述调用函数翻译为所述基于第一硬件架构的第一指令和第一函数,并触发所述第一硬件架构在库文件中调用该第一函数,执行所述第一指令。说 明 书CN 103186414 A2/9页50014 优选地,所述获取需要执行的基于第二硬件架构的第二程序具体为:0015 获取需要执行的基于第二硬件架构的第二程序,并确定所述第二程序中的指令及其调用的函数。0016 优选地于,所述第一硬件架构为X86平台,所述第二硬件架构为ARM平台。0017。
11、 一种程序执行方法,应用于运行在第一硬件架构中,且具有第二操作系统的虚拟机中,所述虚拟机是基于第二硬件架构所创建的,所述方法包括:0018 所述虚拟机接收到程序执行请求时,获取需要执行的基于第二硬件架构的第二程序;0019 判断所述第二程序调用的函数是否为第一硬件架构库文件中的预定函数;0020 如果是,则触发所述第一硬件架构按照所述预定函数执行所述第二程序中的指令。0021 一种程序管理器,运行在第一硬件架构中,且基于第二硬件架构所创建的,包括:0022 第一获取模块,用于接收到程序执行请求时,获取需要执行的基于第二硬件架构的第二程序。0023 第一判断模块,用于判断所述第二程序调用的函数是。
12、否为第一硬件架构库文件中的预定函数。0024 第一触发模块,用于当所述判断模块判断结果为是时,触发所述第一硬件架构按照所述预定函数执行所述第二程序中的指令。0025 优选地,所述装置还包括:0026 第一翻译模块,用于当所述判断模块为否时,将所述第二程序中的第二指令以及所述调用函数翻译为所述基于第一硬件架构的第一指令和第一函数,并触发所述第一硬件架构按照所述第一函数执行所述第一指令。0027 优选地,所述第一获取模块具体用于获取需要执行的基于第二硬件架构的第二程序,并确定所述第二程序中的第二指令及其调用的函数。0028 优选地,所述第一硬件架构为X86平台,所述第二硬件架构为ARM平台。002。
13、9 一种虚拟机,运行在第一硬件架构中,具有第二操作系统,且基于第二硬件架构所创建的,包括:0030 第二获取模块,用于接收到程序执行请求时,获取需要执行的基于第二硬件架构的第二程序;0031 第二判断模块,用于判断所述第二程序调用的函数是否为第一硬件架构库文件中的预定函数;0032 第二触发模块,用于当所述判断模块判断结果为是时,触发所述第一硬件架构,由所述第一硬件架构按照所述预定函数执行所述第二程序中的指令0033 经由上述的技术方案可知,与现有技术相比,本发明提供了一种程序执行方法、程序管理器和虚拟机,在接收到程序执行请求时,获取基于第二硬件架构的第二程序,当判断出该第二程序的调用函数即为。
14、第一硬件架构库文件中的预定函数,则触发第一硬件架构从自身库文件中确定该预定函数,并按照该预定函数执行所述第二程序的指令,因此减少了翻译步骤,减少了将一条第二程序的指令翻译为多条第一指令的操作,因此也就提高了程序执行效率。说 明 书CN 103186414 A3/9页6附图说明0034 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。0035 图1为本发明一种程序执行方法实施例1的流程图;00。
15、36 图2为本发明一种程序执行方法实施例2的流程图;0037 图3为本发明一种程序管理器实施例1的结构示意图;0038 图4为本发明一种程序管理器实施例2的结构示意图。具体实施方式0039 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0040 本发明实施例公开了一种本发明提供了一种程序执行方法、程序管理器和虚拟机,在接收到程序执行请求时,获取基于第二硬件架构的第二程序,当判断出该第。
16、二程序的调用函数即为第一硬件架构库文件中的预定函数,则触发第一硬件架构从自身库文件中确定该预定函数,并按照该预定函数执行所述第二程序的指令,因此减少了翻译步骤,减少了将一条第二程序的指令翻译为多条第一指令的操作,因此也就提高了程序执行效率。0041 参见图1,示出了本发明一种程序执行方法实施例1的流程图,该方法应用于运行在第一硬件架构中的程序管理器中,所述程序管理器是基于第二硬件架构所创建的,该方法可以包括以下几个步骤:0042 步骤101:所述程序管理器接收到程序执行请求时,获取需要执行的基于第二硬件架构的第二程序。0043 本实施例中,硬件架构是指基于处理器以及其他的计算机硬件而形成的程序。
17、执行处理单元,程序的运行需要建立在硬件结构的基础之上。不同的计硬件架构,其指令集也不相同。例如X86架构属于CISC(Complex InstructionSet Computer,复杂指令集计算机)架构,ARM架构是属于RISC(reducedinstruction set computer,精简指令集计算机)架构,由于不同的硬件指令集不同,基于不同硬件架构编译的程序也不相同。0044 所述的程序管理器可以是指运行在第一硬件架构上的软件程序,其可以模拟第二硬件架构的处理器的功能和指令系统,使第一硬件架构能够运行基于第二硬件架构的软件程序,因此该程序管理器是基于第二硬件架构所创建的。在实际应用。
18、中,所述的程序管理器例如可以是指计算机架构模拟器。0045 当需要在第一硬件架构上运行基于第二硬件架构的第二程序时,也即基于第二硬件架构编译的第二程序,例如一些游戏程序、应用程序等,需要触发程序管理器运行,由程序管理器对所述第二程序进行处理以便于其能够在第一硬件架构上执行。0046 其中,所述程序管理器获取所述第二程序后,需要确定所述第二程序中的指令以说 明 书CN 103186414 A4/9页7及其调用的函数。程序是由指令组成的,程序执行过程即是执行指令的过程。由于每一个可执行的程序都会有依赖的库文件,包含由多个程序同时使用的代码和数据,也即程序执行过程中需要依赖库函数,例如用于进行数据运。
19、算的加法函数、减法函数等。某些指令执行过程中需要调用相应的函数来进行数据处理。由于所述第二程序是基于第二硬件架构而编译的,因此其调用的库文件中的函数也是基于第二硬件架构的函数。0047 步骤102:判断所述第二程序调用的函数是否为第一硬件架构库文件中的预定函数,如果是,则进入步骤103,如果否,则进入步骤104。0048 函数虽然也是基于不同硬件架构所创建的,但是不同的硬件架构中有些函数所实现的功能是相同的,因此可以基于不同硬件架构的程序的指令要求进行相同的数据处理过程,例如一些用于数学运算的数学库函数。因此本实施例中首先判断所述第二程序调用的函数是否为第一硬件架构库文件中的预定函数,也即是判。
20、断第二程序调用的函数是否与第一硬件架构库文件中的预定函数相同。0049 所述预定函数是分别在第一程序和第二程序执行过程中,可以实现相同功能的库函数,例如实现数学运算的库函数。0050 步骤103:触发所述第一硬件架构按照所述预定函数执行所述第二程序中的指令。0051 当判断出第二程序调用的函数为第一硬件架构库文件中的预定函数,也即是说第二程序调用的函数与第一硬件架构库文件中的预定函数可实现的功能相同。则可以直接触发第一硬件架构从库文件中确定该预定函数,按照所述预定函数执行该第二程序指令,也即由第一硬件架构调用该预定函数进行数据处理。0052 第一硬件架构执行该第二程序的指令进行数据处理后的数据。
21、结果,第一硬件架构还可以将其反馈给程序管理器,以便于程序管理器依据该数据结果继续进行后续的第二程序的指令处理。0053 步骤104:将所述第二程序中的指令以及所述调用函数翻译为所述基于第一硬件架构的第一指令和第一函数,并触发所述第一硬件架构在库文件中确定该第一函数,按照该第一函数执行所述第一指令。0054 如果所述第二程序调用的函数不是第一硬件架构库文件中的预定函数,也即该第二程序调用的函数与所述预定函数不同,因此第一硬件架构不能直接调用自己库文件中的函数进行第二程序指令要求的数据处理,且由于指令集不同,第二程序不能直接在第一硬件架构中运行,仍需要程序管理器执行翻译操作,将第二程序中的指令翻译。
22、为基于第一硬件架构的第一指令,也即翻译为第一硬件架构可以识别并执行的指令,同时由于第二程序调用的函数也是基于第二硬件架构的函数,因此也需要将其调用的函数翻译为第一函数,此处将第二程序调用的函数翻译为第一函数是指将调用的函数代码翻译为可以实现相同功能的第一函数的代码,以便于第一硬件架构可识别并能够从自身库文件中调用,指令的翻译也是指代码的翻译过程。0055 将第二程序的指令和函数翻译为第一指令和第一函数后,即可触发第一硬件架构执行该第二程序指令,从其自身的库文件中确定该第一函数,并按照该第一函数执行所述第一指令,以进行数据处理。0056 在实际应用中,上文所述的第一硬件架构可以具体为X86架构,。
23、所述的第二硬件说 明 书CN 103186414 A5/9页8架构为ARM架构。X86架构为现有的计算机、个人电脑、笔记本等常用的硬件架构,而ARM架构由于其属于RISC架构,效率高于X86架构,很多游戏程序或者其他的应用程序都是基于ARM架构编译的,但是又需要在X86架构中运行或调试,尽管X86架构和ARM架构的指令集不同,但是有些库函数是相同的,可以实现相同的功能,例如数学库函数。因此采用本发明的实施例方案,程序管理器是运行在X86架构中的软件,其是基于ARM架构编译,即可以模拟ARM架构运行环境,并可将ARM程序翻译为X86程序,以实现在X86架构中执行该ARM程序。在需要执行该ARM程。
24、序时,程序管理器首先获取ARM程序的ARM指令及其调用的函数,若其调用的函数与X86架构的预定函数相同,则无需翻译ARM指令,直接触发X86架构,从自身库文件中确定该预定函数,并执行该ARM指令,即可得到数据处理结果。如果与X86架构的预定函数不相同,则再将ARM指令翻译为X86指令,调用函数也翻译为X86架构中的第一函数,然后再触发X86架构从自身库文件中确定该第一函数,以执行翻译后的X86指令。由于通过判断第二程序的调用函数是否为X86架构库文件中的函数,可以减少指令的翻译过程,因此也就避免了翻译后的X86指令较多的问题,从而即可提高程序的执行效率。0057 在本实施例中,程序管理器接收到。
25、程序执行请求时,获取基于第二硬件架构的第二程序,当判断出该第二程序的调用函数即为第一硬件架构库文件中的预定函数,则触发第一硬件架构从自身库文件中确定该预定函数,并按照该预定函数执行所述第二程序的指令,因此减少了翻译步骤,减少了将一条第二程序的指令翻译为多条第一指令的操作,因此也就提高了程序执行效率。0058 参见图2,示出了本发明一种程序执行方法实施例2的流程图,该方法应用于运行在第一硬件架构中,且具有第二操作系统的虚拟机中,所述虚拟机是基于第二硬件架构所创建的,所述方法可以包括以下几个步骤:0059 步骤201:所述虚拟机接收到程序执行请求时,获取需要执行的基于第二硬件架构的第二程序。006。
26、0 虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,本实施例所述的虚拟机是基于所述第二硬件架构所创建的,具有第二硬件架构支持运行的第二操作系统。0061 所述虚拟机的第二操作系统可以与所述第一硬件架构下运行的第一操作系统相同,也可以不同。由于不同的硬件架构其能够支持运行的操作系统可能不同,一些硬件架构并不能支持运行某些操作系统。0062 程序是在硬件架构的处理器中执行的,但是需要操作系统控制运行,当第二硬件架构不支持运行在第一硬件架构中的操作系统,而又需要在第一硬件架构下执行基于第二硬件架构编译的程序时,则可以通过创建虚拟机,由虚拟机模拟第二硬件架构的。
27、运行环境。0063 获取该第二程序后,即可确定第二程序指令及其可能调用的函数。0064 步骤202:判断所述第二程序调用的函数是否为第一硬件架构库文件中的预定函数,若是,则进入步骤203,若否,则进入步骤204。0065 获取到第二程序后,确定第二程序中的指令及其调用的函数,然后首先判断第二程序调用的函数是否为第一硬件架构库文件中的预定函数,也即判断该第二程序调用的函数是否与预定函数相同。所述预定函数是分别在第一程序和第二程序执行过程中,可以实现相同功能的库函数,例如实现数学运算的库函数,可以预先根据基于第一硬件架构的库说 明 书CN 103186414 A6/9页9函数和基于第二硬件架构的库。
28、函数。来分别确定哪些库函数是可以实现相同功能的库函数,即确定为预定函数。0066 步骤203:触发所述第一硬件架构按照所述预定函数执行所述第二程序中的指令。0067 在判断出第二程序调用的函数为第一硬件架构库文件中的预定函数,也即是说第二程序调用的函数与第一硬件架构库文件中的预定函数可实现的功能相同。则触发第一硬件架构,由所述第一硬件架构从其库文件中确定该预定函数,按照所述预定函数执行该第二程序指令,也即由第一硬件架构调用该预定函数进行数据处理。0068 第一硬件架构执行该第二程序的指令进行数据处理后的数据结果,第一硬件架构还可以将其反馈给虚拟机,以便于虚拟机依据该数据结果继续进行后续的第二程。
29、序的指令处理。0069 步骤204:将所述第二程序中的指令以及所述调用函数翻译为所述基于第一硬件架构的第一指令和第一函数,并触发所述第一硬件架构在库文件中确定该第一函数,按照该第一函数执行所述第一指令。0070 如果所述第二程序调用的函数不是第一硬件架构库文件中的预定函数,也即该第二程序调用的函数与所述预定函数不同,因此第一硬件架构不能直接调用自己库文件中的函数进行第二程序指令要求的数据处理。由于指令集不同,第二程序不能直接在第一硬件架构中运行,且所述虚拟机其模拟的是第二硬件架构的系统功能,其物理的执行过程还是由第一硬件架构执行的,为了能够使得第一硬件架构可以执行该第二程序,需要将第二程序指令。
30、及其调用的函数翻译为第一硬件架构可以识别的代码,也即将第二程序指令翻译成第一指令,调用的函数翻译为第一程序。此处将第二程序调用的函数翻译为第一函数是指将调用的函数代码翻译为可以实现相同功能的第一函数的代码,以便于第一硬件架构可识别并能够从自身库文件中调用,指令的翻译也是指代码的翻译过程。0071 将第二程序的指令和函数翻译为第一指令和第一函数后,即可触发第一硬件架构执行该第二程序指令,从其自身的库文件中确定该第一函数,并按照该第一函数执行所述第一指令,以进行数据处理。0072 在实际应用中,上文所述的第一硬件架构可以具体为X86架构,所述的第二硬件架构为ARM架构,所述虚拟机为运行在X86架构。
31、中的,基于ARM架构所创建的,其可以完整模拟ARM架构的硬件系统功能。0073 在本实施例中,通过运行在第一硬件架构中的虚拟机接收到程序执行请求时,获取基于第二硬件架构的第二程序,当判断出该第二程序的调用函数即为第一硬件架构库文件中的预定函数,则触发第一硬件架构从自身库文件中确定该预定函数,并按照该预定函数执行所述第二程序的指令,因此减少了翻译步骤,减少了将一条第二程序的指令翻译为多条第一指令的操作,因此也就提高了程序执行效率。0074 与本发明一种程序执行方法实施例1相对应,本发明还提供了一种程序管理器,所述程序管理器是基于第二硬件架构所创建的,并运行在第一硬件架构中,即该程序管理器可以在第。
32、一硬件架构中模拟与所述第一硬件架构指令不兼容或者体系不同的第二硬件架构,参见图3,为所述程序管理器实施例1的结构示意图,0075 第一获取模块301,用于接收到程序执行请求时,获取需要执行的基于第二硬件架说 明 书CN 103186414 A7/9页10构的第二程序。0076 其中,所述第一获取模块301具体用于获取需要执行的基于第二硬件架构的第二程序,并确定所述第二程序中的第二指令及其调用的函数。程序是由指令组成的,程序执行过程即是执行指令的过程。由于每一个可执行的程序都会有依赖的库文件,包含由多个程序同时使用的代码和数据,也即程序执行过程中需要依赖库函数,例如用于进行数据运算的加法函数、减。
33、法函数等。某些指令执行过程中需要调用相应的函数来进行数据处理。由于所述第二程序是基于第二硬件架构而编译的,因此其调用的库文件中的函数也是基于第二硬件架构的函数。0077 第一判断模块302,用于判断所述第二程序调用的函数是否为第一硬件架构库文件中的预定函数。0078 函数虽然也是基于不同硬件架构所创建的,但是不同的硬件架构中有些函数所实现的功能是相同的,因此可以基于不同硬件架构的程序的指令要求进行相同的数据处理过程,例如一些用于数学运算的数学库函数。因此本实施例中所述判断模块302判断所述第二程序调用的函数是否为第一硬件架构库文件中的预定函数,也即是判断第二程序调用的函数是否与第一硬件架构库文。
34、件中的预定函数相同。0079 所述预定函数是分别在第一程序和第二程序执行过程中,可以实现相同功能的库函数,例如实现数学运算的库函数。0080 第一触发模块303,用于当所述判断模块判断结果为是时,触发所述第一硬件架构按照所述预定函数执行所述第二程序中的指令。0081 当判断出第二程序调用的函数为第一硬件架构库文件中的预定函数,也即是说第二程序调用的函数与第一硬件架构库文件中的预定函数可实现的功能相同。则可以直接触发第一硬件架构从库文件中确定该预定函数,按照所述预定函数执行该第二程序指令,也即由第一硬件架构调用该预定函数进行数据处理。0082 所述程序管理器还包括:0083 第一翻译模块304,。
35、用于当所述判断模块为否时,将所述第二程序中的第二指令以及所述调用函数翻译为所述基于第一硬件架构的第一指令和第一函数,并触发所述第一硬件架构按照所述第一函数执行所述第一指令。0084 此处将第二程序调用的函数翻译为第一函数是指将调用的函数代码翻译为可以实现相同功能的第一函数的代码,以便于第一硬件架构可识别并能够从自身库文件中调用,指令的翻译也是指代码的翻译过程。0085 将第二程序的指令和函数翻译为第一指令和第一函数后,即可触发第一硬件架构执行该第二程序指令,从其自身的库文件中确定该第一函数,并按照该第一函数执行所述第一指令,以进行数据处理。0086 在实际应用中,本实施例所述的程序管理器可以具体是指计算机架构模拟器,用以实现在一硬件架构下能够运行其他硬件架构上的软件。上文所述的第一硬件架构可以具体为X86架构,所述的第二硬件架构为ARM架构。当然所述的第一硬件架构或者第二硬件架构还可以是其他类型的硬件架构,本发明并不对此做具体限定。0087 在本实施例中,程序管理器接收到程序执行请求时,获取基于第二硬件架构的第二程序,当判断出该第二程序的调用函数即为第一硬件架构库文件中的预定函数,则触发说 明 书CN 103186414 A10。