本技术涉及通信,具体而言,涉及一种进程间通信方法、装置及存储介质。
背景技术:
1、边缘计算脱胎于云计算,靠近设备侧,具备快速反应能力,但不能应付大量计算及存储的场合。在边缘计算的具体实现中,一种可靠的进程间通信是很有必要的。
2、边缘计算模块通常是一个多核处理器,也可以是一个异构多核处理器或者是由多个处理器组成的模块。目前亟需一种能够满足各种类型的边缘计算模块的进程间通信方式。
技术实现思路
1、本技术的目的在于,针对上述现有技术中的不足,提供一种进程间通信方法、装置及存储介质,以便于提升进程间通信的可靠性和实时性,且能够满足多种处理器类型下的进程间通信。
2、为实现上述目的,本技术实施例采用的技术方案如下:
3、第一方面,本技术实施例提供了一种进程间通信方法,包括:
4、获取当前处理器上第一处理核中第一进程的消息报文,所述消息报文中包括通信数据;其中,所述当前处理器为多核处理器、或者异构多核处理器、或者多处理器系统中的一个处理器;
5、解析所述消息报文,确定所述消息报文待发送至的第二进程;
6、根据所述第一进程与所述第二进程之间的位置关系以及所述位置关系对应的进程间通信方式,将所述消息报文发送至所述第二进程。
7、可选地,所述解析所述消息报文,确定所述消息报文待发送至的第二进程,包括:
8、通过当前处理器中的消息传输驱动模块或者消息处理单元,解析所述消息报文,确定所述消息报文所要发送至的第二进程的标识以及所述第二进程所属的处理核的标识。
9、可选地,所述根据所述第一进程与所述第二进程之间的位置关系以及所述位置关系对应的进程间通信方式,将所述消息报文发送至所述第二进程,包括:
10、若所述第一进程与所述第二进程位于同一个处理器上的相同类型处理核中,则通过所述当前处理器中的消息处理单元,基于网络通信接口,将所述消息报文发送至所述第二进程。
11、可选地,所述根据所述第一进程与所述第二进程之间的位置关系以及所述位置关系对应的进程间通信方式,将所述消息报文发送至所述第二进程,包括:
12、若所述第一进程与所述第二进程位于同一处理器上的不同类型处理核中,则通过所述当前处理器中的消息传输驱动模块对所述消息报文进行封装,得到封装后的消息报文,并将所述封装后的消息报文传输至所述当前处理器中的消息处理单元;
13、通过所述消息处理单元将所述封装后的消息报文发送至所述第二进程。
14、可选地,所述对所述消息报文进行封装,得到封装后的消息报文,包括:
15、将所述消息报文封装成指定格式的数据,得到所述封装后的消息报文,所述指定格式为满足以网络通信接口进行传输的数据格式。
16、可选地,所述根据所述第一进程与所述第二进程之间的位置关系以及所述位置关系对应的进程间通信方式,将所述消息报文发送至所述第二进程,包括:
17、若所述第一进程与所述第二进程位于不同处理器上,则通过所述当前处理器中的消息传输驱动模块向所述当前处理器中的消息处理单元发送所述消息报文的读取信息,所述读取信息包括:所述消息报文的读取地址以及读取长度;
18、根据所述读取信息,通过所述消息处理单元从内存中读取所述消息报文,并将所述消息报文发送至所述第二进程。
19、可选地,所述根据所述读取信息,通过所述消息处理单元从内存中读取所述消息报文,包括:
20、通过所述消息处理单元采用直接内存访问的方式,从内存中所述读取地址下获取所述读取长度所指示的消息报文。
21、可选地,所述将所述消息报文发送至所述第二进程,包括:
22、通过硬件接口将所述消息报文发送至所述第二进程所属的处理器中的消息处理单元,并由所述第二进程所属的处理器中的消息处理单元对所述消息报文进行本地广播。
23、第二方面,本技术实施例还提供了一种进程间通信装置,包括:获取模块、解析模块以及通信模块;
24、所述获取模块,用于获取当前处理器上第一处理核中第一进程的消息报文,所述消息报文中包括通信数据;其中,所述当前处理器为多核处理器、或者异构多核处理器、或者多处理器系统中的一个处理器;
25、所述解析模块,用于解析所述消息报文,确定所述消息报文待发送至的第二进程;
26、所述通信模块,用于根据所述第一进程与所述第二进程之间的位置关系以及所述位置关系对应的进程间通信方式,将所述消息报文发送至所述第二进程。
27、可选地,所述解析模块,具体用于通过当前处理器中的消息传输驱动模块或者消息处理单元,解析所述消息报文,确定所述消息报文所要发送至的第二进程的标识以及所述第二进程所属的处理核的标识。
28、可选地,所述通信模块,具体用于若所述第一进程与所述第二进程位于同一个处理器上的相同类型处理核中,则通过所述当前处理器中的消息处理单元,基于网络通信接口,将所述消息报文发送至所述第二进程。
29、可选地,所述通信模块,具体用于若所述第一进程与所述第二进程位于同一处理器上的不同类型处理核中,则通过所述当前处理器中的消息传输驱动模块对所述消息报文进行封装,得到封装后的消息报文,并将所述封装后的消息报文传输至所述当前处理器中的消息处理单元;
30、通过所述消息处理单元将所述封装后的消息报文发送至所述第二进程。
31、可选地,所述通信模块,具体用于将所述消息报文封装成指定格式的数据,得到所述封装后的消息报文,所述指定格式为满足以网络通信接口进行传输的数据格式。
32、可选地,所述通信模块,具体用于若所述第一进程与所述第二进程位于不同处理器上,则通过所述当前处理器中的消息传输驱动模块向所述当前处理器中的消息处理单元发送所述消息报文的读取信息,所述读取信息包括:所述消息报文的读取地址以及读取长度;根据所述读取信息,通过所述消息处理单元从内存中读取所述消息报文,并将所述消息报文发送至所述第二进程。
33、可选地,所述通信模块,具体用于通过所述消息处理单元采用直接内存访问的方式,从内存中所述读取地址下获取所述读取长度所指示的消息报文。
34、可选地,所述通信模块,具体用于通过硬件接口将所述消息报文发送至所述第二进程所属的处理器中的消息处理单元,并由所述第二进程所属的处理器中的消息处理单元对所述消息报文进行本地广播。
35、第三方面,本技术实施例提供了一种电子设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以实现如第一方面中提供的进程间通信方法。
36、第四方面,本技术实施例提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面提供的进程间通信方法。
37、本技术的有益效果是:
38、本技术提供一种进程间通信方法、装置及存储介质,该方法包括:获取当前处理器上第一处理核中第一进程的消息报文;解析消息报文,确定消息报文待发送至的第二进程;根据第一进程与第二进程之间的位置关系以及位置关系对应的进程间通信方式,将消息报文发送至第二进程。本方法可根据发送数据的进程与接收数据的进程之间的位置关系,确定当前的进程间通信场景,从而触发与当前的通信场景对应的通信方式,以实现进程间的可靠通信,从而满足了不同边缘计算模块的进程间通信,方法的实用性更强。
39、其次,基于内核去掉tcp/ip协议栈的零copy透传驱动,在较少开销的情况下,提高了传输速率,减少延时,同时通过自定义协议,提高了安全性。
40、另外,相对于传统的ubus通信方式,本方案的通信方式提高了传输速率,提升了可传输数据最大长度,使得进程间输较大数据成为可能。
1.一种进程间通信方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述解析所述消息报文,确定所述消息报文待发送至的第二进程,包括:
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一进程与所述第二进程之间的位置关系以及所述位置关系对应的进程间通信方式,将所述消息报文发送至所述第二进程,包括:
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一进程与所述第二进程之间的位置关系以及所述位置关系对应的进程间通信方式,将所述消息报文发送至所述第二进程,包括:
5.根据权利要求4所述的方法,其特征在于,所述对所述消息报文进行封装,得到封装后的消息报文,包括:
6.根据权利要求1所述的方法,其特征在于,所述根据所述第一进程与所述第二进程之间的位置关系以及所述位置关系对应的进程间通信方式,将所述消息报文发送至所述第二进程,包括:
7.根据权利要求6所述的方法,其特征在于,所述根据所述读取信息,通过所述消息处理单元从内存中读取所述消息报文,包括:
8.根据权利要求6所述的方法,其特征在于,所述将所述消息报文发送至所述第二进程,包括:
9.一种进程间通信装置,其特征在于,包括:获取模块、解析模块以及通信模块;
10.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时以实现如权利要求1至8任一所述的进程间通信方法。