CN117573386A - 进程间通信方法及装置 - Google Patents
进程间通信方法及装置 Download PDFInfo
- Publication number
- CN117573386A CN117573386A CN202311438051.8A CN202311438051A CN117573386A CN 117573386 A CN117573386 A CN 117573386A CN 202311438051 A CN202311438051 A CN 202311438051A CN 117573386 A CN117573386 A CN 117573386A
- Authority
- CN
- China
- Prior art keywords
- client
- actv
- ccpu
- mode
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 127
- 238000004891 communication Methods 0.000 title claims abstract description 103
- 101150020966 Acta2 gene Proteins 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 abstract description 24
- 238000012546 transfer Methods 0.000 abstract description 10
- 238000012545 processing Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 235000019800 disodium phosphate Nutrition 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004549 pulsed laser deposition Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
公开了一种进程间通信方法及装置,属于虚拟机技术领域。该方法包括:第一客户端确定运行在第一客户端模式的第一通信虚拟处理器CCPU;第一客户端确定待调用执行实体ACTV,待调用ACTV用于存储运行在第二客户端模式的上下文和待发送信息,第一客户端和第二客户端中的一个为客户机,第一客户端和第二客户端中的另一个为宿主机;第一客户端控制第一CCPU调用ACTV中运行在第二客户端模式的上下文,从第一客户端模式切换至第二客户端模式,以使第一CCPU在第二客户端模式,将对应的ACTV中的待发送信息传递给第二客户端。在跨虚拟机的进程间通信时,整个传递过程更简单,且不影响客户机性能。
Description
技术领域
本申请涉及虚拟机技术领域,特别涉及一种进程间通信方法及装置。
背景技术
进程间通信(inter process communication,IPC)是操作系统中,进程间的一类数据通信方法的统称。参与通信的双方或多方通过调用消息发送、接收等原语实现数据在进程之间的传递,从而完成数据通信。
在智能座舱等场景下,宿主机(host)和客户机(guest)之间的业务有依赖,因而宿主机(host)和客户机(guest)存在跨虚拟机的进程间通信需求。
相关技术中,存在一种虚拟输入输出(virtual input&output,VIRTIO)方案实现上述跨虚拟机的进程间通信:客户机会主动触发一个基于内存映射输入输出的虚拟化操作(Memory-mapped I/O,MMIO);响应于该MMIO,客户机中的虚拟中央处理器(virtualcentral processing unit,VCPU)通过虚拟机陷出(virtual machine-Exit,VM-exit)从客户机模式切换到宿主机模式;在宿主机模式下,虚拟中央处理器执行该MMIO,完成从客户机到宿主机的数据传输;虚拟中央处理器执行完成后,通过注入中断方式将宿主机反馈的数据返回给客户机。在客户机向宿主机通信的方案中,VM-exit会导致客户机中的虚拟处理器线程处在宿主机模式,无法继续处理客户机任务,影响整个客户机性能。当宿主机向客户机通信时,同样也需要通过注入中断方案实现,性能低效,影响客户机任务运行。
发明内容
本申请提供了一种进程间通信方法及装置,能够在不影响客户机任务运行的情况下,满足跨虚拟机的进程间通信需求。
第一方面,本申请提供了一种进程间通信方法。该方法包括:第一客户端确定运行在第一客户端模式的第一通信虚拟处理器CCPU。第一客户端确定待调用执行实体ACTV,待调用ACTV用于存储运行在第二客户端模式的上下文和待发送信息。待发送信息是指第一客户端待发送给第二客户端的信息。第一客户端控制第一CCPU调用ACTV中运行在第二客户端模式的上下文,从第一客户端模式切换至第二客户端模式,以使第一CCPU在第二客户端模式,将对应的ACTV中的待发送信息传递给第二客户端。
其中,第一客户端和第二客户端中的一个为客户机,第一客户端和第二客户端中的另一个为宿主机。
例如,第一客户端为客户机,则第二客户端为宿主机。再例如,第一客户端为宿主机,则第二客户端为客户机。
在该实现方式中,第一客户端通过控制运行在第一客户端模式的CCPU切换到第二客户端模式,该切换过程中依靠ACTV中的上下文实现,并且ACTV中还携带待传输信息,这样CCPU在完成切换后,第二客户端就能够从CCPU对应的ACTV中获得传输的信息,实现进程间的信息传输。该方案不占用客户机的虚拟CPU;信息传递过程在切换模式时实现,不需要额外IO操作;无需VM-exit和中断操作。故本申请实现宿主机和客户机之间的跨虚拟机的进程间通信时,整个传递过程更简单,且不影响客户机性能。
在本申请的实现方式中,第二客户端和第一客户端中可以安装一个或多个应用。
在一种示例中,第二客户端中只存在一个应用,故第一客户端提供的信息都是传输给第二客户端中的该应用。此时,当内核中存在多个空闲的CCPU时,第一客户端可以选择任一个空闲的CCPU作为第一CCPU。
在另一种示例中,第二客户端中存在多个应用,故第一客户端提供的信息通常是传输给第二客户端中特定应用。此时,第二客户端中的多个应用与多个CCPU可以建立对应关系,或者每个CCPU都具有与各个应用对应的实例。当内核中存在多个空闲的CCPU时,第一客户端可以选择与特定应用对应的CCPU作为第一CCPU,或者选择任一个空闲的CCPU的与特定应用对应的实例作为第一CCPU。
在本申请的实现方式,待调用ACTV包括至少一个第一寄存器和至少一个第二寄存器,至少一个第一寄存器用于存储运行在第二客户端模式的上下文,至少一个第二寄存器用于存储待发送信息。
在该实现方式中,ACTV的部分寄存器用于存储运行在第二客户端模式的上下文,从而可以通过调用ACTV实现第一客户端模式和第二客户端模式的切换。ACTV的部分寄存器用于存储待发送信息,用于实现在客户端模式切换后的进程间的信息传递。
在本申请的实现方式,第一客户端确定待调用执行实体ACTV,包括:
第一客户端在ACTV服务中选择空闲ACTV,ACTV服务用于管理多个ACTV;
第一客户端将待发送信息写入空闲ACTV的至少一个第二寄存器,得到待调用ACTV。
通常,ACTV的各个第二寄存器都已经定义了存储的信息类型,故写入时只需要写入定义的信息类型对应的信息即可。
示例性地,以智能座舱场景为例,宿主机中的应用检测到车辆碰撞,此时需要将碰撞信息通知给客户机中的应用,该信息可以是客户机需要显示的指示图标,例如指示图标为碰撞告警图标。此时,宿主机可以向ACTV的X0寄存器写入碰撞告警图标对应的标识,例如1,向ACTV的X1寄存器写入碰撞告警图标显示位置对应的标识,例如0,表示显示在屏幕左上角,等等。当然上述仅为示例,本申请对写入的信息内容不做限制。
在该实现方式中,通过将待发送信息写入空闲ACTV的第二寄存器中。在第一CCPU调用该ACTV时,建立与该ACTV之间的链接关系,第一CCPU从宿主机模式切换到客户机模式,上述链接关系依然存在,所以,第二客户端检测到第一CCPU从第一客户端模式切换到第二客户端模式时,即可基于该链接关系确定第一CCPU对应的ACTV,并从该ACTV的第二寄存器中读取信息,完成信息传递。
示例性地,第一CCPU在第一客户端模式下调用的是第一ACTV,需要通过调用第二ACTV切换到第二客户端模式。其中,调用第二ACTV的方式如下:
通过链表的方式在第一ACTV上叠加第二ACTV,叠加第二ACTV后,该第一ACTV会进入非活跃状态,由第二ACTV来接替第一ACTV的工作。通过执行第二ACTV中的上下文,第一CCPU切换到第二客户端模式。
在本申请一些可能的实现方式中,第一客户端在ACTV服务中选择空闲ACTV,包括:
在第一客户端为宿主机的情况下,第一客户端在第一ACTV服务中选择空闲ACTV,第一ACTV服务为管理宿主机到客户机通信的ACTV服务。
在本申请另一些可能的实现方式中,第一客户端在ACTV服务中选择空闲ACTV,包括:
在第一客户端为客户机的情况下,第一客户端在第二ACTV服务中选择空闲ACTV,第二ACTV服务为管理客户机到宿主机通信的ACTV服务。
由于运行在宿主机模式和运行在客户机模式的上下文不同,因而,在第一客户端类型不同的情况下,选择的ACTV也存在不同。
在一种示例中,第二客户端中只存在一个应用,故第一客户端提供的信息都是传输给第二客户端中的该应用。此时,当第一ACTV服务中存在多个空闲的ACTV时,第一客户端可以选择任一个空闲的ACTV作为第一ACTV(也即前述待调用的ACTV)。
在另一种示例中,第二客户端中存在多个应用,故第一客户端提供的信息通常是传输给第二客户端中特定应用。此时,第二客户端中的多个应用与多个ACTV可以建立对应关系,不同应用所需要传输的信息不同,故不同应用对应的ACTV的第二寄存器的配置不同。当第一ACTV服务中存在多个空闲的ACTV时,第一客户端可以选择与特定应用对应的ACTV作为第一ACTV。
可选地,该方法还包括:
在监测到第二CCPU从第二客户端模式切换到第一客户端模式的情况下,第一客户端从第二CCPU对应的ACTV中获取信息。
在该实现方式中,由于CCPU对应的ACTV只能用于存储待传输信息,故客户端还需要在检测到CCPU的客户端模式切换到当前客户端模式时,从CCPU对应的ACTV中获取信息,才能够完成进程间通信。
在一种示例中,第一客户端中只存在一个应用,故第二客户端提供的信息都是传输给第一客户端中的该应用。此时,第一客户端从第二CCPU对应的ACTV中获取信息后,提供给该应用即可。
在另一种示例中,第一客户端中存在多个应用,故第二客户端提供的信息通常是传输给第一客户端中特定应用。此时,第一客户端从第二CCPU对应的ACTV中获取信息后,提供给与第二CCPU对应的应用,或者提供给与第二CCPU的实例对应的应用。
可选地,在完成上述进程间通信后,该方法还可以包括:第二客户端控制第一CCPU从第二客户端模式返回第一客户端模式。
其中,切换的方式是调用另一种ACTV,该ACTV存储运行在第一客户端模式的上下文。切换过程中,如果第二客户端有信息传输给第一客户端,例如应答信息,则切换前写入ACTV的第二寄存器中,如果第二客户端没有信息传输给第一客户端,则无需写入步骤。
第二方面,本申请提供了一种进程间通信装置,该装置应用于第一客户端,该装置包括:
第一确定单元,用于确定运行在第一客户端模式的第一通信虚拟处理器CCPU;
第二确定单元,用于确定待调用执行实体ACTV,待调用ACTV用于存储运行在第二客户端模式的上下文和待发送信息,第一客户端和第二客户端中的一个为客户机,第一客户端和第二客户端中的另一个为宿主机;
控制单元,用于控制第一CCPU调用ACTV中运行在第二客户端模式的上下文,从第一客户端模式切换至第二客户端模式,以使第一CCPU在第二客户端模式,将对应的ACTV中的待发送信息传递给第二客户端。
可选地,待调用ACTV包括至少一个第一寄存器和至少一个第二寄存器,至少一个第一寄存器用于存储运行在第二客户端模式的上下文,至少一个第二寄存器用于存储待发送信息。
可选地,第二确定单元,用于在ACTV服务中选择空闲ACTV,ACTV服务用于管理多个ACTV;将待发送信息写入空闲ACTV的至少一个第二寄存器,得到待调用ACTV。
可选地,控制单元,用于在第一客户端为宿主机的情况下,在第一ACTV服务中选择空闲ACTV,第一ACTV服务为管理宿主机到客户机通信的ACTV服务。
可选地,控制单元,用于在第一客户端为客户机的情况下,在第二ACTV服务中选择空闲ACTV,第二ACTV服务为管理客户机到宿主机通信的ACTV服务。
可选地,控制单元,还用于在监测到第二CCPU从第二客户端模式切换到第一客户端模式的情况下,从第二CCPU对应的ACTV中获取信息。
第三方面,提供了一种计算机设备。所述计算机设备包括处理器和存储器。所述存储器用于存储软件程序以及模块。所述处理器通过运行或执行存储在所述存储器内的软件程序和/或模块实现上述第一方面或第一方面的任一种可能的实施方式中的方法。
可选地,所述处理器为一个或多个,所述存储器为一个或多个。
可选地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不做限定。
第四方面,提供了一种计算机程序产品。所述计算机程序产品包括计算机程序代码,当所述计算机程序代码被计算机运行时,使得所述计算机执行上述第一方面或第一方面的任一种可能的实施方式中的方法。
第五方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储处理器所执行的程序代码,所述程序代码包括用于实现上述第一方面任一种可能的实施方式中的方法。
第六方面,提供了一种芯片,包括处理器,处理器用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的计算机设备执行上述第一方面任一种可能的实施方式中的方法。
第七方面,提供另一种芯片。所述另一种芯片包括输入接口、输出接口、处理器和存储器。所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连。所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行上述第一方面任一种可能的实施方式中的方法。
第八方面,提供了一种通信系统,该系统包括如第二方面或第二方面的任一种可能的实施方式中的装置。
附图说明
图1是本申请实施例提供的一种系统架构的示意图;
图2是本申请实施例提供的一种进程间通信方法的流程图;
图3是本申请实施例提供的一种进程间通信方法的流程图;
图4是本申请实施例提供的一种进程间通信的示意图;
图5是本申请实施例提供的一种进程间通信方法的流程图;
图6是本申请实施例提供的一种进程间通信的示意图;
图7是本申请实施例提供的一种进程间通信的示意图;
图8是本申请实施例提供的一种进程间通信装置的框图;
图9是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在介绍本申请的场景之前,先对本申请涉及到的技术术语进行解释:
操作系统:管理计算机硬件与软件资源的系统软件。操作系统用于管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统还提供一个让用户与系统交互的操作界面。
内核:用来管理软件发出的数据I/O要求的程序,将数据I/O要求转译为数据处理的指令并交由CPU及其他电子组件进行处理,是操作系统的基本组成部分。
进程:程序的运行实体。
线程:程序调度的最小单位,同一进程可能包括多个线程,多个线程拥有各自的调度属性,共享进程的资源。
宿主机:安装在硬件中的操作系统对应的客户端。
客户机:操作系统里安装的虚拟机对应的客户端。
VCPU:客户机中的CPU,用于处理客户机的任务,通过宿主机中的线程虚拟成的CPU。
通信虚拟处理器(communication VCPU,CCPU):承载通信的调度实体,通过宿主机中的线程虚拟成的CPU。
执行实体(activation,ACTV):包含线程运行所需的寄存器信息,是线程控制块(thread control block,TCB)中的一部分。TCB是一种数据结构,用于存储与相应线程相关的信息。示例性地,线程运行所需的寄存器信息可以包含宿主机上下文(user context)。
ACTV服务(ACTV Service,ACTV-SRV):管理ACTV的一种服务,可以同时管理多个ACTV。
ACTV-SRV-α:管理客户机到宿主机通信ACTV的服务。
ACTV-SRV-β:管理宿主机到客户机通信ACTV的服务。
本申请提供的进程间通信方法应用于宿主机和客户机之间的通信,比如在智能座舱、数字通信等场景,客户机中的业务和宿主机之间有依赖,两边需要频繁通讯。
以智能座舱场景为例,车辆中控屏的功能可以分为控制部分和娱乐部分,在车辆中控屏中可以安装配置宿主机和客户机,其中宿主机用于控制部分,客户机用于娱乐部分。在车辆工作过程中,例如宿主机中的应用检测到车辆碰撞,此时需要将碰撞信息通知给客户机中的应用,由客户机中的应用进行图像或者声音输出。上述过程中就涉及到了宿主机和客户机的通信。
无论哪种场景,本申请提供的方案所对应的操作系统都包括客户机和宿主机。为便于对本申请实施例提供的技术方案的理解,下面结合图1对系统架构进行说明。图1是本申请实施例提供的一种系统架构的示意图。
如图1所示,该系统架构可以为计算机设备,计算机设备具有多个CPU,例如图中的CPU0~CPU3。其中,CPU0~CPU2被分配给宿主机(Host OS),CPU3被分配给客户机(GuestOS)。宿主机中安装有宿主机应用(Host APP),客户机中安装有客户机应用(Guest APP)。宿主机配置有ACTV-SRV-α、ACTV-SRV-β和多个CCPU。客户机配置有多个VCPU。
除此之外,图1还示出了虚拟机监视器(hypervisor),虚拟机监视器是一种运行在物理硬件和操作系统之间的中间层软件,本申请对此不做过多介绍。
图2是本申请实施例提供的一种进程间通信方法的流程图。该方法可以由图1所示的计算机设备执行,例如由计算机设备中的宿主机或者客户机执行。如图2所示,该方法包括如下步骤。
S101:第一客户端确定运行在第一客户端模式的第一通信虚拟处理器CCPU。
S102:第一客户端确定待调用执行实体ACTV。
其中,待调用ACTV用于存储运行在第二客户端模式的上下文和待发送信息。待发送信息是指第一客户端待发送给第二客户端的信息。
其中,第一客户端和第二客户端中的一个为客户机,第一客户端和第二客户端中的另一个为宿主机。例如,第一客户端为客户机,则第二客户端为宿主机。再例如,第一客户端为宿主机,则第二客户端为客户机。
S103:第一客户端控制第一CCPU调用ACTV中运行在第二客户端模式的上下文,从第一客户端模式切换至第二客户端模式,以使第一CCPU在第二客户端模式,将对应的ACTV中的待发送信息传递给第二客户端。
在第一CCPU从第一客户端模式切换至第二客户端模式后,第二客户端能够监测到第一CCPU从第一客户端模式切换至第二客户端模式,此时,第二客户端从该第一CCPU对应的ACTV中获取信息(也即前文的待传输信息),完成信息的进程间传输。
在本申请实施例中,第一客户端通过控制运行在第一客户端模式的CCPU切换到第二客户端模式,该切换过程中依靠ACTV中的上下文实现,并且ACTV中还携带待传输信息,这样CCPU在完成切换后,第二客户端就能够从CCPU对应的ACTV中获得传输的信息,实现进程间的信息传输。该方案不占用客户机的虚拟CPU;信息传递过程在切换模式时实现,不需要额外IO操作;无需VM-exit和中断操作。故本申请实现宿主机和客户机之间的跨虚拟机的进程间通信时,整个传递过程更简单,且不影响客户机性能。
图3是本申请实施例提供的一种进程间通信方法的流程图。该方法可以由图1所示的计算机设备执行,例如由计算机设备中宿主机和客户机执行。如图3所示,该方法包括如下步骤。
S201:宿主机确定运行在宿主机模式的第一通信虚拟处理器CCPU。
在该步骤中,宿主机可以从运行在宿主机模式的多个CPPU中,选出空闲的CCPU作为第一CCPU。其中,空闲的CCPU是指未执行通信任务的CCPU。
示例性地,宿主机可以通过调用宿主机内核,在内核中确定出空闲的CCPU作为第一CCPU。
在一种示例中,客户机中只存在一个应用,故宿主机提供的信息都是传输给客户机中的该应用。此时,当内核中存在多个空闲的CCPU时,宿主机可以选择任一个空闲的CCPU作为第一CCPU。
在另一种示例中,客户机中存在多个应用,故宿主机提供的信息通常是传输给客户机中特定应用。此时,客户机中的多个应用与多个CCPU可以建立对应关系,或者每个CCPU都具有与各个应用对应的实例。当内核中存在多个空闲的CCPU时,宿主机可以选择与特定应用对应的CCPU作为第一CCPU,或者选择任一个空闲的CCPU的与特定应用对应的实例作为第一CCPU。
图4是本申请实施例提供的一种进程间通信的示意图。如图4所示,在步骤①,在有应用需要传输信息时,宿主机确定空闲的CCPU。
S202:宿主机在ACTV服务中选择空闲ACTV,ACTV服务用于管理多个ACTV。
其中,ACTV包括至少一个第一寄存器和至少一个第二寄存器,至少一个第一寄存器用于存储运行在客户机模式的上下文。
示例性地,宿主机在第一ACTV服务中选择空闲ACTV,第一ACTV服务为管理宿主机到客户机通信的ACTV服务。例如,图1中的ACTV-SRV-β。
在该步骤中,宿主机可以从第一ACTV服务中,选出空闲的ACTV作为第一ACTV。其中,空闲的ACTV是指未被调用的ACTV。
在一种示例中,客户机中只存在一个应用,故宿主机提供的信息都是传输给客户机中的该应用。此时,当第一ACTV服务中存在多个空闲的ACTV时,宿主机可以选择任一个空闲的ACTV作为第一ACTV。
在另一种示例中,客户机中存在多个应用,故宿主机提供的信息通常是传输给客户机中特定应用。此时,客户机中的多个应用与多个ACTV可以建立对应关系,不同应用所需要传输的信息不同,故不同应用对应的ACTV的第二寄存器的配置不同。当第一ACTV服务中存在多个空闲的ACTV时,宿主机可以选择与特定应用对应的ACTV作为第一ACTV。
再次参见图4,在步骤②,宿主机在ACTV-SRV-β确定空闲的ACTV,作为第一ACTV。
S203:宿主机将待发送信息写入空闲ACTV的至少一个第二寄存器,得到待调用ACTV。
在该步骤中,宿主机向至少一个第二寄存器写入的可以是信息内容,也可以是存储信息的地址。
通常,ACTV的各个第二寄存器都已经定义了存储的信息类型,故写入时只需要写入定义的信息类型对应的信息即可。
示例性地,以智能座舱场景为例,宿主机中的应用检测到车辆碰撞,此时需要将碰撞信息通知给客户机中的应用,该信息可以是客户机需要显示的指示图标,例如指示图标为碰撞告警图标。此时,宿主机可以向ACTV的X0寄存器写入碰撞告警图标对应的标识,例如1,向ACTV的X1寄存器写入碰撞告警图标显示位置对应的标识,例如0,表示显示在屏幕左上角,等等。当然上述仅为示例,本申请对写入的信息内容不做限制。
经过步骤S203,待调用ACTV存储有运行在客户机模式的上下文和待发送信息。
S204:宿主机控制第一CCPU调用ACTV中运行在客户机模式的上下文,从宿主机模式切换至客户机模式。
S205:在监测到第一CCPU从宿主机模式切换到客户机模式的情况下,客户机从第一CCPU对应的ACTV中获取信息。
在步骤S204中,第一CCPU通过调用ACTV建立与该ACTV之间的链接关系,因此,即使第一CCPU从宿主机模式切换到客户机模式,上述链接关系依然存在。所以,客户机检测到第一CCPU从宿主机模式切换到客户机模式时,即可基于该链接关系确定第一CCPU对应的ACTV,并从该ACTV的第二寄存器中读取信息。
在一种示例中,客户机中只存在一个应用,故宿主机提供的信息都是传输给客户机中的该应用。此时,客户机从第一CCPU对应的ACTV中获取信息后,提供给该应用即可。
在另一种示例中,客户机中存在多个应用,故宿主机提供的信息通常是传输给客户机中特定应用。此时,客户机从第一CCPU对应的ACTV中获取信息后,提供给与第一CCPU对应的应用,或者提供给与第一CCPU的实例对应的应用。
在第一CCPU从宿主机模式切换到客户机模式后,客户机能够监测到第一CCPU从宿主机模式切换到客户机模式,此时,客户机从该第一CCPU对应的ACTV中获取信息(也即前文的待传输信息),完成信息的进程间传输。
再次参见图4,在步骤③,客户机在CCPU从宿主机模式切换至客户机模式后,从CCPU对应的ACTV中获取信息。
可选地,在完成上述进程间通信后,该方法还可以包括:客户机控制第一CCPU从客户机模式返回宿主机模式。
其中,切换的方式是调用另一种ACTV,该ACTV存储运行在宿主机模式的上下文。切换过程中,如果客户机有信息传输给宿主机,例如应答信息,则切换前写入ACTV的第二寄存器中,如果客户机没有信息传输给宿主机,则无需写入步骤。
图5是本申请实施例提供的一种进程间通信方法的流程图。该方法可以由图1所示的计算机设备执行,例如由计算机设备中宿主机和客户机执行。如图5所示,该方法包括如下步骤。
S301:客户机确定运行在客户机模式的第二通信虚拟处理器CCPU。
在该步骤中,客户机可以从运行在客户机模式的多个CPPU中,选出空闲的CCPU作为第二CCPU。其中,空闲的CCPU是指未执行通信任务的CCPU。
示例性地,客户机可以通过调用客户机内核,在内核中确定出空闲的CCPU作为第二CCPU。
在一种示例中,宿主机中只存在一个应用,故客户机提供的信息都是传输给宿主机中的该应用。此时,当内核中存在多个空闲的CCPU时,客户机可以选择任一个空闲的CCPU作为第二CCPU。
在另一种示例中,宿主机中存在多个应用,故客户机提供的信息通常是传输给宿主机中特定应用。此时,宿主机中的多个应用与多个CCPU可以建立对应关系,或者每个CCPU都具有与各个应用对应的实例。当内核中存在多个空闲的CCPU时,客户机可以选择与特定应用对应的CCPU作为第二CCPU,或者选择任一个空闲的CCPU的与特定应用对应的实例作为第二CCPU。
图6是本申请实施例提供的一种进程间通信的示意图。如图6所示,在步骤①,在有应用需要传输信息时,客户机确定空闲的CCPU。
S302:客户机在ACTV服务中选择空闲ACTV,ACTV服务用于管理多个ACTV。
其中,ACTV包括至少一个第一寄存器和至少一个第二寄存器,至少一个第一寄存器用于存储运行在宿主机模式的上下文。
示例性地,客户机在第二ACTV服务中选择空闲ACTV,第二ACTV服务为管理客户机到宿主机通信的ACTV服务。例如,图1中的ACTV-SRV-α。
在该步骤中,客户机可以从第二ACTV服务中,选出空闲的ACTV作为第二ACTV。其中,空闲的ACTV是指未被调用的ACTV。
在一种示例中,宿主机中只存在一个应用,故客户机提供的信息都是传输给宿主机中的该应用。此时,当第二ACTV服务中存在多个空闲的ACTV时,客户机可以选择任一个空闲的ACTV作为第二ACTV。
在另一种示例中,宿主机中存在多个应用,故客户机提供的信息通常是传输给宿主机中特定应用。此时,宿主机中的多个应用与多个ACTV可以建立对应关系,不同应用所需要传输的信息不同,故不同应用对应的ACTV的第二寄存器的配置不同。当第二ACTV服务中存在多个空闲的ACTV时,客户机可以选择与特定应用对应的ACTV作为第二ACTV。
再次参见图6,在步骤②,客户机在ACTV-SRV-α确定空闲的ACTV,作为第二ACTV。
S303:客户机将待发送信息写入空闲ACTV的至少一个第二寄存器,得到待调用ACTV。
在该步骤中,客户机向至少一个第二寄存器写入的可以是信息内容,也可以是存储信息的地址。
通常,ACTV的各个第二寄存器都已经定义了存储的信息类型,故写入时只需要写入定义的信息类型对应的信息即可。
经过步骤S303,待调用ACTV存储有运行在宿主机模式的上下文和待发送信息。
S304:客户机控制第二CCPU调用ACTV中运行在宿主机模式的上下文,从客户机模式切换至宿主机模式。
S305:在监测到第二CCPU从客户机模式切换到宿主机模式的情况下,宿主机从第二CCPU对应的ACTV中获取信息。
在步骤S304中,第二CCPU通过调用ACTV建立与该ACTV之间的链接关系,因此,即使第二CCPU从客户机模式切换到宿主机模式,上述链接关系依然存在。所以,宿主机检测到第二CCPU从客户机模式切换到宿主机模式时,即可基于该链接关系确定第二CCPU对应的ACTV,并从该ACTV的第二寄存器中读取信息。
在一种示例中,宿主机中只存在一个应用,故客户机提供的信息都是传输给宿主机中的该应用。此时,宿主机从第二CCPU对应的ACTV中获取信息后,提供给该应用即可。
在另一种示例中,宿主机中存在多个应用,故客户机提供的信息通常是传输给宿主机中特定应用。此时,宿主机从第二CCPU对应的ACTV中获取信息后,提供给与第二CCPU对应的应用,或者提供给与第二CCPU的实例对应的应用。
在第二CCPU从客户机模式切换到宿主机模式后,宿主机能够监测到第二CCPU从客户机模式切换到宿主机模式,此时,宿主机从该第二CCPU对应的ACTV中获取信息(也即前文的待传输信息),完成信息的进程间传输。
再次参见图6,在步骤③,宿主机在CCPU从客户机模式切换至宿主机模式后,从CCPU对应的ACTV中获取信息。
可选地,在完成上述进程间通信后,该方法还可以包括:宿主机控制第二CCPU从宿主机模式返回客户机模式。
其中,切换的方式是调用另一种ACTV,该ACTV存储运行在客户机模式的上下文。切换过程中,如果宿主机有信息传输给客户机,例如应答信息,则切换前写入ACTV的第二寄存器中,如果宿主机没有信息传输给客户机,则无需写入步骤。
图7是本申请实施例提供的一种进程间通信的示意图。参见图7,圆形代表宿主机任务(应用),三角形代表客户机中的任务(应用),两者通讯通过CCPU的模式切换实现,不占用客户机的资源。该方案可以应用在基于进阶精简指令集机器(advanced RISC machine,ARM)架构的微内核系统中,当然也可以应用在其他架构,本申请对此不做限制。
本申请提供的方案,通过调度ACTV进行CCPU模式切换完成进程间通信,在不占用客户机资源的情况下,不经过调度系统,实现宿主机应用和客户机应用之间的高性能通信的过程和方法。
其中,CCPU通常是通过宿主机预申请的配置资源,对虚拟机中正在执行任务的VCPU不受影响(不产生VM-exit),消除对客户机的性能波动。基于客户机中进程与宿主机中进程间的高效通信,可以将一些系统服务设置在虚拟机中,利用虚拟机带来的隔离性和安全性,提供更多的竞争力空间。
图8是本申请实施例提供的一种进程间通信装置的框图。该进程间通信装置可以通过软件、硬件或者两者的结合实现成为计算机设备的全部或者一部分。该进程间通信装置可以包括:第一确定单元501、第二确定单元502和控制单元503。
其中,第一确定单元501,用于确定运行在第一客户端模式的第一通信虚拟处理器CCPU;
第二确定单元502,用于确定待调用执行实体ACTV,待调用ACTV用于存储运行在第二客户端模式的上下文和待发送信息,第一客户端和第二客户端中的一个为客户机,第一客户端和第二客户端中的另一个为宿主机;
控制单元503,用于控制第一CCPU调用ACTV中运行在第二客户端模式的上下文,从第一客户端模式切换至第二客户端模式,以使第一CCPU在第二客户端模式,将对应的ACTV中的待发送信息传递给第二客户端。
可选地,待调用ACTV包括至少一个第一寄存器和至少一个第二寄存器,至少一个第一寄存器用于存储运行在第二客户端模式的上下文,至少一个第二寄存器用于存储待发送信息。
可选地,第二确定单元502,用于在ACTV服务中选择空闲ACTV,ACTV服务用于管理多个ACTV;将待发送信息写入空闲ACTV的至少一个第二寄存器,得到待调用ACTV。
可选地,控制单元503,用于在第一客户端为宿主机的情况下,在第一ACTV服务中选择空闲ACTV,第一ACTV服务为管理宿主机到客户机通信的ACTV服务。
可选地,控制单元503,用于在第一客户端为客户机的情况下,在第二ACTV服务中选择空闲ACTV,第二ACTV服务为管理客户机到宿主机通信的ACTV服务。
可选地,控制单元503,还用于在监测到第二CCPU从第二客户端模式切换到第一客户端模式的情况下,从第二CCPU对应的ACTV中获取信息。
需要说明的是,上述实施例提供的进程间通信装置在进行进程间通信时,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将设备的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。另外,上述实施例提供的进程间通信装置与进程间通信方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例还提供了一种通信系统,该通信系统包括如图8所示的进程间通信装置。
图9示出了本申请实施例提供的计算机设备150的结构示意图。图9所示的计算机设备150用于执行上述图2至图7任一项所示的进程间通信方法所涉及的操作。该计算机设备150可以由一般性的总线体系结构来实现。
如图9所示,计算机设备150包括至少一个处理器151、存储器153以及至少一个通信接口154。
处理器151例如是通用中央处理器(central processing unit,CPU)、数字信号处理器(digital signal processor,DSP)、网络处理器(network processer,NP)、数据处理单元(Data Processing Unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器151包括专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。PLD例如是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。其可以实现或执行结合本申请实施例公开内容所描述的各种逻辑方框、模块和电路。处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。
可选的,计算机设备150还包括总线。总线用于在计算机设备150的各组件之间传送信息。总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器153例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器153例如是独立存在,并通过总线与处理器151相连接。存储器153也可以和处理器151集成在一起。
通信接口154使用任何收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(RAN)或无线局域网(wireless local area networks,WLAN)等。通信接口154可以包括有线通信接口,还可以包括无线通信接口。具体的,通信接口154可以为以太(Ethernet)接口、快速以太(Fast Ethernet,FE)接口、千兆以太(GigabitEthernet,GE)接口,异步传输模式(Asynchronous Transfer Mode,ATM)接口,无线局域网(wireless local area networks,WLAN)接口,蜂窝网络通信接口或其组合。以太网接口可以是光接口,电接口或其组合。在本申请实施例中,通信接口154可以用于计算机设备150与其他设备进行通信。
在具体实现中,作为一种实施例,处理器151可以包括一个或多个CPU,如图9中所示的CPU0和CPU1。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备150可以包括多个处理器,如图9中所示的处理器151和处理器155。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备150还可以包括输出设备和输入设备。输出设备和处理器151通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备和处理器151通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器153用于存储执行本申请方案的程序代码1510,处理器151可以执行存储器153中存储的程序代码1510。也即是,计算机设备150可以通过处理器151执行存储器153中的程序代码1510,来实现方法实施例提供的进程间通信方法。程序代码1510中可以包括一个或多个软件模块。可选地,处理器151自身也可以存储执行本申请方案的程序代码或指令。
在具体实施例中,本申请实施例的计算机设备150可对应于上述各个方法实施例中的控制器,计算机设备150中的处理器151读取存储器153中的指令,使图9所示的计算机设备150能够执行控制器所执行的全部或部分操作。
具体的,处理器151用于确定运行在第一客户端模式的第一通信虚拟处理器CCPU;确定待调用执行实体ACTV,待调用ACTV用于存储运行在第二客户端模式的上下文和待发送信息,第一客户端和第二客户端中的一个为客户机,第一客户端和第二客户端中的另一个为宿主机;控制第一CCPU调用ACTV中运行在第二客户端模式的上下文,从第一客户端模式切换至第二客户端模式,以使第一CCPU在第二客户端模式,将对应的ACTV中的待发送信息传递给第二客户端。
其他可选的实施方式,为了简洁,在此不再赘述。
其中,图2至图7任一项所示的进程间通信方法的各步骤通过计算机设备150的处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。
本申请实施例还提供了一种芯片,包括:输入接口、输出接口、处理器和存储器。输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连。处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行上述任一种的进程间通信方法。
应理解的是,上述处理器可以是CPU,还可以是其他通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持ARM架构的处理器。
进一步地,在一种可选的实施例中,上述处理器为一个或多个,存储器为一个或多个。可选地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储参考块和目标块。
该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、PROM、EPROM、EEPROM或闪存。易失性存储器可以是RAM,其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,SRAM、DRAM、SDRAM、DDR SDRAM、ESDRAM、SLDRAM和DR RAM。
本申请实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,当计算机可读存储介质中存储的计算机指令被计算机设备执行时,使得计算机设备执行上述所提供的进程间通信方法。
本申请实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机设备上运行时,使得计算机设备执行上述所提供的进程间通信方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk)等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
除非另作定义,此处使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请专利申请说明书以及权利要求书中使用的“第一”、“第二”、“第三”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现在“包括”或者“包含”前面的元件或者物件涵盖出现在“包括”或者“包含”后面列举的元件或者物件及其等同,并不排除其他元件或者物件。
以上仅为本申请一个实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (16)
1.一种进程间通信方法,其特征在于,所述方法包括:
第一客户端确定运行在第一客户端模式的第一通信虚拟处理器CCPU;
所述第一客户端确定待调用执行实体ACTV,所述待调用ACTV用于存储运行在第二客户端模式的上下文和待发送信息,所述第一客户端和所述第二客户端中的一个为客户机,所述第一客户端和所述第二客户端中的另一个为宿主机;
所述第一客户端控制所述第一CCPU调用所述ACTV中运行在所述第二客户端模式的上下文,从所述第一客户端模式切换至所述第二客户端模式,以使所述第一CCPU在所述第二客户端模式,将对应的所述ACTV中的待发送信息传递给所述第二客户端。
2.根据权利要求1所述的方法,其特征在于,所述待调用ACTV包括至少一个第一寄存器和至少一个第二寄存器,所述至少一个第一寄存器用于存储运行在所述第二客户端模式的上下文,所述至少一个第二寄存器用于存储所述待发送信息。
3.根据权利要求2所述的方法,其特征在于,所述第一客户端确定待调用执行实体ACTV,包括:
所述第一客户端在ACTV服务中选择空闲ACTV,所述ACTV服务用于管理多个ACTV;
所述第一客户端将所述待发送信息写入所述空闲ACTV的至少一个第二寄存器,得到所述待调用ACTV。
4.根据权利要求3所述的方法,其特征在于,所述第一客户端在ACTV服务中选择空闲ACTV,包括:
在所述第一客户端为宿主机的情况下,所述第一客户端在第一ACTV服务中选择空闲ACTV,所述第一ACTV服务为管理宿主机到客户机通信的ACTV服务。
5.根据权利要求3所述的方法,其特征在于,所述第一客户端在ACTV服务中选择空闲ACTV,包括:
在所述第一客户端为客户机的情况下,所述第一客户端在第二ACTV服务中选择空闲ACTV,所述第二ACTV服务为管理客户机到宿主机通信的ACTV服务。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
在监测到第二CCPU从所述第二客户端模式切换到所述第一客户端模式的情况下,所述第一客户端从所述第二CCPU对应的ACTV中获取信息。
7.一种进程间通信装置,其特征在于,所述装置应用于第一客户端,所述装置包括:
第一确定单元,用于确定运行在第一客户端模式的第一通信虚拟处理器CCPU;
第二确定单元,用于确定待调用执行实体ACTV,所述待调用ACTV用于存储运行在第二客户端模式的上下文和待发送信息,所述第一客户端和所述第二客户端中的一个为客户机,所述第一客户端和所述第二客户端中的另一个为宿主机;
控制单元,用于控制所述第一CCPU调用所述ACTV中运行在所述第二客户端模式的上下文,从所述第一客户端模式切换至所述第二客户端模式,以使所述第一CCPU在所述第二客户端模式,将对应的所述ACTV中的待发送信息传递给所述第二客户端。
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任一项所述的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311438051.8A CN117573386B (zh) | 2023-10-31 | 2023-10-31 | 进程间通信方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311438051.8A CN117573386B (zh) | 2023-10-31 | 2023-10-31 | 进程间通信方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117573386A true CN117573386A (zh) | 2024-02-20 |
CN117573386B CN117573386B (zh) | 2024-07-30 |
Family
ID=89892630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311438051.8A Active CN117573386B (zh) | 2023-10-31 | 2023-10-31 | 进程间通信方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117573386B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101331460A (zh) * | 2005-12-16 | 2008-12-24 | 国际商业机器公司 | 基于处理能力的实时基准对软件产品的使用进行计量的方法、系统和计算机程序 |
US20140089180A1 (en) * | 2009-03-26 | 2014-03-27 | Won Inc. | Electronic wallet service system based on an idle screen application |
WO2014101010A1 (zh) * | 2012-12-26 | 2014-07-03 | 华为技术有限公司 | 一种虚拟机系统的资源管理方法、虚拟机系统和装置 |
CN110858164A (zh) * | 2018-08-22 | 2020-03-03 | 成都华为技术有限公司 | 进程间通信方法、装置及计算机可读介质 |
CN111323992A (zh) * | 2018-12-13 | 2020-06-23 | 佳能株式会社 | 设置闪光灯的发光量的拍摄系统、照明设备和控制方法 |
CN112677151A (zh) * | 2020-12-16 | 2021-04-20 | 用友网络科技股份有限公司 | 机器人运行控制方法、系统和可读存储介质 |
WO2021217529A1 (zh) * | 2020-04-29 | 2021-11-04 | 华为技术有限公司 | 一种进程间通信的方法及系统 |
CN114064302A (zh) * | 2020-07-30 | 2022-02-18 | 华为技术有限公司 | 一种进程间通信的方法及装置 |
US20220171700A1 (en) * | 2020-12-02 | 2022-06-02 | Unifabrix Ltd. | System and method for multimodal computer address space provisioning |
CN116431269A (zh) * | 2022-01-04 | 2023-07-14 | 北京金山云网络技术有限公司 | 虚拟机监控方法、装置、设备及存储介质 |
-
2023
- 2023-10-31 CN CN202311438051.8A patent/CN117573386B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101331460A (zh) * | 2005-12-16 | 2008-12-24 | 国际商业机器公司 | 基于处理能力的实时基准对软件产品的使用进行计量的方法、系统和计算机程序 |
US20140089180A1 (en) * | 2009-03-26 | 2014-03-27 | Won Inc. | Electronic wallet service system based on an idle screen application |
WO2014101010A1 (zh) * | 2012-12-26 | 2014-07-03 | 华为技术有限公司 | 一种虚拟机系统的资源管理方法、虚拟机系统和装置 |
CN110858164A (zh) * | 2018-08-22 | 2020-03-03 | 成都华为技术有限公司 | 进程间通信方法、装置及计算机可读介质 |
CN111323992A (zh) * | 2018-12-13 | 2020-06-23 | 佳能株式会社 | 设置闪光灯的发光量的拍摄系统、照明设备和控制方法 |
WO2021217529A1 (zh) * | 2020-04-29 | 2021-11-04 | 华为技术有限公司 | 一种进程间通信的方法及系统 |
CN114064302A (zh) * | 2020-07-30 | 2022-02-18 | 华为技术有限公司 | 一种进程间通信的方法及装置 |
US20220171700A1 (en) * | 2020-12-02 | 2022-06-02 | Unifabrix Ltd. | System and method for multimodal computer address space provisioning |
CN112677151A (zh) * | 2020-12-16 | 2021-04-20 | 用友网络科技股份有限公司 | 机器人运行控制方法、系统和可读存储介质 |
CN116431269A (zh) * | 2022-01-04 | 2023-07-14 | 北京金山云网络技术有限公司 | 虚拟机监控方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
周继冬;崔超远;王儒敬;陈祝红;: "Xen硬件虚拟化下一种客户机进程追踪技术", 计算机系统应用, no. 06, 15 June 2013 (2013-06-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN117573386B (zh) | 2024-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3039540B1 (en) | Virtual machine monitor configured to support latency sensitive virtual machines | |
US10180843B2 (en) | Resource processing method and device for a multi-core operating system | |
US20180241655A1 (en) | Rps support for nfv by system call bypass | |
US9747123B2 (en) | Technologies for multi-level virtualization | |
US20110219373A1 (en) | Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform | |
US10409633B2 (en) | Hypervisor-visible guest thread management | |
US9959134B2 (en) | Request processing using VM functions | |
US11106481B2 (en) | Safe hyper-threading for virtual machines | |
US20220156103A1 (en) | Securing virtual machines in computer systems | |
US20180129770A1 (en) | Technologies for providing fpga infrastructure-as-a-service computing capabilities | |
CN110447012B (zh) | 协作虚拟处理器调度 | |
CN115904761A (zh) | 片上系统、车辆及视频处理单元虚拟化方法 | |
US11429424B2 (en) | Fine-grained application-aware latency optimization for virtual machines at runtime | |
CN117573386B (zh) | 进程间通信方法及装置 | |
US11385927B2 (en) | Interrupt servicing in userspace | |
US11237860B2 (en) | Command-based processing of real-time virtualized jobs | |
US11720388B2 (en) | Management of dynamic sharing of central processing units | |
US10810032B2 (en) | System and method for dynamic guest-controlled halt polling using a CPU governor | |
US11960420B2 (en) | Direct memory control operations on memory data structures | |
CN113703913A (zh) | 设备测试方法及装置 | |
US20240248744A1 (en) | Systems and methods for offloading guest tasks to a host system | |
KR20230034195A (ko) | 하이브리드 가상 머신 관리자의 시스템 및 동작 방법 | |
US20200319940A1 (en) | Management of dynamic sharing of central processing units | |
CN118484263A (zh) | 硬件资源访问方法、系统、存储介质及程序产品 | |
US8656375B2 (en) | Cross-logical entity accelerators |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |