通信方法及装置制造方法及图纸

技术编号:38102254 阅读:9 留言:0更新日期:2023-07-06 09:21
本申请公开了一种通信方法及装置,属于通信技术领域。该方法应用于计算设备,计算设备运行有内存管理组件、第一进程和与第一进程通信的至少一个第二进程。该方法包括:内存管理组件从计算设备的内存中分配通信内存,并配置第一进程和至少一个第二进程具有通信内存的访问权限,通信内存用于存储第一进程与至少一个第二进程之间的通信数据;内存管理组件向第一进程和至少一个第二进程通知通信内存的分配结果;第一进程与至少一个第二进程通过在通信内存中读和/或写数据进行通信。本申请实现了不同通信过程之间的故障隔离,有效地减小了故障的影响范围。故障的影响范围。故障的影响范围。

【技术实现步骤摘要】
通信方法及装置


[0001]本申请涉及通信
,特别涉及一种通信方法及装置。

技术介绍

[0002]计算设备中的不同进程之间可以通过共享内存实现通信。例如,进程1需要向进程2传输数据时,进程1可将需要向进程2传输的数据写到计算设备的共享内存中,进程2在该共享内存中读取数据后,即可完成进程1与进程2之间的数据传输。
[0003]目前,计算设备通常会配置一块共享内存,以供需要通过共享内存实现通信的所有进程共同使用。
[0004]但是,当使用该共享内存的任一进程因故障退出时,共享内存会出现数据不一致的情况,导致共享内存不可用,影响所有进程的通信。

技术实现思路

