System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 进程间通信方法及装置制造方法及图纸_技高网

进程间通信方法及装置制造方法及图纸

技术编号:40468026 阅读:15 留言:0更新日期:2024-02-22 23:22
公开了一种进程间通信方法及装置,属于虚拟机技术领域。该方法包括:第一客户端确定运行在第一客户端模式的第一通信虚拟处理器CCPU;第一客户端确定待调用执行实体ACTV,待调用ACTV用于存储运行在第二客户端模式的上下文和待发送信息,第一客户端和第二客户端中的一个为客户机,第一客户端和第二客户端中的另一个为宿主机;第一客户端控制第一CCPU调用ACTV中运行在第二客户端模式的上下文,从第一客户端模式切换至第二客户端模式,以使第一CCPU在第二客户端模式,将对应的ACTV中的待发送信息传递给第二客户端。在跨虚拟机的进程间通信时,整个传递过程更简单,且不影响客户机性能。

【技术实现步骤摘要】

本申请涉及虚拟机,特别涉及一种进程间通信方法及装置


技术介绍

1、进程间通信(inter process communication,ipc)是操作系统中,进程间的一类数据通信方法的统称。参与通信的双方或多方通过调用消息发送、接收等原语实现数据在进程之间的传递,从而完成数据通信。

2、在智能座舱等场景下,宿主机(host)和客户机(guest)之间的业务有依赖,因而宿主机(host)和客户机(guest)存在跨虚拟机的进程间通信需求。

3、相关技术中,存在一种虚拟输入输出(virtual input&output,virtio)方案实现上述跨虚拟机的进程间通信:客户机会主动触发一个基于内存映射输入输出的虚拟化操作(memory-mapped i/o,mmio);响应于该mmio,客户机中的虚拟中央处理器(virtualcentral processing unit,vcpu)通过虚拟机陷出(virtual machine-exit,vm-exit)从客户机模式切换到宿主机模式;在宿主机模式下,虚拟中央处理器执行该mmio,完成从客户机到宿主机的数据传输;虚拟中央处理器执行完成后,通过注入中断方式将宿主机反馈的数据返回给客户机。在客户机向宿主机通信的方案中,vm-exit会导致客户机中的虚拟处理器线程处在宿主机模式,无法继续处理客户机任务,影响整个客户机性能。当宿主机向客户机通信时,同样也需要通过注入中断方案实现,性能低效,影响客户机任务运行。


技术实现思路p>

1、本申请提供了一种进程间通信方法及装置,能够在不影响客户机任务运行的情况下,满足跨虚拟机的进程间通信需求。

2、第一方面,本申请提供了一种进程间通信方法。该方法包括:第一客户端确定运行在第一客户端模式的第一通信虚拟处理器ccpu。第一客户端确定待调用执行实体actv,待调用actv用于存储运行在第二客户端模式的上下文和待发送信息。待发送信息是指第一客户端待发送给第二客户端的信息。第一客户端控制第一ccpu调用actv中运行在第二客户端模式的上下文,从第一客户端模式切换至第二客户端模式,以使第一ccpu在第二客户端模式,将对应的actv中的待发送信息传递给第二客户端。

3、其中,第一客户端和第二客户端中的一个为客户机,第一客户端和第二客户端中的另一个为宿主机。

4、例如,第一客户端为客户机,则第二客户端为宿主机。再例如,第一客户端为宿主机,则第二客户端为客户机。

5、在该实现方式中,第一客户端通过控制运行在第一客户端模式的ccpu切换到第二客户端模式,该切换过程中依靠actv中的上下文实现,并且actv中还携带待传输信息,这样ccpu在完成切换后,第二客户端就能够从ccpu对应的actv中获得传输的信息,实现进程间的信息传输。该方案不占用客户机的虚拟cpu;信息传递过程在切换模式时实现,不需要额外io操作;无需vm-exit和中断操作。故本申请实现宿主机和客户机之间的跨虚拟机的进程间通信时,整个传递过程更简单,且不影响客户机性能。

