具体实施方式
为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以互相结合。
发明人在发明过程中注意到:
现有的虚拟机功能服务的实现方式中,对于某一种类型的功能服务,客户端与服务器端是一一对应的。当功能服务的类型增加时,服务器端的数量也随之成倍增加,这将影响嵌入式系统的稳定性,可靠性,以及系统资源的管理效率。
基于此,本发明提供了一种虚拟机功能服务的实现方法,该虚拟机功能服务的实现方法各客户端虚拟机均可向主操作系统发送相应的功能服务申请,使主操作系统调用用于提供相应操作系统功能的服务器端软件对所述功能服务申请进行处理,主要用以降低虚拟机功能服务对嵌入式系统的性能的影响。
本发明提供的一种虚拟机功能服务的实现方法,该方法应用于图1所示的一种虚拟机功能服务的实现系统中,该系统包括一个主操作系统101,主操作系统101上运行n个虚拟机103,其中,一个主虚拟机和n-1个客户端虚拟机,每个客户端虚拟机运行一个客户端操作系统102,n为大于等于1的整数。客户端虚拟机为客户端操作系统所在的虚拟机,主虚拟机为主操作系统所在的虚拟机。
主操作系统101提供诸如处理机管理功能服务、内存管理功能服务、设备管理功能服务、文件系统管理功能服务、接口功能服务等m种类型的功能服务,m为大于等于1的整数。
该虚拟机功能服务的实现系统启动过程,如图2所示。
201,主操作系统101启动后,依次启动m个服务器端。
其中,每个服务器端对应一种类型的功能服务。
202,主操作系统101启动m个服务器端后,依次启动n个客户端操作系统102。
203,在主操作系统101中,在监测到客户端操作系统102启动时,针对该客户端操作系统102启动服务器端软件对应的进程。
任一客户端操作系统102启动后,依次启动m个客户端,并通过服务器端软件对应的进程建立与服务器端的连接;
其中,每个客户端对应一种类型的功能服务。客户端与相应服务器端对应相同的功能服务类型
经过步骤201和步骤202,主操作系统101上启动m个服务器端,且每个服务器端一一对应一种类型的功能服务。每个客户端操作系统102均启动m个客户端,每个客户端也一一对应一种类型的功能服务。同时,对应同一种类型的功能服务的服务器端与客户端通过服务器端软件对应的进程建立连接。对于m种类型的功能服务中的任一功能服务A,每个主操作系统101上启动与功能服务A对应的唯一一个服务器端,每个客户端操作系统102也均启动与功能服务A对应的唯一一个服务器端,但由于客户端操作系统有n个,因此对于功能服务A,与其对应的服务器端和与其对应的客户端是一对多的关系。
图3示出了m=2,n=3时虚拟机功能服务的实现系统中客户端与服务器端之间的连接关系。
其中,主操作系统101上运行4个虚拟机103,分别为主虚拟机、客户端虚拟机A、客户端虚拟机B、客户端虚拟机C。每个虚拟机103上运行一个客户端操作系统102,即虚拟机A上运行客户端操作系统A、虚拟机B上运行客户端操作系统B、虚拟机C上运行客户端操作系统C。主操作系统101可以提供功能服务A和功能服务B。因此,主操作系统101启动2个服务器端,分别为对应功能服务A的服务器端A,对应功能服务B的服务器端B。每个客户端操作系统102上启动2个客户端,例如:客户端操作系统A上启动对应功能服务A的客户端AA、对应功能服务B的客户端AB,客户端操作系统B上启动对应功能服务A的客户端BA、对应功能服务B的客户端BB,客户端操作系统C上启动对应功能服务A的客户端CA、对应功能服务B的客户端CB。执行步骤能201至步骤203之后,建立6条连接,分别为对应功能服务A的3条连接(服务器端A与客户端AA之间的LAA,服务器端A与客户端BA之间的LAB,服务器端A与客户端CA之间的LAC),对应功能服务B的3条连接(服务器端B与客户端AB之间的LBA,服务器端B与客户端BB之间的LBB,服务器端B与客户端CB之间的LBC)。
204,在客户端操作系统102中,在监测到针对预设操作系统功能的请求时,通过客户端虚拟机103向主虚拟机103发送相应的功能服务申请。
主操作系统101建立并维护各连接的上下文。将针对用以预设操作系统功能所产生的上下文信息通过客户端虚拟机103发送到主虚拟机103。
其中,连接的上下文包括但不限于连接执行时的环境,例如各个变量和数据等。
该连接的上下文随着连接的实时变化进行动态更新,即进行维护。
在实际应用过程中,不同的客户端虚拟机103的配置等均不同,需要主操作系统101为之提供的功能服务种类不同。即使不同客户端虚拟机103需要主操作系统101提供同一种类的功能服务,其功能服务涉及的参数等也不同。因此,在执行步骤201至步骤204建立主操作系统101中的服务器端与客户端虚拟机103中运行的客户端操作系统102中的客户端之间建立针对所有种类的连接之后,还需要对建立的连接进行处理,以断开主操作系统101不会为客户端虚拟机103提供的功能服务所对应的连接,销毁该连接的上下文,释放资源,减少连接的维护数量。
205,在主操作系统101中,在监测到主虚拟机103接收到功能服务申请后,调用用于提供相应操作系统功能的服务器端软件对功能服务申请进行处理,之后将处理后的结果返回给客户端虚拟机103。
具体的,利用功能服务申请对应的进程对接收到的上下文信息进行处理。
206,客户端操作系统102在客户端虚拟机103接收到主虚拟机103返回的处理结果后,将处理结果返回给预设操作系统功能的请求者。
以图3的连接情况为例,如果客户端操作系统C在步骤204中通过客户端虚拟机103向主虚拟机103发送相应的功能服务A的功能服务申请,主操作系统101在步骤206中调用用于提供相应操作系统功能的服务器端软件对功能服务A申请进行处理,即在主操作系统101与客户端操作系统C建立的2个连接(LAC和LBC)中,LAC连接的客户端CA对应的功能服务A为主操作系统101向客户端操作系统C提供的功能服务。根据接收到的上下文信息;利用功能服务A的功能服务申请对应的进程对功能服务申请进行处理,如图4所示。
执行步骤203之后主操作系统101还为功能服务申请对应的进程分配状态锁,状态锁用于使该进程处于运行状态。同时,在监测到预设的功能服务停止条件时,解除状态锁。
在执行步骤205之后,在主操作系统101中,在监测到预设的功能服务停止条件时,停止对应的服务器端软件的进程。例如,在停止对应的服务器端软件的进程后,销毁上下文信息。
其中,预设的功能服务停止条件,为如下任意一条:
条件一:在主操作系统中监测到客户端虚拟机处于停止运行状态;
条件二:在主操作系统中,监测到客户端操作系统处于休眠状态;
条件三:在主操作系统中,检测到客户端虚拟机发送的功能服务停止申请;此时,方法还包括:在客户端操作系统中,在监测到针对停止预设操作系统功能的请求时,通过客户端虚拟机向主虚拟机发送相应的功能服务停止申请。
经过图2所示的流程,主操作系统101中的服务器端与客户端操作系统102中的客户端建立了连接。建立连接后,服务器端即可为连接的客户端提供功能服务,具体的包括如下三个方面:1)获取服务列表;2)使能服务;3)停止服务。
●对于获取服务列表方面的功能服务,如图5所示。
501,任一客户端操作系统102向主操作系统101发送获取服务列表的申请。
502,主操作系统101向任一客户端操作系统102发送为任一客户端操作系统102提供的功能服务的列表。
以图4所示的连接情况为例,客户端操作系统C向主操作系统101发送获取服务列表的申请。主操作系统101向客户端操作系统C发送为客户端操作系统C提供的功能服务A的具体列表。
●对于使能服务方面的功能服务,如图6所示。
601,任一客户端操作系统102中的任一客户端向主操作系统101发送功能服务的申请。
602,主操作系统101确定任一客户端操作系统102所在虚拟机103处于活动状态,通过相应服务器端向任一客户端提供功能服务。
仍以图4所示的连接情况为例,客户端操作系统C中的客户端CA向主操作系统101发送功能服务的申请,主操作系统101确定客户端操作系统C所在虚拟机C处于活动状态,则通过服务器端A向客户端CA提供功能服务。
●对于停止服务方面的功能服务,如图7所示。
701,客户端操作系统102向主操作系统101发送停止服务的申请。
702,主操作系统101销毁上下文信息。
仍以图4所示的连接情况为例,LAB的客户端BA对应的客户端操作系统B向主操作系统101发送停止服务的申请,主操作系统101销毁上下文信息。
有益效果:
本发明实施例中各客户端虚拟机均可向主操作系统发送相应的功能服务申请,使主操作系统调用用于提供相应操作系统功能的服务器端软件对所述功能服务申请进行处理,主要用以降低虚拟机功能服务对嵌入式系统的性能的影响。
基于同一发明构思,本实施例提供了一种虚拟机功能服务的实现装置,该虚拟机功能服务的实现装置解决问题的原理与一种虚拟机功能服务的实现方法相似,因此该虚拟机功能服务的实现装置实施可以参见一种虚拟机功能服务的实现方法的实施,重复之处不再赘述。
参见图8,该虚拟机功能服务的实现装置,包括:
第一处理模块801,用于在客户端操作系统中,在监测到针对预设操作系统功能的请求时,通过客户端虚拟机向主虚拟机发送相应的功能服务申请;并在客户端虚拟机接收到主虚拟机返回的处理结果后,将处理结果返回给预设操作系统功能的请求者;其中,客户端虚拟机为客户端操作系统所在的虚拟机,主虚拟机为主操作系统所在的虚拟机;
第二处理模块802,用于在主操作系统中,在监测到主虚拟机接收到功能服务申请后,调用用于提供相应操作系统功能的服务器端软件对功能服务申请进行处理,之后将处理后的结果返回给客户端虚拟机。
可选地,该装置还包括:
启动模块,用于在主操作系统中,在监测到客户端操作系统启动时,针对该客户端操作系统启动服务器端软件对应的进程;
第一处理模块,用于将针对用以预设操作系统功能所产生的上下文信息通过客户端虚拟机发送到主虚拟机;
第二处理模块,用于利用功能服务申请对应的进程对接收到的上下文信息进行处理。
可选地,该装置还包括:
分配模块,用于为功能服务申请对应的进程分配状态锁,状态锁用于使该进程处于运行状态;
解除模块,用于在监测到预设的功能服务停止条件时,解除状态锁。
可选地,该装置还包括:
停止模块,用于在主操作系统中,在监测到预设的功能服务停止条件时,停止对应的服务器端软件的进程。
可选地,该装置还包括:
销毁模块,用于在停止对应的服务器端软件的进程后,销毁上下文信息。
可选的,预设的功能服务停止条件,包括如下任意一条:
条件一:在主操作系统中监测到客户端虚拟机处于停止运行状态;
条件二:在主操作系统中,监测到客户端操作系统处于休眠状态;
条件三:在主操作系统中,检测到客户端虚拟机发送的功能服务停止申请;此时,该装置还包括:
发送模块,用于在客户端操作系统中,在监测到针对停止预设操作系统功能的请求时,通过客户端虚拟机向主虚拟机发送相应的功能服务停止申请。
有益效果:
本发明实施例中各客户端虚拟机均可向主操作系统发送相应的功能服务申请,使主操作系统调用用于提供相应操作系统功能的服务器端软件对所述功能服务申请进行处理,主要用以降低虚拟机功能服务对嵌入式系统的性能的影响。
再一方面,本发明实施例还提供了一种电子设备,参见图9,电子设备包括:
存储器901,一个或多个处理器902;以及收发组件903,存储器901,一个或多个处理器902;以及一个或多个网络传输单元904;存储器901、处理器902以及网络传输单元904通过通信总线相连;其中网络传输单元904用于收发网络数据;处理器902被配置为执行存储器901中的指令;所述存储介质中存储有用于执行一种虚拟机功能服务的实现方法中各个步骤的指令。
再一方面,本发明实施例还提供了一种与包括显示器的电子设备结合使用的计算机程序产品,所述计算机程序产品包括计算机可读的存储介质和内嵌于其中的计算机程序机制,所述计算机程序机制包括用于执行一种虚拟机功能服务的实现方法中各个步骤的指令。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。