[0005]本申请提供了一种通信方法及装置。本申请实现了不同通信过程之间的故障隔离,有效地减小了故障的影响范围。本申请提供的技术方案如下:
[0006]第一方面,本申请提供了一种通信方法。该方法应用于计算设备。计算设备运行有内存管理组件、第一进程和与第一进程通信的至少一个第二进程。该方法包括:内存管理组件从计算设备的内存中分配通信内存,并配置第一进程和至少一个第二进程具有通信内存的访问权限,通信内存用于存储第一进程与至少一个第二进程之间的通信数据;内存管理组件向第一进程和至少一个第二进程通知通信内存的分配结果;第一进程与至少一个第二进程通过在通信内存中读和/或写数据进行通信。
[0007]由于内存管理组件会为通信过程分配通信内存,并为通信内存配置访问权限,使得为任一通信过程分配的通信内存仅能被参与该通信过程的进程访问。这样一来,任一通信过程中传输的数据仅在为其分配的通信内存中存储,不同通信过程中传输的数据分别在不同的通信内存中存储,当任一通信过程中的进程出现故障时,该故障仅可能会导致该进程使用的通信内存不可用,可能影响的仅为该进程参与的通信过程,不会影响该进程未参与的通信过程使用的通信内存。因此,通过该通信方法,实现了不同通信过程之间的故障隔离,有效地减小了故障的影响范围,保障了通信内存的高可用性。
[0008]可选地,在内存管理组件从计算设备的内存中分配通信内存之前,该方法还包括:第一进程向内存管理组件发送内存申请,内存申请请求内存管理组件为第一进程和至少一个第二进程分配内存,以存储第一进程与至少一个第二进程之间的通信数据。则内存管理组件从计算设备的内存中分配通信内存,包括:内存管理组件基于内存申请,从计算设备的内存中分配通信内存。
[0009]在一种实现方式中,第一进程和至少一个第二进程中至少一个能够同时参与多个通信过程,多个通信过程用于存储通信数据的内存不同,第一进程为第一进程和至少一个第二进程中能够同时参与通信过程最少的进程。由于第一进程同时参与通信过程较少,若
由第一进程发送内存申请,第一进程故障影响的通信过程的总数会大大减小,能够进一步减小故障的影响范围。
[0010]可选地,在内存管理组件向第一进程和至少一个第二进程通知通信内存的分配结果之后,该方法还包括:内存管理组件监控通信内存的实际使用量;当实际使用量满足预设条件时,内存管理组件调整通信内存的大小。这样一来,能够在保证通信内存的可用性的基础上,保证计算设备的内存的资源利用率,减少资源浪费,实现对通信内存大小的细粒度管理。
[0011]其中,当实际使用量满足预设条件时,调整通信内存的大小,包括以下一个或多个:当实际使用量在指定时长内持续小于第一阈值时,减小通信内存的大小;当实际使用量达到第二阈值时,增大通信内存的大小。
[0012]可选地,在内存管理组件向第一进程和至少一个第二进程通知通信内存的分配结果之后,该方法还包括:内存管理组件调整通信内存的访问权限,并向访问权限发生变化的进程通知调整结果。
[0013]在一种实现方式中,在内存管理组件调整通信内存的访问权限之前,该方法还包括:第一进程向内存管理组件发送访问权限变更请求,访问权限变更请求用于请求调整通信内存的访问权限。示例的,当与第一进程进行通信的进程相对于至少一个第二进程发生变化时,第一进程可以向内存管理组件发送访问权限变更请求。则内存管理组件调整通信内存的访问权限,包括:内存管理组件基于访问权限变更请求,调整通信内存的访问权限。
[0014]在内存管理组件在具有通信内存的访问权限的任一进程发生故障后,可能会导致该通信内存出现数据不一致的情况,当情况会导致使用该通信内存实现通信的通信过程出现错误。为避免该错误发生,内存管理组件在确定具有通信内存的访问权限的任一进程发生故障后,可以通知具有通信内存的访问权限的所有进程停止使用通信内存,以防使用该通信内存的进程获取到错误的数据。
[0015]可选地,内存管理组件在确定具有通信内存的访问权限的任一进程发生故障后,还可以为该通信过程重新分配通信内存,并通知具有通信内存的访问权限的所有进程使用重新分配的通信内存,使得第一进程与至少一个第二进程基于通知,通过在重新分配的通信内存中读和/或写数据进行通信。
[0016]这样一来,能够便于将通信过程快速切换至重新分配的通信内存,快速恢复使用通信内存进行通信的可用性,缩短故障时间,从而保障进程间通信的连续性和可靠性。并且,在进程出现故障时,通过停止使用原本分配的通信进程,重新分配通信进程,由于该过程交易实现,能够降低通信过程的维护成本。
[0017]在一种实现方式中,在内存管理组件向第一进程和至少一个第二进程通知通信内存的分配结果之后,该方法还包括:内存管理组件回收通信内存。此时,能够将该通信内存占用的内存另做他用,以保证内存的资源利用率。
[0018]可选地,在内存管理组件回收通信内存之前,该方法还包括:内存管理组件接收第一进程发送的内存回收请求。则内存管理组件回收通信内存,包括:内存管理组件基于内存回收请求回收通信内存。
[0019]第二方面,本申请提供了一种通信装置。该装置应用于计算设备。该装置包括:内存管理模块、第一进程模块和与第一进程模块通信的至少一个第二进程模块。内存管理模
块,用于从计算设备的内存中分配通信内存,并配置第一进程模块和至少一个第二进程模块具有通信内存的访问权限,通信内存用于存储第一进程模块与至少一个第二进程模块之间的通信数据;内存管理模块,还用于向第一进程模块和至少一个第二进程模块通知通信内存的分配结果;第一进程模块与至少一个第二进程模块用于通过在通信内存中读和/或写数据进行通信。
[0020]可选地,第一进程模块,还用于向内存管理模块发送内存申请,内存申请请求内存管理模块为第一进程模块和至少一个第二进程模块分配内存,以存储第一进程模块与至少一个第二进程模块之间的通信数据。
[0021]则内存管理模块,具体用于基于内存申请,从计算设备的内存中分配通信内存。
[0022]可选地,第一进程模块和至少一个第二进程模块中至少一个能够同时参与多个通信过程,多个通信过程用于存储通信数据的内存不同,第一进程模块为第一进程模块和至少一个第二进程模块中能够同时参与通信过程最少的进程模块。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种通信方法,其特征在于,所述方法应用于计算设备,所述计算设备运行有内存管理组件、第一进程和与所述第一进程通信的至少一个第二进程,所述方法包括:所述内存管理组件从所述计算设备的内存中分配通信内存,并配置所述第一进程和所述至少一个第二进程具有所述通信内存的访问权限,所述通信内存用于存储所述第一进程与所述至少一个第二进程之间的通信数据;所述内存管理组件向所述第一进程和所述至少一个第二进程通知所述通信内存的分配结果;所述第一进程与所述至少一个第二进程通过在所述通信内存中读和/或写数据进行通信。2.如权利要求1所述的方法,其特征在于,在所述内存管理组件从所述计算设备的内存中分配通信内存之前,所述方法还包括:所述第一进程向所述内存管理组件发送内存申请,所述内存申请请求所述内存管理组件为所述第一进程和所述至少一个第二进程分配内存,以存储所述第一进程与所述至少一个第二进程之间的通信数据;所述内存管理组件从所述计算设备的内存中分配通信内存,包括:所述内存管理组件基于所述内存申请,从所述计算设备的内存中分配所述通信内存。3.如权利要求2所述的方法,其特征在于,所述第一进程和所述至少一个第二进程中至少一个能够同时参与多个通信过程,所述多个通信过程用于存储通信数据的内存不同,所述第一进程为所述第一进程和所述至少一个第二进程中能够同时参与通信过程最少的进程。4.如权利要求1至3任一所述的方法,其特征在于,在所述内存管理组件向所述第一进程和所述至少一个第二进程通知所述通信内存的分配结果之后,所述方法还包括:所述内存管理组件监控所述通信内存的实际使用量;所述内存管理组件当所述实际使用量满足预设条件时,调整所述通信内存的大小。5.如权利要求4所述的方法,其特征在于,所述当所述实际使用量满足预设条件时,调整所述通信内存的大小,包括以下一个或多个:当所述实际使用量在指定时长内持续小于第一阈值时,减小所述通信内存的大小;当所述实际使用量达到第二阈值时,增大所述通信内存的大小。6.如权利要求1至5任一所述的方法,其特征在于,在所述内存管理组件向所述第一进程和所述至少一个第二进程通知所述通信内存的分配结果之后,所述方法还包括:所述内存管理组件调整所述通信内存的访问权限,并向访问权限发生变化的进程通知调整结果。7.如权利要求6所述的方法,其特征在于,在所述内存管理组件调整所述通信内存的访问权限之前,所述方法还包括:所述第一进程向所述内存管理组件发送访问权限变更请求,所述访问权限变更请求用于请求调整所述通信内存的访问权限;所述内存管理组件调整所述通信内存的访问权限,包括:所述内存管理组件基于所述访问权限变更请求,调整所述通信内存的访问权限。8.如权利要求7所述的方法,其特征在于,所述第一进程向所述内存管理组件发送访问
权限变更请求,包括:当与所述第一进程进行通信的进程相对于所述至少一个第二进程发生变化时,所述第一进程向所述内存管理组件发送所述访问权限变更请求。9.如权利要求1至8任一所述的方法,其特征在于,在所述内存管理组件向所述第一进程和所述至少一个第二进程通知所述通信内存的分配结果之后,所述方法还包括:所述内存管理组件在具有所述通信内存的访问权限的任一进程发生故障后,通知具有所述通信内存的访问权限的所有进程停止使用所述通信内存。10.如权利要求1至9任一所述的方法,其特征在于,在所述内存管理组件向所述第一进程和所述至少一个第二进程通知所述通信内存的分配结果之后,所述方法还包括:所述内存管理组件在具有所述通信内存的访问权限的任一进程发生故障后,重新分配通信内存,并通知具有所述通信内存的访问权限的所有进程使用重新分配的通信内存;所述第一进程与所述至少一个第二进程基于所述通知,通过在重新分配的通信内存中读和/或写数据进行通信。11.如权利要求1至10任一所述的方法,其特征在于,在所述内存管理组件向所述第一进程和所述至少一个第二进程通知所述通信内存的分配结果之后,所述方法还包括:所述内存管理组件回收所述通信内存。12.如权利要求11所述的方法,其特征在于,在所述内存管理组件回收所述通信内存之前,所述方法还包括:所述内存管理组件接收所述第一进程...

【专利技术属性】
技术研发人员:鹿智婷
申请(专利权)人:深圳华为云计算技术有限公司
类型:发明
国别省市:

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

1