6、在本申请的实现方式中,第二客户端和第一客户端中可以安装一个或多个应用。

7、在一种示例中,第二客户端中只存在一个应用,故第一客户端提供的信息都是传输给第二客户端中的该应用。此时,当内核中存在多个空闲的ccpu时,第一客户端可以选择任一个空闲的ccpu作为第一ccpu。

8、在另一种示例中,第二客户端中存在多个应用,故第一客户端提供的信息通常是传输给第二客户端中特定应用。此时,第二客户端中的多个应用与多个ccpu可以建立对应关系,或者每个ccpu都具有与各个应用对应的实例。当内核中存在多个空闲的ccpu时,第一客户端可以选择与特定应用对应的ccpu作为第一ccpu,或者选择任一个空闲的ccpu的与特定应用对应的实例作为第一ccpu。

9、在本申请的实现方式,待调用actv包括至少一个第一寄存器和至少一个第二寄存器,至少一个第一寄存器用于存储运行在第二客户端模式的上下文,至少一个第二寄存器用于存储待发送信息。

10、在该实现方式中,actv的部分寄存器用于存储运行在第二客户端模式的上下文,从而可以通过调用actv实现第一客户端模式和第二客户端模式的切换。actv的部分寄存器用于存储待发送信息,用于实现在客户端模式切换后的进程间的信息传递。

11、在本申请的实现方式,第一客户端确定待调用执行实体actv,包括:

12、第一客户端在actv服务中选择空闲actv,actv服务用于管理多个actv;

13、第一客户端将待发送信息写入空闲actv的至少一个第二寄存器,得到待调用actv。

14、通常,actv的各个第二寄存器都已经定义了存储的信息类型,故写入时只需要写入定义的信息类型对应的信息即可。

15、示例性地,以智能座舱场景为例,宿主机中的应用检测到车辆碰撞,此时需要将碰撞信息通知给客户机中的应用,该信息可以是客户机需要显示的指示图标,例如指示图标为碰撞告警图标。此时,宿主机可以向actv的x0寄存器写入碰撞告警图标对应的标识,例如1,向actv的x1寄存器写入碰撞告警图标显示位置对应的标识,例如0,表示显示在屏幕左上角,等等。当然上述仅为示例,本申请对写入的信息内容不做限制。

16、在该实现方式中,通过将待发送信息写入空闲actv的第二寄存器中。在第一ccpu调用该actv时,建立与该actv之间的链接关系,第一ccpu从宿主机模式切换到客户机模式,上述链接关系依然存在,所以,第二客户端检测到第一ccpu从第一客户端模式切换到第二客户端模式时,即可基于该链接关系确定第一ccpu对应的actv,并从该actv的第二寄存器中读取信息,完成信息传递。

17、示例性地,第一ccpu在第一客户端模式下调用的是第一actv,需要通过调用第二actv切换到第二客户端模式。其中,调用第二actv的方式如下:

18、通过链表的方式在第一actv上叠加第二actv,叠加第二actv后,该第一actv会进入非活跃状态,由第二actv来接替第一actv的工作。通过执行第二actv中的上下文,第一ccpu切换到第二客户端模式。

19、在本申请一些可能的实现方式中,第一客户端在actv服务中选择空闲actv,包括:

20、在第一客户端为宿主机的情况下,第一客户端在第一actv服务中选择空闲actv,第一actv服务为管理宿主机到客户机通信的actv服务。

21、在本申请另一些可能的实现方式中,第一客户端在actv服务中选择空闲actv,包括:

22、在第一客户端为客户机的情况下,第一客户端在第二actv服务中选择空闲actv,第二actv服务为管理客户机到宿主机通信的actv服务。

23、由于运行在宿主机模式和运行在客户机模式的上下文不同,因而,在第一客户端类型不本文档来自技高网...

【技术保护点】

