一种虚拟机文件运行方法,包括以下步骤:在宿主机中预设优化函数库;建立可执行文件中位于优化函数库中的库函数与接口地址的对应关系,并输入至虚拟机;虚拟机装载、解释、运行所述可执行文件的指令;虚拟机根据所述指令中包含的接口地址判断所运行的指令是否在优化函数库中,如果是,则宿主机调用宿主机中优化函数库,本地代码实现所述优化函数库中与所述接口地址对应库函数的功能。上述虚拟机文件运行方法将部分虚拟机处理的库函数通过宿主机本地实现,从而提高虚拟机的处理效率,并且不须要预先定义本地调用指令,也不须要将在虚拟机中运行的指令全部转化为本地代码即可实现。本发明专利技术所述的虚拟机文件运行方法及系统提高了虚拟机处理的效率。
【技术实现步骤摘要】
一种虚拟机文件运行方法及系统
本专利技术涉及计算机技术,特别是涉及一种虚拟机文件运行方法及系统。
技术介绍
虚拟机(Virtual Machine)是运行在物理计算机上的一个应用程序,是通过相关的虚拟机软件在物理计算机上所模拟出的计算机系统,并像真正的计算机那样工作。现有技术中,虚拟机读入一条指令,解释,执行,然后再重复读取下一条指令,解释,执行,如此循环。该方案下,虚拟机运行程序速度较慢,若将虚拟机指令本地实现则可提高其运行速度。在实际使用过程中,有以下几种方法来实现虚拟机的本地实现方法一、虚拟机借助本地调用指令,即“本地接口特定指令”集中实现内部运行的代码与其它语言编写的应用程序和库进行交互,使得任意一个本地应用程序均能嵌入虚拟机中。但“本地接口特定指令”是指令集中专门定义的“本地编程接口”特定指令,必须事先在指令集中专门定义。 此方法能够提高虚拟机的运行速度,但须要限制本地编程接口和本地调用特定指令,且须要在一套实用的指令集中设计一套复杂的编译器,该方法成本较大。例如Java指令集归属于Sim Microsystems公司,使用Java指令集涉及了著作权的问题。方法二、将输入虚拟机中的二进制文件,经过分析后全部转化为本地代码文件,最后由宿主机直接执行本地代码。 此方法比较高效,但将二进制文件全部转本地代码的过程很复杂,实施难度较高。
技术实现思路
基于此,有必要提供一种能提高虚拟机运行速度的虚拟机文件运行方法,此外,还有必要提供一种能提高虚拟机运行速度的虚拟机系统。一种虚拟机文件运行方法,包括以下步骤在宿主机中预设优化函数库,优化函数库由虚拟机中常用的库函数组成;建立可执行文件中位于优化函数库中的库函数与接口地址的对应关系,并输入至虚拟机;虚拟机装载、解释、运行所述可执行文件的指令;虚拟机根据所述指令中包含的接口地址判断所运行的指令是否在优化函数库中, 如果是,则宿主机调用宿主机中优化函数库,本地代码实现所述优化函数库中与所述接口地址对应的库函数的功能;宿主机执行完所述库函数的功能后,返回虚拟机中运行。优选地,所述虚拟机文件运行方法还包括步骤当虚拟机运行的指令不在优化函数库中时,由虚拟机运行所述指令。优选地,所述建立可执行文件中位于优化函数库中的库函数与接口地址的对应关系是根据所述可执行文件的程序链接时产生的符号链接映射文件建立。优选地,所述建立可执行文件中位于优化函数库中的库函数与接口地址的对应关系是在虚拟机装载所述可执行文件的程序时扫描所述程序建立。优选地,所述宿主机调用宿主机中优化函数库,本地代码实现所述优化函数库中与所述接口地址对应的库函数的功能时,宿主机需从虚拟机存储器中获取所述库函数输入和输出的数据,并将所述本地代码实现的结果回存到虚拟机。本专利技术还提供一种能提高虚拟机运行速度的虚拟机系统。一种虚拟机系统,包括虚拟机和宿主机,至少还包括优化函数库预设模块,用于在宿主机中预设优化函数库,优化函数库由虚拟机中常用的库函数组成;预处理模块,用于建立可执行文件中位于优化函数库中的库函数与接口地址的对应关系,并输入至虚拟机;处理模块,用于虚拟机装载、解释、运行所述可执行文件的指令;判断模块,用于虚拟机根据所述指令中包含的接口地址判断所运行的指令是否在优化函数库中;本地实现模块,用于当虚拟机根据所述指令中包含的接口地址判断所运行的指令在优化函数库中时,宿主机调用宿主机中优化函数库,本地代码实现所述优化函数库中与所述接口地址对应的库函数的功能。本地实现结果返回模块,用于宿主机执行完所述库函数的功能后,返回虚拟机中运行。优选地,所述虚拟机系统还包括虚拟机运行模块,用于当虚拟机运行的指令不在优化函数库中时,由虚拟机运行所述指令。优选地,所述预处理模块根据所述可执行文件的程序链接时产生的符号链接映射文件建立可执行文件中位于优化函数库中的库函数与接口地址的对应关系。优选地,所述预处理模块在虚拟机装载可执行文件的程序时扫描所述程序,建立所述可执行文件中位于优化函数库中的库函数与接口地址的对应关系。优选地,所述本地实现模块在宿主机调用宿主机中优化函数库,本地代码实现所述优化函数库中与所述接口地址对应的库函数的功能时,还用于宿主机从虚拟机存储器中获取所述库函数输入和输出的数据,并将所述本地代码实现的结果回存到虚拟机。本专利技术所述虚拟机文件运行方法不须要在指令集中专门定义“本地编程接口,,所需的“本地调用特定指令”,也不须要将在虚拟机中运行的指令全部转化为本地代码即可实现虚拟机快速调用宿主机优化函数库中的函数本地实现,从而提高虚拟机的运行速度。附图说明图1为一个实施例中虚拟机文件运行方法的流程图;图2为一个实施例中虚拟机系统的结构示意图。具体实施方式图1示出了一个实施例中虚拟机文件运行方法,包括以下步骤步骤S101,在宿主机中预设优化函数库,优化函数库由虚拟机中常用的库函数组成;虚拟机是运行在完全隔离环境中的完整计算机系统,可以安装操作系统以及应用程序,并访问网络资源。一般情况下,虚拟机运行程序的速度较宿主机要慢,虚拟机在运行可执行文件的过程中要调用函数库中的一些库函数,所述库函数是一些功能确定的基本操作函数,例如指针操作、字符串操作、内存操作、算术运算等等。将虚拟机中常用的库函数预设在宿主机中,组成预设的优化函数库。所述常用的库函数根据虚拟机使用该库函数的频率来定义,如将使用次数达到一个固定数值后的库函数定义为常用的库函数,所述固定数值为大于等于1的任一整数。步骤S103,建立可执行文件中位于优化函数库中的库函数与接口地址的对应关系,并输入至虚拟机;虚拟机可执行文件中的库函数有一部分位于宿主机优化函数库中,该部分函数需要由宿主机接管运行,通过宿主机本地实现,因此须要建立可执行文件中位于优化函数库中的库函数与接口地址的对应关系,并输入至虚拟机。步骤S104,虚拟机装载、解释、运行所述可执行文件的指令;可执行文件在虚拟机中是以指令的形式表达的,虚拟机通过执行指令来实现可执行文件的功能。在运行可执行文件前需要将可执行文件的指令装载,并解释和处理。步骤S105,虚拟机根据所述指令中包含的接口地址判断所运行的指令是否在优化函数库中,如果是,则进入步骤S109,即宿主机调用宿主机中优化函数库,本地代码实现所述优化函数库中与所述接口地址对应的库函数的功能;如果否,则进入步骤S107,由虚拟机运行所述指令。本实施例中,虚拟机根据所述指令中包含的接口地址判断所运行的指令是否在优化函数库中,如果是,则宿主机调用宿主机中优化函数库,本地代码实现所述优化函数库中与所述接口地址对应的库函数的功能。该方法使由虚拟机运行的库函数由宿主机接管执行,从而提高了虚拟机的处理可执行文件的速度,增强了虚拟机的灵活性及提高了虚拟机运行的效率。在宿主机执行完所述库函数的功能后,返回虚拟机中运行。作为一种优选的方法,当虚拟机运行的指令不在优化函数库中时,即进入步骤 S107,由虚拟机运行所述指令。本实施例中,经过对该指令的判断获知该指令不在宿主机的优化函数库中时,根据预先设置,对其执行不需要进行本地调用,因此虚拟机直接执行该指令即可。作为一种优选的方法,所述建立可执行文件中位于优化函数库中的库函数与接口地址的对应关系是根据所述可执行文件的程序链接时产生的本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:钟衍徽,李志雄,
申请(专利权)人:深圳市江波龙电子有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。