一种虚拟机间共享算法资源的方法及系统与流程

文档序号:32392294发布日期:2022-11-30 08:47阅读:114来源:国知局
一种虚拟机间共享算法资源的方法及系统与流程
一种虚拟机间共享算法资源的方法及系统
1.本技术是分案申请,原申请的申请号是202111453471.4,原申请日是2021年12月01日,原申请的全部内容通过引用结合在本技术中。
技术领域
2.本技术涉及计算机操作系统领域,特别涉及一种虚拟机间共享资源的方法、系统、计算设备及存储介质。


背景技术:

3.微内核实时操作系统架构包括多个虚拟机,虚拟机由微内核管理,实现从硬件层面上的安全隔离,每个虚拟机可以单独的运行应用程序。在同一台设备上,为了满足现场业务需求,微内核实时操作系统通常会运行若干个虚拟机,每个虚拟机运行具体的业务代码。
4.在各种应用场景中,特别是工业生产现场,为了控制各种外设,采集各种数据,与其他终端进行联动,需要各种总线的支持,需要通信协议栈的支持,例如控制伺服驱动,需要支持以太网控制自动化技术(ethercat)协议;汽车电子部件之间通信,需要支持j1939协议;现场数据采集相关控制,需要支持modbustcp协议等。所以在这些应用场景内,虚拟机需要实现对应的协议栈来满足应用的需求。
5.基于相同的现场业务需求不同的虚拟机,通常会需要支持相同的通信协议,例如每个虚拟机都需要支持ethercat来驱动伺服电机,或者每个虚拟机都要支持j1939来与汽车配件通信等。这样就会出现一台设备中,每一个虚拟机应用都要调用多种相同的协议栈实现,造成资源的重复的,不必要的分配,加大了对用户应用程序的约束。
6.同时,基于相同的现场业务需求的不同的虚拟机,通常会使用同一范畴内的软件算法支持。例如数字机床控制器应用中,每个虚拟机都可能会调用运动控制库算法;精密计算应用中,每个虚拟机都可能调用eigen或numpy等数学库的算法;文件读写操作应用中,每个虚拟机都可能调用各种不同文件的编解码算法。
7.这样就会出现一台设备中,每一个虚拟机应用都要调用多种相同的软件算法,造成资源的重复的,不必要的分配,加大了对用户应用程序的约束。


技术实现要素:

8.有鉴于此,本技术提供了一种虚拟机间共享资源的方法、系统、计算设备和存储介质,虚拟机包括运行于微内核之上的业务虚拟机、协议栈虚拟机和算法虚拟机,业务虚拟机基于当前运算的类型分发给协议栈虚拟机、算法虚拟机或自身分别进行运算,实现了共享协议栈资源和算法资源,在有限的处理器运算能力下提高各业务虚拟机的算力,还提高业务的相应速度,且在电磁环境恶劣的工业控制环境下通过把硬件控制相关的协议栈功能在协议栈虚拟机上实现,相对于在虚拟机管理器或微内核实现,降低对虚拟机管理器或微内核的影响,提高了微内核实时操作系统的稳定性。
9.本技术实施例的第一方面提供了一种虚拟机间共享资源的方法,所述虚拟机包括
运行在微内核上的协议栈虚拟机、算法虚拟机和多个业务虚拟机,每个业务虚拟机的运算被分割多个子运算,所述方法包括:第一业务虚拟机根据当前的子运算的类型进行运算分发,其中,把共享协议栈的子运算向协议栈虚拟机申请运行,把共享算法的子运算向算法虚拟机申请运行,把剩下的子运算留在自身运行;协议栈虚拟机接收到申请后运行申请的第一协议栈,并实时把中间结果和/或运行结果反馈至第一业务虚拟机,以使第一业务虚拟机实时更新业务控制;算法虚拟机接收到申请后运行申请的第一共享算法,并把运行结果反馈至第一业务虚拟机。
10.在一些实施例中,共享协议栈对涉及的硬件设备进行操作。在一些实施例中,协议栈虚拟机和多个业务虚拟机运行在同一个硬件处理器上。
11.由上,通过业务虚拟机基于当前运算的类型分发给协议栈虚拟机、算法虚拟机或自身分别进行运算,实现了共享协议栈资源和算法资源,在有限的处理器运算能力下提高各业务虚拟机的算力,还提高业务的相应速度,且在电磁环境恶劣的工业控制环境下通过把硬件控制相关的协议栈功能在协议栈虚拟机上实现,相对于在虚拟机管理器或微内核实现,降低对虚拟机管理器或微内核的影响,提高了微内核实时操作系统的稳定性。
12.在第一方面的一种可能实施方式中,还包括:协议栈虚拟机根据其业务逻辑配置共享协议栈库,所述共享协议栈库包括运行各协议栈的代码库;协议栈虚拟机生成共享协议栈表,并将所述共享协议栈库中的各协议栈注册进所述共享协议栈表,所述共享协议栈表的每个表项包括协议栈的标识、具有该协议栈运行权限的业务虚拟机列表、该协议栈的接口函数与回调函数和涉及的硬件设备的信息。
13.由上,通过共享协议栈库和共享协议表对各业务虚拟机共享的协议栈进行统一管理和控制。
14.在第一方面的一种可能实施方式中,协议栈虚拟机接收到申请后运行申请的第一协议栈,包括:协议栈虚拟机基于申请信息利用共享协议栈表确定第一业务虚拟机是否具有第一协议栈的运行权限;当第一业务虚拟机具有所述第一协议栈的运行权限时,确定所述第一协议栈的接口函数;以及通过该接口函数运行所述共享协议栈库中的所述第一协议栈的代码。
15.由上,通过共享协议栈的接口函数运行共享协议栈,使各业务虚拟机无需关心共享协议栈的如何运行,专注于其业务代码运行。
16.在第一方面的一种可能实施方式中,所述实时把运行中间结果和/或结果反馈至第一业务虚拟机,包括:协议栈虚拟机在运行所述共享协议栈库中的所述第一协议栈时,为所述第一协议栈分配足够的资源并承担所有的操作,包括硬件设备的操作;在所述第一协议栈正常运行后,由所述第一协议栈基于所述共享协议栈表确定所述第一协议栈的回调函数;以及由所述第一协议栈通过该回调函数把所述第一协议栈的运行结果反馈至第一业务虚拟机。
17.由上,通过共享协议栈的回调函数实时反馈运行结果,实现业务虚拟机的业务控制实时更新。
18.在第一方面的一种可能实施方式中,一种虚拟机间共享资源的方法还包括:所述协议栈虚拟机配置每个共享的协议栈的运行信号量;所述协议栈虚拟机在运行所述第一协议栈前,获取所述运行信号量;以及所述协议栈虚拟机在运行完所述第一协议栈后,释放所
述运行信号量。
19.由上,通过信号量提高共享的协议栈的运行安全。
20.在第一方面的一种可能实施方式中,在协议栈虚拟机的业务逻辑中配置共享协议栈库之前,一种虚拟机间共享协议栈资源的方法还包括:协议栈虚拟机从虚拟机支持的协议栈中,选择协议栈虚拟机支持且业务逻辑需要的协议栈,用来配置所述共享协议栈库。
21.由上,通过协议栈虚拟机配置共享协议栈库,使共享协议库满足业务需要。
22.在第一方面的一种可能实施方式中,一种虚拟机间共享资源的方法还包括:协议栈虚拟机通过调用通信接口与第一业务虚拟机进行通信,其中,该通信接口至少通过共享内存进行通信;该通信接口还对通信数据进行数据编解码和正确性校验。在一些实施例中,还基于共享内存与套接字或ipc的组合通信。
23.由上,通过配置的通信接口实现协议栈虚拟机与业务虚拟机之间的标准化通信,特别选择共享内存的方式,相对于套接字更加实时,保证对外部设备的实时控制。
24.在第一方面的一种可能实施方式中,一种虚拟机间共享资源的方法还包括:算法虚拟机根据其业务逻辑配置共享算法库,所述共享算法库包括运行各共享算法的代码库;算法虚拟机生成共享算法表,并将所述共享算法库中的各算法注册进所述共享算法表;所述共享算法表的每个表项包括共享算法的标识、具有该共享算法运行权限的业务虚拟机列表、该共享算法的接口函数。
25.由上,通过共享算法库和共享算法表对各业务虚拟机共享的算法进行统一管理和控制。
26.在第一方面的一种可能实施方式中,在所述共享算法库中运行申请的第一共享算法,包括:算法虚拟机基于申请信息利用所述共享算法表确定第一业务虚拟机是否具有所述第一共享算法的运行权限;当第一业务虚拟机具有所述第一共享算法的运行权限时,确定所述第一共享算法的接口函数;以及通过该接口函数运行所述共享算法库中的所述第一共享算法的代码。
27.由上,通过共享算法的接口函数运行共享算法,使各业务虚拟机无需关心共享算法的如何运行,专注于其业务代码运行。
28.在第一方面的一种可能实施方式中,一种虚拟机间共享资源的方法还包括:根据第一业务虚拟机与算法虚拟机的实际运行的负荷调整所述共享算法库。
29.由上,通过实际运行的负荷调整算法虚拟机的共享算法库,在实现业务虚拟机共享算法的基础上,还保持了算法虚拟机与业务虚拟机之间的负荷均衡。
30.在第一方面的一种可能实施方式中,一种虚拟机间共享资源的方法还包括:算法虚拟机通过调用通信接口与第一业务虚拟机进行通信,其中,该通信接口至少通过共享内存进行通信;该通信接口还对通信数据进行数据编解码和正确性校验。在一些实施例中,还基于共享内存与套接字或ipc的组合通信。
31.由上,通过配置的通信接口实现算法虚拟机与业务虚拟机之间的标准化通信,特别选择共享内存的方式,相对于套接字更加实时,保证对外部设备的实时控制。
32.本技术实施例的第二方面提供了一种虚拟机间共享资源的系统,所述虚拟机包括运行在微内核上的协议栈虚拟机、算法虚拟机和多个业务虚拟机,所述系统包括:
33.运算分发模块部署在业务虚拟机上,用于根据当前的运算类型进行运算分发,把
共享协议栈的运算向协议栈虚拟机申请运行,把共享算法的运算向算法虚拟机申请运行,把剩下的运算留在自身运行;协议栈运行模块部署在协议栈虚拟机上,用于接收到申请后运行申请的第一协议栈,以实现对第一协议栈涉及的硬件设备的实时控制,并实时把中间结果和/或运行结果反馈至进行申请的业务虚拟机,以使进行进行申请的业务虚拟机实时更新业务控制;算法运行模块部署在算法虚拟机上,算法虚拟机用于接收到申请后运行申请的第一共享算法,并把运行结果反馈至进行申请的业务虚拟机。
34.在一些实施例中,所共享协议栈对涉及的硬件设备进行操作。在一些实施例中,协议栈虚拟机和多个业务虚拟机运行在同一个硬件处理器上。
35.由上,通过业务虚拟机基于当前运算的类型分发给协议栈虚拟机、算法虚拟机或自身分别进行运算,实现了共享协议栈资源和算法资源,在有限的处理器运算能力下提高各业务虚拟机的算力,还提高业务的相应速度,且在电磁环境恶劣的工业控制环境下通过把硬件控制相关的协议栈功能在协议栈虚拟机上实现,相对于在虚拟机管理器或微内核实现,降低对虚拟机管理器或微内核的影响,提高了微内核实时操作系统的稳定性。
36.在第二方面的一种可能实施方式中,一种虚拟机间共享资源的系统还包括协议栈配置模块,部署于协议栈虚拟机,用于根据协议栈虚拟机的业务逻辑配置共享协议栈库;还用于由协议栈虚拟机生成共享协议栈表,并将所述共享协议栈库中的各协议栈注册进所述共享协议栈表,所述共享协议栈表的每个表项包括协议栈的标识、具有该协议栈运行权限的业务虚拟机列表、该协议栈的接口函数与回调函数和涉及的硬件设备的信息。
37.由上,通过共享协议表对各业务虚拟机共享的协议栈进行统一管理和控制。
38.在第二方面的一种可能实施方式中,协议栈运行模块具体用于,包括:由协议栈虚拟机基于申请信息利用所述共享协议栈表确定进行申请的业务虚拟机是否具有所述第一协议栈的运行权限;当进行申请的业务虚拟机具有所述第一协议栈的运行权限时,确定所述第一协议栈的接口函数;以及通过该接口函数运行所述共享协议栈库中的所述第一协议栈的代码。
39.由上,通过共享协议栈的接口函数运行共享协议栈,使各业务虚拟机无需关心共享协议栈的如何运行,专注于其业务代码运行。
40.在第二方面的一种可能实施方式中,协议栈运行模块还具体用于,包括:由协议栈虚拟机在运行所述共享协议栈库中的所述第一协议栈时,为所述第一协议栈分配足够的资源并承担所有的操作,包括硬件设备的操作;在所述第一协议栈正常运行后,由所述第一协议栈基于所述共享协议栈表确定所述第一协议栈的回调函数;以及由所述第一协议栈通过该回调函数把所述第一协议栈的运行结果反馈至进行申请的业务虚拟机。
41.由上,通过共享协议栈的回调函数实时反馈运行结果,实现业务虚拟机的业务控制实时更新。
42.在第二方面的一种可能实施方式中,协议栈运行模块还具体用于,包括:由协议栈虚拟机配置每个共享的协议栈的运行信号量;由协议栈虚拟机在运行所述第一协议栈前,获取所述运行信号量;以及由协议栈虚拟机在运行完所述第一协议栈后,释放所述运行信号量。
43.由上,通过信号量提高共享的协议栈的运行安全。
44.在第二方面的一种可能实施方式中,协议栈配置模块还用于在协议栈虚拟机的业
务逻辑中配置共享协议栈库之前,由协议栈虚拟机从虚拟机支持的协议栈中,选择协议栈虚拟机支持且所述业务逻辑需要的协议栈,用来配置所述共享协议栈库。
45.由上,通过协议栈虚拟机配置共享协议栈库,使共享协议库满足业务需要。
46.在第二方面的一种可能实施方式中,协议之配置模块还用于由协议栈虚拟机通过调用通信接口与各业务虚拟机进行通信,其中,该通信接口至少通过共享内存进行通信;该通信接口还对通信数据进行数据编解码和正确性校验。在一些实施例中,还基于共享内存与套接字或ipc的组合通信。
47.由上,通过配置的通信接口实现协议栈虚拟机与业务虚拟机之间的标准化通信,特别选择共享内存的方式,相对于套接字更加实时,保证对外部设备的实时控制。
48.在第二方面的一种可能实施方式中,一种虚拟机间共享资源的系统还包括算法配置模块,用于由算法虚拟机根据其业务逻辑配置共享算法库,所述共享算法库包括运行各共享算法的代码库;算法虚拟机生成共享算法表,并将所述共享算法库中的各算法注册进所述共享算法表;所述共享算法表的每个表项包括共享算法的标识、具有该共享算法运行权限的业务虚拟机列表、该共享算法的接口函数。
49.由上,通过共享算法库和共享算法表对各业务虚拟机共享的算法进行统一管理和控制。
50.在第二方面的一种可能实施方式中,算法运行模块具体用于,包括:算法虚拟机基于申请信息利用所述共享算法表确定进行申请的业务虚拟机是否具有所述第一共享算法的运行权限;当进行申请的业务虚拟机具有所述第一共享算法的运行权限时,确定所述第一共享算法的接口函数;以及通过该接口函数运行所述共享算法库中的所述第一共享算法的代码。
51.由上,通过共享算法的接口函数运行共享算法,使各业务虚拟机无需关心共享算法的如何运行,专注于其业务代码运行。
52.在第二方面的一种可能实施方式中,算法配置模块还用于根据业务虚拟机与算法虚拟机的实际运行的负荷调整所述共享算法库。
53.由上,通过实际运行的负荷调整算法虚拟机的共享算法库,在实现业务虚拟机共享算法的基础上,还保持了算法虚拟机与业务虚拟机之间的负荷均衡。
54.在第二方面的一种可能实施方式中,算法配置模块还用于由算法虚拟机通过调用通信接口与业务虚拟机进行通信,其中,该通信接口至少通过共享内存进行通信;该通信接口还对通信数据进行数据编解码和正确性校验。在一些实施例中,还基于共享内存与套接字或ipc的组合通信。
55.由上,通过配置的通信接口实现算法虚拟机与业务虚拟机之间的标准化通信,特别选择共享内存的方式,相对于套接字更加实时,保证对外部设备的实时控制。
56.本技术实施例的第三方面提供了一种计算设备,包括:
57.总线;
58.通信接口,其与总线连接;
59.至少一个处理器,其与总线连接;以及
60.至少一个存储器,其与总线连接并存储有程序指令,程序指令当被至少一个处理器执行时使得至少一个处理器执行本技术的第一方面的实施方式。
61.本技术实施例的第四方面提供了一种计算机可读存储介质,其上存储有程序指令,程序指令当被计算机执行时使得计算机执行本技术的第一方面的实施方式。
附图说明
62.图1a为本技术的一种虚拟机间共享资源的方法实施例的实施场景的结构示意图;
63.图1b为本技术的一种虚拟机间共享资源的方法实施例的流程示意图;
64.图2a为本技术的一种虚拟机间共享协议栈资源的方法实施例的实施场景的结构示意图;
65.图2b为本技术各实施例的协议栈虚拟机与业务虚拟机之间通信机制的结构示意图;
66.图3a为本技术的一种虚拟机间共享协议栈资源的方法实施例的流程示意图;
67.图3b为本技术的一种虚拟机间共享协议栈资源的方法实施例的运行方法的流程示意图;
68.图4为本技术的一种虚拟机间共享算法资源的实施场景的结构示意图;
69.图5a为本技术的一种虚拟机间共享算法资源的方法实施例的流程示意图;
70.图5b为本技术的一种虚拟机间共享算法资源的方法实施例的运行方法的流程示意图;
71.图6为本技术的一种虚拟机间共享资源的系统实施例的结构示意图;
72.图7a为本技术的一种虚拟机间共享协议栈资源的系统实施例的结构示意图;
73.图7b为本技术的一种虚拟机间共享协议栈资源的系统实施例的运行模块的结构示意图;
74.图8a为本技术的一种虚拟机间共享算法资源的系统实施例的结构示意图;
75.图8b为本技术的一种虚拟机间共享算法资源的系统实施例的运行模块的结构示意图;
76.图9为本技术实施例提供的计算设备的结构示意图。
具体实施方式
77.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
78.在以下的描述中,所涉及的术语“第一\第二\第三等”或模块a、模块b、模块c等,仅用于区别类似的对象,或用于区别不同的实施例,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
79.在以下的描述中,所涉及的表示步骤的标号,如s110、s120
……
等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
80.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
81.微内核实时操作系统运行于各种不同的平台,每种平台的内部资源不够充裕,如平台处理器算力受限,且无法扩充外部资源。而如果该设备中多个实时的业务虚拟机调用相同的协议栈,则每个实时的业务虚拟机都要分配资源来支持协议栈操作,会造成重复的不必要的资源分配,对业务程序造成约束;每个实时的业务虚拟机对协议栈涉及的硬件设备进行控制时,无法实现互斥和同步操作。
82.同时如果多个实时的业务虚拟机都按照同一范畴内的软件算法,同样会造成重复的不必要的资源浪费,业务程序造成约束。
83.因此,为了减少应用程序的代码量,让业务实现的虚拟机专注于业务代码,减少其需要占用的资源,减少其算力负担,本技术提出一种虚拟机间共享资源的方法、系统、计算设备及存储介质,所述资源包括协议栈资源和软件算法资源,业务虚拟机基于当前运算的类型分发给协议栈虚拟机、算法虚拟机或自身分别进行运算,实现了共享协议栈资源和算法资源,在有限的处理器运算能力下提高各业务虚拟机的算力,还提高业务的相应速度,且在电磁环境恶劣的工业控制环境下通过把硬件控制相关的协议栈功能在协议栈虚拟机上实现,相对于在虚拟机管理器或微内核实现,降低对虚拟机管理器或微内核的影响,提高了微内核实时操作系统的稳定性。
84.下面基于图1a至图5b介绍一种虚拟机间共享资源的方法实施例。
85.【一种虚拟机间共享资源的方法实施例】
86.下面结合图1a介绍本方法实施例的场景,包括协议栈虚拟机200、算法虚拟机400和各业务虚拟机100,均为运行于微内核之上的虚拟机。
87.协议栈虚拟机200用于管理和运行共享协议栈,对涉及的硬件设备进行控制,并把共享协议栈的包括各实时的中间运行结果和最终结果的运行结果实时反馈给业务虚拟机100。示例地,共享协议栈包括:控制伺服驱动的以太网控制自动化技术(ethercat)协议、汽车电子部件之间通信的j1939协议现场数据的modbustcp协议。
88.各算法虚拟机400用于管理和运行共享算法,并把共享算法的最终的运行结果反馈给业务虚拟机100。共享算法为不同虚拟机会调用进行基础运算的算法,其运算结果用于业务控制,示例地,共享算法包括:数字机床控制器应用中的运动控制库算法、精密计算应用中调用的eigen或numpy等数学库的算法、不同文件的编解码算法。
89.各业务虚拟机100进行业务控制,其业务控制的运算被分割成多个子运算,每个子运算被打上共享协议栈的运算、共享算法的运算或其他运算的类型标签,其他运算为其业务控制的运算中共享协议栈的运算和共享算法的运算以外剩下的运算。
90.各业务虚拟机100在控制过程中基于当前运算类型,分发当前的运算任务至协议栈虚拟机200、算法虚拟机400或自身,并根据协议栈虚拟机200、算法虚拟机400和自身的运算结果进行业务控制。
91.下面结合图1b介绍本方法实施例的流程,包括步骤s110至s140。
92.在步骤s110中,业务虚拟机100根据当前的运算类型分发至不同的虚拟机进行运算。
93.其中,当该运算类型为共享协议栈的运算时,向协议栈虚拟机200申请运行该共享协议栈,运行步骤s120,向协议栈虚拟机200申请运行的具体方法请参考一种虚拟机间共享协议栈资源的方法实施例中步骤s340,这里不再详述。
94.其中,当该运算类型为共享算法的运算时,向算法虚拟机400申请运行该共享算法,运行步骤s130,向算法虚拟机400申请运行的具体方法请参考一种虚拟机间共享算法资源的方法实施例中步骤s540,这里不再详述。
95.其中,当该运算类型为其他运算时,则运行步骤s140,由业务虚拟机100自身运行其他运算,进行业务控制。
96.在步骤s120中,协议栈虚拟机200运行业务虚拟机100申请的共享协议栈,并实时反馈中间结果和运算结果至业务虚拟机100。
97.其中,协议栈虚拟机200的运行共享协议栈的具体方法请参考一种虚拟机间共享协议栈资源的方法实施例中步骤s350和s360,这里不再详述。
98.在步骤s130中,算法虚拟机400运行业务虚拟机100申请的共享算法,并反馈运行结果至业务虚拟机100。
99.其中,算法虚拟机400的运行共享算法的具体方法请参考一种虚拟机间共享协议栈资源的方法实施例中的步骤s550和s560,这里不再详述。
100.在步骤s140中,业务虚拟机100运行其他运算,进行业务控制。
101.其中,业务虚拟机100进行业务控制的运算时,利用协议栈虚拟机200的反馈结果和/或算法虚拟机400的反馈结果进行业务控制的运算,实现业务控制。
102.综上,一种虚拟机间共享资源的方法实施例通过业务虚拟机基于当前运算的类型分发给协议栈虚拟机、算法虚拟机或自身分别进行运算,实现了各业务虚拟机共享协议栈资源和算法资源,在有限的处理器运算能力下提高各业务虚拟机的算力,还提高业务的相应速度,且在电磁环境恶劣的工业控制环境下通过把硬件控制相关的协议栈功能在协议栈虚拟机上实现,相对于在虚拟机管理器或微内核实现,降低对虚拟机管理器或微内核的影响,提高了微内核实时操作系统的稳定性。
103.【一种虚拟机间共享协议栈资源的方法实施例】
104.协议栈虚拟机接收业务虚拟机对共享协议栈的运行申请,基于申请信息运行所申请的共享协议栈,并把共享协议栈的运行结果反馈至业务虚拟机,实现业务虚拟机对包括协议栈资源的共享,减少业务实现虚拟机需要占用的资源和算力负担;同时在电磁环境恶劣的工业控制环境下通过把硬件控制相关的协议栈功能在协议栈虚拟机上实现,降低对虚拟机管理器或微内核的影响,减少微内核代码的复杂性,提高了微内核实时操作系统的稳定性。
105.下面首先结合图2a介绍本方法实施例的场景。
106.图2a示出了本方法实施例的一种虚拟机间共享协议栈资源的场景,包括协议栈虚拟机200和各业务虚拟机100,均为运行于微内核之上的虚拟机,协议栈虚拟机200用于管理和运行共享的协议栈对外部硬件设备的控制,业务虚拟机100利用协议栈虚拟机200运行各共享的协议栈,并把该运行结果用于各种业务控制。图2a中示例出一个业务虚拟机100,可以根据实际场景需求部署多个业务虚拟机100。协议栈虚拟机200和各业务虚拟机100组成微内核实时操作系统,运行一个处理器(每个处理器包括多个核)上。
107.协议栈虚拟机200包括共享协议栈接口210、共享协议栈表212、共享协议栈库214、系统调用216和硬件设备218。
108.共享协议栈库214为协议栈虚拟机200基于业务需求加载的各种共享的协议栈资
源,具体地,协议栈虚拟机200从微内核实时操作系统支持的各种协议栈中,选择协议栈虚拟机200支持的且其业务逻辑需要的协议栈,用来配置共享协议栈库214。
109.共享协议栈表212注册了共享协议栈库214中各协议栈,每个协议栈的表项包括其支持的业务虚拟机列表、涉及的硬件设备信息、接口函数和回调函数,因为共享协议栈需要对硬件设备进行实时操作,协议栈的运行结果(包括中间运行结果)不能通过算法调用的方式反馈,需要通过回调函数实时反馈结果。其中,某协议栈的业务虚拟机列表列出的业务虚拟机具有该协议栈的运行权限。
110.系统调用216用于运行协议栈时进行系统调用的资源,包括信号量、定时器、异常处理等。
111.硬件设备218为运行协议栈时协议栈相应地对涉及的硬件设备进行控制。
112.共享协议栈接口210用于配置共享协议栈表212、共享协议栈库214和系统调用216,还用于为各协议栈提供接口,包括接收业务虚拟机100的协议栈的运行申请,并实时反馈运行结果。图2a中示出的共享协议栈接口210为某协议栈提供接口时,并读取该该协议栈的业务虚拟机列表和回调函数,用于判断业务虚拟机100是否具体具有该协议栈的运行权限以及反馈运行结果。
113.业务虚拟机100向协议栈虚拟机200的共享协议栈接口210申请运行共享协议栈,协议栈虚拟机200通过共享协议栈接口210运行该协议栈,把运行结果利用回调函数通过共享协议栈接口210反馈至相应的业务虚拟机100。
114.在一些实施例中,协议栈虚拟机200和业务虚拟机100还包括通信接口,协议栈虚拟机200的共享协议栈接口210通过通信接口与业务虚拟机进行通信,包括协议栈的申请和协议栈运行结果的反馈。
115.在本方法实施例中,业务虚拟机100向协议栈虚拟机200的共享协议栈接口210申请运行共享协议栈,协议栈虚拟机200通过共享协议栈接口210获取业务虚拟机100的协议栈申请,基于协议栈接口函数运行该协议栈,并对硬件设备218中相应的硬件进行控制,且通过配置的系统调用216获取信号量,以提高共享协议栈运行的安全,在共享协议栈的运行过程中,共享协议栈把运行结果通过回调函数实时反馈至相应的业务虚拟机100,本方法实施例实现业务虚拟机100对协议栈的共享。本方法实施例还通过配置共享协议栈表212和共享协议栈库214实现对共享协议栈库214的统一管理和控制。
116.下面结合图3a示出了本方法实施例的流程,其包括s310至s370。
117.在步骤s310中,协议栈虚拟机200启动共享协议栈接口210。
118.其中,协议栈虚拟机200必须是第一虚拟机,以实现对共享协议栈表212、共享协议栈库214、系统调用216等的配置
119.在步骤s320中,协议栈虚拟机200通过共享协议栈接口210配置共享协议栈表212、共享协议栈库214、信号量和通信接口。
120.其中,协议栈虚拟机200从微内核实时操作系统支持的各种协议栈中,选择协议栈虚拟机200支持的且其业务逻辑需要的协议栈,加载到共享协议栈库214。
121.其中,协议栈虚拟机200还把共享协议栈库214中的协议栈注册到共享协议栈表212,并配置共享协议栈表212中每个协议栈的支持业务虚拟机列表,即定义协议栈的各业务虚拟机的运行权限,配置涉及硬件设备信息、接口函数和回调函数,从而对共享协议栈进
行统一的管理。
122.其中,还通过共享协议栈接口210还配置共享协议栈运行的信号量,保证运行共享协议栈的安全。该信号量在运行共享协议栈前通过系统调用216获取,在运行共享协议栈之后通过系统调用216释放,从而实现运行共享协议栈的安全。在一些实施例中,还通过共享协议栈接口210配置定时器,如用于启动定时控制。在一些实施例中还通过共享协议栈接口210配置各种任务,如异常处理任务,用于当运行共享协议栈出现异常时的处理措施。
123.其中,还通过共享协议栈接口210基于标准的通信库配置与各业务虚拟机的通信接口,以实现与各业务虚拟机的标准化的通信。示例地,本实施例使用的标准通信库至少通过共享内存进行通信,还包括共享内存与ipc或套接字的组合通信方式。该通信接口还对通信数据进行数据编解码和正确性校验。
124.图2b示出了协议栈虚拟机200与各业务虚拟机100的通信机制。其中,协议栈虚拟机200配置通信接口2000,各业务虚拟机100配置通信接口1000,各业务虚拟机100通过其通信接口1000与协议栈虚拟机200的通信接口2000之间进行通信。
125.在步骤s330中,业务虚拟机100配置通信接口1000,获取各共享协议栈的运行权限。
126.其中,各业务虚拟机100所配置的通信接口1000使用的通信标准库与协议栈虚拟机200相同,对通信数据进行的编解码和正确性校验方式也与协议栈虚拟机200相同,从而实现二者之间标准化的通信。
127.其中,业务虚拟机100还从协议栈虚拟机200的共享协议栈表212中获取对各共享协议栈的运行权限。
128.在步骤s340中,业务虚拟机100基于当前的业务需求发出共享协议栈的运行申请。
129.其中,在申请信息中至少包括所申请的共享协议栈的标识和业务虚拟机100的本身标识。在一些实施例中,在申请信息中还包括所申请的共享协议栈的接口函数和回调函数。
130.其中,业务虚拟机100发出共享协议栈的申请时,创建等待任务,等待共享协议栈的运行结果。
131.在步骤s350中,协议栈虚拟机200通过共享协议栈接口210接收并运行共享协议栈运行申请。
132.其中,共享协议栈接口210利用共享协议栈表212确定是否接收共享协议栈运行申请的运行权限的要求。当业务虚拟机100的共享协议栈申请被接收且被调度运行时,共享协议栈接口210获取该共享协议栈的运行的相关信号量,基于该共享协议栈的接口函数,创建该共享协议栈运行所需资源,运行该共享协议栈,对涉及的硬件设备进行处理,并通过回调函数把运行结果反馈至业务虚拟机100。
133.其中,本步骤的详细方法请参照本方法实施例的共享协议栈的运行方法,这里不再详述。
134.由上,业务虚拟机100申请的共享协议栈在协议栈虚拟机上运行,实现业务虚拟机100对的共享协议栈的共享,减少业务实现业务虚拟机100需要占用的资源。
135.在步骤s360中,协议栈虚拟机200通过共享协议栈接口210把运行结果反馈至业务虚拟机100。
136.其中,协议栈虚拟机200由运行的共享协议栈确定其协议栈的回调函数,并由运行的共享协议栈把运行结果反馈至业务虚拟机100。
137.在步骤s370中,业务虚拟机100接收运行结果,继续运行业务。
138.其中,业务虚拟机100接收运行结果,取消等待任务,基于所获取的运行结果继续运行当前业务。
139.图3b示出了本方法实施例的共享协议栈的运行方法的流程,包括步骤s3510至s3570。
140.在步骤s3510中,协议栈虚拟机200通过共享协议栈接口210接收共享协议栈的运行申请。
141.其中,共享协议栈接口210从业务虚拟机100的申请信息中获取其申请的共享协议栈的标识,从共享协议栈表212中查看该标识的协议栈的业务虚拟机列表,当该业务机列表包括业务虚拟机100,确定业务虚拟机100具有申请的共享协议栈的运行权限。
142.其中,当业务虚拟机100具有所申请的共享协议栈的权限时,接受该申请;当存在多个业务虚拟机对该共享协议栈进行申请时,把该申请加入相应的队列,基于队列管理调度该申请。
143.在步骤s3520中,共享协议栈接口210获取信号量。
144.其中,当业务虚拟机100的共享协议栈申请被调度时,还要等待运行该共享协议栈相关的信号量,通过系统调用获取该信号量后则开始运行该共享协议栈。
145.在步骤s3530中,共享协议栈接口210通过申请的共享协议栈的接口函数运行该共享协议栈。
146.其中,当业务虚拟机100的申请中包括共享协议栈的接口函数时,共享协议栈接口210直接从申请信息中获取该接口函数,当申请信息不包括接口函数时,则根据申请的共享协议栈的标识从共享协议栈表212获取其接口函数。共享协议栈接口210基于申请的共享协议栈的接口函数创建运行共享协议栈所需资源,调用共享协议栈库中共享协议栈代码并运行。
147.在步骤s3540中,共享协议栈接口210对硬件设备218中相应的硬件进行控制。
148.其中,共享协议栈用于对外部硬件的控制或通信,在运行共享协议栈的同时对该硬件进行相应的处理。
149.其中,本步骤与步骤s3530基于具体场景确定并行运行还是串行运行,还是交替执行。在本实施例中示例地以串行运行为例。
150.在步骤s3550中,共享协议栈接口210对共享协议栈的运行状态判断。其中,当运行状态异常时运行步骤s3560;正常时运行步骤s3570。
151.在步骤s3560中,共享协议栈接口210进行异常处理。
152.其中,通过系统调用216进行异常处理。
153.在步骤s3570中,共享协议栈接口210释放信号量。
154.其中,当共享协议栈正常运行完成时,释放信号量,使共享协议栈可以被其他进程运行,实现共享。
155.综上,在本方法实施例中,业务虚拟机向协议栈虚拟机申请运行共享协议栈,协议栈虚拟机获取业务虚拟机的协议栈申请,基于协议栈接口函数运行该协议栈,并对相应的
硬件设备进行控制,且通过信号量提高共享协议栈运行的安全,运行的共享协议栈把运行结果实时通过回调函数反馈至相应的业务虚拟机,本方法实施例实现业务虚拟机对协议栈资源的共享,降低业务虚拟机对占用的资源需求,降低其算力负担。在电磁环境恶劣的工业控制环境下通过把硬件控制相关的协议栈功能在协议栈虚拟机上实现,相对于在虚拟机管理器或微内核实现,降低对虚拟机管理器或微内核的影响,减少微内核代码的复杂性,提高了微内核实时操作系统的稳定性。
156.【一种虚拟机间共享算法资源的方法实施例】
157.本发明的技术方案还用于虚拟机间的算法资源的共享,图4示出了本技术的一种虚拟机间共享算法资源的方法实施例的实施场景,包括算法虚拟机400和业务虚拟机100,图4示例地给出一个业务虚拟机100,实际环境中基于实际需求包括若干个业务虚拟机100。算法虚拟机400用于管理和运行共享算法资源,业务虚拟机100根据运行结果进行各种业务控制。
158.算法虚拟机400包括共享算法接口410、共享算法表412、共享算法库414和系统调用416。其中,共享算法库414为基于业务需求加载的各种共享算法,共享算法表412包括配置的每个共享算法的对应的各业务虚拟机100列表和接口函数,该列表中各业务虚拟机100具有共享算法的运行权限,系统调用416用于信号量的获取与释放、异常处理。
159.业务虚拟机100向算法虚拟机的共享算法接口410申请共享算法,算法虚拟机400通过共享算法接口410获取业务虚拟机的共享算法申请,并运行该共享算法,且把运行结果通过共享算法接口410反馈至相应的业务虚拟机100。
160.在一些实施例中,还通过共享算法接口410配置共享算法表412和共享算法库414。
161.在一些实施例中,算法虚拟机400和业务虚拟机100还包括通信接口,通过通信接口算法虚拟机400与业务虚拟机100进行通信,包括共享算法资源的申请和共享算法运行结果的反馈。
162.一种虚拟机间共享算法资源的方法实施例在图4所示的场景中运行。在该方法实施例中,算法虚拟机400通过共享算法接口410接收业务虚拟机100对共享算法的运行申请,基于申请信息运行共享算法库414中被申请的共享算法,并把共享算法的运行结果反馈至业务虚拟机100,实现业务虚拟机100对共享算法的共享,减少业务实现业务虚拟机100需要占用的资源;算法虚拟机400还通过配置共享算法表412和共享算法库414,实现对共享算法的统一管理和控制。
163.图5a示出了本方法实施例的流程,包括步骤s510至s570。
164.在步骤s510中,算法虚拟机400启动共享算法接口410。
165.其中,算法虚拟机400要早于各业务虚拟机100的启动起来,以进行共享算法的管理。
166.在步骤s520中,算法虚拟机400通过共享算法接口410配置共享算法表412、共享算法库414、信号量和通信接口。
167.其中,通过共享算法接口410基于业务需求加载共享算法库414,并把其中的共享算法注册到共享算法表412中,配置每个共享算法支持的各业务虚拟机100和接口函数,从而对共享算法资源进行管理。
168.其中,还通过共享算法接口410配置共享算法运行的信号量,保证运行共享算法的
安全。
169.其中,还通过共享算法接口410基于标准的通信库配置与业务虚拟机100的通信接口,以实现与业务虚拟机100的标准化的通信。
170.需要指出的是,当运行算法虚拟机400和业务虚拟机100运行一段时间之后,算法虚拟机400还基于算法虚拟机400和业务虚拟机100的实际运行负荷,通过共享算法接口410调整共享算法表412、共享算法库414。当算法虚拟机400的实际运行负荷高于设定的第一门限时,把部分共享算法从共享算法表412和共享算法库414删除,并通知各业务虚拟机100安装该部分共享算法的代码,当一业务虚拟机100的实际运行负荷高于设定的第二门限且算法虚拟机400的实际运行负荷低于设定的第三门限时,把该业务虚拟机100上与其他业务虚拟机100部分重复的运算设计为共享算法,加入到共享算法表412和共享算法库414中。
171.在步骤s530中,业务虚拟机100配置通信接口,获取各共享算法的运行权限。
172.其中,业务虚拟机100所配置的通信接口使用的通信标准库与算法虚拟机400相同,对通信数据进行的编解码和正确性校验方式也与算法虚拟机400相同,从而实现二者之间标准化的通信。
173.其中,业务虚拟机100还从算法虚拟机400的共享算法表412中获取对各共享算法的运行权限。
174.在步骤s540中,业务虚拟机100基于当前的业务需求发出共享算法的运行申请。
175.其中,在申请信息中至少包括所申请的共享算法的标识和业务虚拟机100的本身标识。在一些实施例中,所申请的共享算法的接口函数。
176.其中,业务虚拟机100发出共享算法的申请时,创建等待任务,等待共享算法的运行结果。
177.在步骤s550中,算法虚拟机400接收并运行业务虚拟机100的共享算法的运行申请。
178.其中,算法虚拟机400通过共享算法接口410接收业务虚拟机100的共享算法运行申请。
179.其中,共享算法接口410还确定业务虚拟机的运行申请是否满足共享算法表412中的运行权限的要求。
180.其中,业务虚拟机100的共享算法申请被调度运行时,共享算法接口410获取该共享算法的运行的相关信号量,基于该共享算法的接口函数创建该共享算法运行所需资源,运行该共享算法。
181.其中,本步骤的详细方法请参照本方法实施例的共享算法资源的运行方法,这里不再详述。
182.由上,业务虚拟机申请的共享算法在算法虚拟机上运行,实现业务虚拟机对算法的共享,减少业务实现虚拟机需要占用的资源。
183.在步骤s560中,算法虚拟机400反馈所申请的共享算法的运行结果反馈至业务虚拟机100。
184.其中,算法虚拟机400通过共享算法接口410反馈运行结果反馈至业务虚拟机100。
185.在步骤s570中,业务虚拟机100接收运行结果,继续运行业务。
186.其中,业务虚拟机100接收运行结果,取消等待任务,基于所获取的运行结果继续
运行当前业务。
187.图5b示出了本方法实施例的共享算法运行方法的流程,包括步骤s5510至s5560。
188.在步骤s5510中,共享算法接口410接收业务虚拟机100的共享算法运行申请
189.其中,算法虚拟机400通过共享算法接口410接收业务虚拟机100的共享算法运行申请。
190.其中,共享算法接口410从业务虚拟机100的申请信息中获取其申请的共享算法的标识,确定其是否满足共享算法表412中的运行权限的要求。
191.其中,当业务虚拟机100具有所申请的共享算法的权限时,接受该申请;当存在多个业务虚拟机对该共享算法进行申请时,把该申请加入相应的队列,基于队列管理调度该申请。
192.在步骤s5520中,共享算法接口410获取信号量。
193.其中,当业务虚拟机100的共享算法申请被调度时,还要等待运行该共享算法相关的信号量,获取该信号量后则开始运行该共享算法。
194.在步骤s5530中,共享算法接口410通过申请的共享算法的接口函数运行该共享算法。
195.其中,当申请信息中包括申请的共享算法的接口函数时,共享算法接口410直接从中获取该接口函数;当申请信息中不包括申请的共享算法的接口函数时,共享算法接口410根据申请的共享算法的标识从共享算法表412中获取该接口函数。共享算法接口410基于该接口函数创建运行共享算法所需资源,调用共享算法资源库中共享算法代码并运行。
196.在步骤s5540中,共享算法接口410对共享算法的运行状态判断。其中,当运行状态异常时运行步骤s5550;正常时运行步骤s5560。
197.在步骤s5550中,共享算法接口410进行异常处理。
198.其中,通过系统调用416进行异常处理。
199.在步骤s5560中,共享算法接口410释放信号量。
200.其中,当共享算法正常运行完成时,释放信号量,使共享算法可以被其他进程运行,实现共享。
201.综上,在本方法实施例中,算法虚拟机共享算法接口接收业务虚拟机对共享算法的运行申请,基于申请信息运行共享算法库中被申请的共享算法,并把共享算法的运行结果反馈至业务虚拟机,实现业务虚拟机对算法的共享,减少业务实现虚拟机需要占用的资源;算法虚拟机通过配置共享算法库和共享算法表对共享算法的统一控制和管理。
202.下面基于图6至图8b介绍一种虚拟机间共享资源的系统实施例。
203.【一种虚拟机间共享资源的系统实施例】
204.本系统实施例用于执行一种虚拟机间共享资源的方法实施例,部署在图1a示出的一种虚拟机间共享资源的实施场景。
205.图6示出了本系统实施例的结构,包括运算分发模块610、协议栈运行模块620、算法运行模块630和业务控制模块640。
206.运算分发模块610部署在业务虚拟机100上,用于由业务虚拟机100根据当前的运算类型分发至不同的虚拟机进行运算。其工作原理和方法请参考一种虚拟机间共享资源的方法实施例的步骤s110,这里不再详述。
207.协议栈运行模块620部署在协议栈虚拟机200上,用于由协议栈虚拟机200运行业务虚拟机100申请的共享协议栈,并实时反馈中间结果和运算结果至业务虚拟机100。其工作原理和方法请参考一种虚拟机间共享资源的方法实施例的步骤s120,这里不再详述。
208.算法运行模块630部署在算法虚拟机400上,用于由算法虚拟机400运行业务虚拟机100申请的共享算法,并反馈运行结果至业务虚拟机100。其工作原理和方法请参考一种虚拟机间共享资源的方法实施例的步骤s130,这里不再详述。
209.业务控制模块640部署在业务虚拟机100上,用于业务虚拟机100运行其他运算,进行业务控制。其工作原理和方法请参考一种虚拟机间共享资源的方法实施例的步骤s140,这里不再详述。
210.【一种虚拟机间共享协议栈资源的系统实施例】
211.本系统实施例用于执行一种虚拟机间共享协议栈资源的方法实施例,部署在图2a示出的一种虚拟机间共享协议栈的实施场景。
212.图7a示出了本系统实施例的结构,其包括启动模块710、协议栈配置模块720、配置获取模块730、申请模块740、运行模块750、反馈模块760、业务模块770。其中启动模块710、协议栈配置模块720、运行模块750、反馈模块760部署在协议栈虚拟机200上,配置获取模块730、申请模块740和业务模块770部署在业务虚拟机100上。
213.启动模块710用于由协议栈虚拟机200启动共享协议栈接口210。其方法和技术效果参照一种虚拟机间共享协议栈资源的方法实施例的步骤s310,这里不再详述。
214.协议栈配置模块720用于由协议栈虚拟机200通过共享协议栈接口210配置共享协议栈表、共享协议栈库、信号量和通信接口。其方法和技术效果参照一种虚拟机间共享协议栈资源的方法实施例的步骤s320,这里不再详述。
215.配置获取模块730用于由业务虚拟机100配置通信接口,获取各共享协议栈的运行权限。其方法和技术效果参照一种虚拟机间共享协议栈资源的方法实施例的步骤s330,这里不再详述。
216.申请模块740用于由业务虚拟机100基于当前的业务需求发出共享协议栈的运行申请。其方法和技术效果参照一种虚拟机间共享协议栈资源的方法实施例的步骤s340,这里不再详述。
217.运行模块750用于由协议栈虚拟机200接收并运行业务虚拟机100对共享协议栈的运行申请。其方法和技术效果参照一种虚拟机间共享协议栈资源的方法实施例的步骤s350,这里不再详述。
218.反馈模块760用于由协议栈虚拟机200通过共享协议栈接口210向业务虚拟机100反馈所申请的共享协议栈的运行结果。其方法和技术效果参照一种虚拟机间共享协议栈资源的方法实施例的步骤s360,这里不再详述。
219.业务模块770用于由业务虚拟机100接收运行结果,继续运行业务。其方法和技术效果参照一种虚拟机间共享协议栈资源的方法实施例的步骤s370,这里不再详述。
220.图7b示出了一种虚拟机间共享资源的系统实施例的运行模块的结构,包括接收模块7510、信号量获取模块7520、执行模块7530、硬件操作模块7540、判断模块7550、异常处理模块7560和释放信号量模块7570。
221.接收模块7510用于由共享协议栈接口210接收各业务虚拟机100的对共享协议栈
的运行申请。其方法和技术效果参照一种虚拟机间共享协议栈资源的方法实施例的执行方法的步骤s3510,这里不再详述。
222.信号量获取模块7520用于由共享协议栈接口210获取信号量。其方法和技术效果参照一种虚拟机间共享协议栈资源的方法实施例的执行方法的步骤s3520,这里不再详述。
223.执行模块7530用于由共享协议栈接口210通过所申请的共享协议栈的接口函数运行该共享协议栈。其方法和技术效果参照一种虚拟机间共享协议栈资源的方法实施例的执行方法的步骤s3530,这里不再详述。
224.硬件操作模块7540用于由共享协议栈接口210对硬件设备218中相应的硬件进行处理。其方法和技术效果参照一种虚拟机间共享协议栈资源的方法实施例的执行方法的步骤s3540,这里不再详述。
225.判断模块7550用于由共享协议栈接口210对共享协议栈的运行状态判断。其方法和技术效果参照一种虚拟机间共享协议栈资源的方法实施例的执行方法的步骤s3550,这里不再详述。
226.异常处理模块7560由共享协议栈接口210进行异常处理。其方法和技术效果参照一种虚拟机间共享协议栈资源的方法实施例的执行方法的步骤s3560,这里不再详述。
227.释放信号量模块7570用于由共享协议栈接口210释放信号量。其方法和技术效果参照一种虚拟机间共享协议栈资源的方法实施例的执行方法的步骤s3570,这里不再详述。
228.下面基于图8a至图8b介绍一种虚拟机间共享算法资源的系统实施例。
229.【一种虚拟机间共享算法资源的系统实施例】
230.本系统实施例用于执行一种虚拟机间共享算法资源的方法实施例,部署在图4示出的一种虚拟机间共享算法运行的实施场景中。
231.图8a示出了本系统实施例的结构,其包括启动模块810、算法配置模块820、配置获取模块830、申请模块840、运行模块850、反馈模块860、业务模块870。其中启动模块810、算法配置模块820、运行模块850、反馈模块860部署在算法虚拟机400上,配置获取模块830、申请模块840和业务模块870部署在业务虚拟机100上。
232.启动模块810用于算法虚拟机400启动共享算法接口410。其方法和技术效果参照一种虚拟机间共享算法资源的方法实施例的步骤s510,这里不再详述。
233.算法配置模块820用于算法虚拟机400通过共享算法接口410配置共享算法表412、共享算法库414、信号量和通信接口。其方法和技术效果参照一种虚拟机间共享算法资源的方法实施例的步骤s520,这里不再详述。
234.配置获取模块830用于由业务虚拟机100配置通信接口,获取各共享算法的运行权限。其方法和技术效果参照一种虚拟机间共享算法资源的方法实施例的步骤s530,这里不再详述。
235.申请模块840用于由业务虚拟机100基于当前的业务需求发出共享算法的运行申请。其方法和技术效果参照一种虚拟机间共享算法资源的方法实施例的步骤s540,这里不再详述。
236.运行模块850用于算法虚拟机400接收并运行业务虚拟机100所申请的共享算法运行申请。其方法和技术效果参照一种虚拟机间共享算法资源的方法实施例的步骤s550,这里不再详述。
signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器910采用一个或多个集成电路,用于执行相关程序,以实现本技术的各实施例的功能。
253.该存储器920可以包括只读存储器和随机存取存储器,并向处理器910提供指令和数据。处理器910的一部分还可以包括非易失性随机存取存储器。例如,处理器910还可以存储设备类型的信息。
254.在计算设备900运行时,所述处理器910执行所述存储器920中的计算机执行指令执行的本技术的各实施例的功能。
255.应理解,根据本技术实施例的计算设备900可以对应于执行根据本技术各实施例的方法中的相应主体,并且计算设备900中的各个模块的上述和其它操作和/或功能分别为了实现本技术各实施例的功能,为了简洁,在此不再赘述。
256.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
257.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
258.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
259.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
260.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
261.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述运行方法的全部或部分步骤。而前述的存储介质包括,u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
262.【存储介质】
263.本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于本技术各实施例的功能。
264.本技术实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括,具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
265.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
266.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
267.可以以一种或多种程序设计语言或其组合来编写用于执行本技术操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意类型的网络,包括局域网(lan)或广域网(wan),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
268.注意,上述仅为本技术的较佳实施例及所运用技术原理。本领域技术人员会理解,本技术不限于这里所述特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本技术的保护范围。因此,虽然通过以上实施例对本技术进行了较为详细的说明,但是本技术不仅仅限于以上实施例,在不脱离本技术构思的情况下,还可以包括更多其他等效实施例,均属于本技术保护范畴。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1