1.一种进程间通信方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述待调用ACTV包括至少一个第一寄存器和至少一个第二寄存器,所述至少一个第一寄存器用于存储运行在所述第二客户端模式的上下文,所述至少一个第二寄存器用于存储所述待发送信息。

3.根据权利要求2所述的方法,其特征在于,所述第一客户端确定待调用执行实体ACTV,包括:

4.根据权利要求3所述的方法,其特征在于,所述第一客户端在ACTV服务中选择空闲ACTV,包括:

5.根据权利要求3所述的方法,其特征在于,所述第一客户端在ACTV服务中选择空闲ACTV,包括:

6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:

7.一种进程间通信装置,其特征在于,所述装置应用于第一客户端,所述装置包括:

8.根据权利要求7所述的装置,其特征在于,所述待调用ACTV包括至少一个第一寄存器和至少一个第二寄存器,所述至少一个第一寄存器用于存储运行在所述第二客户端模式的上下文,所述至少一个第二寄存器用于存储所述待发送信息。

9.根据权利要求8所述的装置,其特征在于,所述第二确定单元,用于在ACTV服务中选择空闲ACTV,所述ACTV服务用于管理多个ACTV;将所述待发送信息写入所述空闲ACTV的至少一个第二寄存器,得到所述待调用ACTV。

10.根据权利要求9所述的装置,其特征在于,所述控制单元,用于在所述第一客户端为宿主机的情况下,在第一ACTV服务中选择空闲ACTV,所述第一ACTV服务为管理宿主机到客户机通信的ACTV服务。

11.根据权利要求9所述的装置,其特征在于,所述控制单元,用于在所述第一客户端为客户机的情况下,在第二ACTV服务中选择空闲ACTV,所述第二ACTV服务为管理客户机到宿主机通信的ACTV服务。

12.根据权利要求7至11任一项所述的装置,其特征在于,所述控制单元,还用于在监测到第二CCPU从所述第二客户端模式切换到所述第一客户端模式的情况下,从所述第二CCPU对应的ACTV中获取信息。

13.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器用于存储软件程序,所述处理器通过运行或执行存储在所述存储器内的软件程序,以使所述计算机设备实现如权利要求1至6任一项所述的方法。

14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储处理器所执行的程序代码,所述程序代码包括用于实现如权利要求1至6任一项所述的方法的指令。

15.一种计算机程序产品,其特征在于,包括程序代码,当计算机运行所述计算机程序产品时,使得所述计算机执行如权利要求1至6任一项所述的方法。

16.一种通信系统,其特征在于,所述通信系统包括如权利要求7至12任一项所述的装置。

...

【技术特征摘要】

1.一种进程间通信方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述待调用actv包括至少一个第一寄存器和至少一个第二寄存器,所述至少一个第一寄存器用于存储运行在所述第二客户端模式的上下文,所述至少一个第二寄存器用于存储所述待发送信息。

3.根据权利要求2所述的方法,其特征在于,所述第一客户端确定待调用执行实体actv,包括:

4.根据权利要求3所述的方法,其特征在于,所述第一客户端在actv服务中选择空闲actv,包括:

5.根据权利要求3所述的方法,其特征在于,所述第一客户端在actv服务中选择空闲actv,包括:

6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:

7.一种进程间通信装置,其特征在于,所述装置应用于第一客户端,所述装置包括:

8.根据权利要求7所述的装置,其特征在于,所述待调用actv包括至少一个第一寄存器和至少一个第二寄存器,所述至少一个第一寄存器用于存储运行在所述第二客户端模式的上下文,所述至少一个第二寄存器用于存储所述待发送信息。

9.根据权利要求8所述的装置,其特征在于,所述第二确定单元,用于在actv服务中选择空闲actv,所述actv服务用于管理多个actv;将所述待发送信息写入所述空闲actv的至少一个第二寄存器,得到所述待调用actv。

10...

【专利技术属性】
技术研发人员:张文涛钟钜斌文羽中赵广代雷汪旭
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1