一种核间进程通信的方法、装置及系统制造方法及图纸

技术编号:11861359 阅读:67 留言:0更新日期:2015-08-12 11:24
本发明专利技术公开了一种核间进程通信的方法,接收端监控核间进程通信的消息通道,所述消息通道为发送端、共享内存和所述接收端共同组成的消息通道,所述接收端为运行接收端进程的装置,所述发送端为运行发送端进程的装置,当所述消息通道中消息的切换参数满足预置切换条件时,所述接收端进行通信模式切换,所述通信模式切换为在轮询模式和核间中断模式之间的切换,所述接收端通知所述发送端切换后的通信模式,并以切换后的通信模式,进行核间进程通信。本发明专利技术实施例提供的方法,可以根据核间进程通信的消息通道的切换参数,切换到合适的通信模式,从而提高核间进程通信的效率。

【技术实现步骤摘要】
【国外来华专利技术】一种核间进程通信的方法、装置及系统
本专利技术涉及计算机
,具体涉及一种核间进程通信的方法、装置及系统。
技术介绍
进程是计算机中正在运行的程序实体,不同进程间由于相互协作而存在相应的通信需求。进程间通信可分为核内进程间通信和核间进程间通信。核间进程通信通常采用轮询方式或者核间中断(Inter-processInterrupt,IPI)方式。尤其是,随着多核和众核的出现,核间进程通信更加频繁。现有技术中,采用轮询的方式进行核间进程通信的流程如下:S1、客户端进程向共享内存中的写部分写入消息负载;S2、客户端进程向共享内存中的写部分写入消息头;S3、服务端进程轮询共享内存中的读部分的消息头;S4、服务端进程发现有未读消息则读取消息负载。利用核间中断IPI进行核间进程通信的流程如下:H1、客户端进程向共享内存中的写部分写入消息负载;H2、客户端进程向共享内存中的写部分写入消息头;H3、客户端进程调用系统调用,陷入客户端内核,在服务端消息传递缓存(MessagePassingBuffer,MPB)中写入服务端对应的通道标识(channelid),同时更新MPB的写位置(writepos),触发服务端内核中断;H4、服务端内核响应中断,从MPB中获得channelid,向channelid对应的本地lmp_endpoint发送一个空消息,并调度服务端进程运行;H5、服务端进程在处理lmp_endpoint消息的过程中,轮询共享内存中的读部分的消息头;H6、发现有未读消息则进行处理。现有技术中,核间通信频繁时,频繁进行核间中断会导致接收端进程频繁进出内核,造成消息吞吐量低,在核间通信较少时,通过轮询的方式进行核间通信,过多的轮询占用了CPU的处理能力,降低了CPU利用率。本专利技术的专利技术人发现,现有技术中没有考虑到轮询通信和核间中断的适用条件,导致核间进程通信效率低下。
技术实现思路
本专利技术实施例提供一种核间进程通信的方法,可以根据核间进程通信的消息通道的切换参数,切换到合适的通信模式,从而提高核间进程通信的效率。本专利技术实施例还提供了相应的装置及系统。本专利技术第一方面提供一种核间进程通信的方法,包括:接收端监控核间进程通信的消息通道,所述消息通道为发送端、共享内存和所述接收端共同组成的消息通道,所述接收端为运行接收端进程的装置,所述发送端为运行发送端进程的装置;当所述消息通道中消息的切换参数满足预置切换条件时,所述接收端进行通信模式切换,所述通信模式切换为在轮询模式和核间中断模式之间的切换;所述接收端通知所述发送端切换后的通信模式,并以切换后的通信模式,进行核间进程通信。结合第一方面,在第一种可能的实现方式中,当所述通信模式由所述核间中断模式切换到所述轮询模式时,所述方法还包括:所述接收端将所述消息通道的标识写入轮询列表中,并将所述共享内存中所述消息通道的通信模式标识修改为轮询模式标识。结合第一方面,在第二种可能的实现方式中,当所述通信模式由所述轮询模式切换到所述核间中断模式时,所述方法还包括:所述接收端将所述消息通道的标识从轮询列表中删除,并将所述共享内存中所述消息通道的通信模式标识修改为核间中断模式标识。结合第一方面或第一方面第一种可能的实现方式,在第三种可能的实现方式中,所述接收端监控核间进程通信的消息通道,包括:所述接收端监控所述消息通道中预置时间内通过消息的次数;对应的,所述当所述消息通道中消息的切换参数满足预置切换条件时,所述接收端进行通信模式切换,所述通信模式切换为在轮询模式和核间中断模式之间的切换,包括:当所述消息通道中在预置时间内通过消息的次数超过预置切换次数,且所述消息通道的通信模式处于核间中断模式时,所述接收端从核间中断模式切换到轮询模式。结合第一方面或第一方面第二种可能的实现方式,在第四种可能的实现方式中,所述接收端监控核间进程通信的消息通道,包括:所述接收端监控所述消息通道中预置时间内通过消息的次数;对应的,所述当所述消息通道中消息的切换参数满足预置切换条件时,所述接收端进行通信模式切换,所述通信模式切换为在轮询模式和核间中断模式之间的切换,包括:当所述消息通道中在预置时间内通过消息的次数少于或等于预置切换次数,且所述消息通道的通信模式处于轮询模式时,所述接收端从轮询模式切换到核间中断模式。结合第一方面或第一方面第一种可能的实现方式,在第五种可能的实现方式中,所述接收端监控核间进程通信的消息通道,包括:当所述消息通道的通信模式处于轮询模式时,所述接收端获取所述消息通道的消息权重值,并将所述接收端中的每个消息通道的消息权重值按照从大到小的顺序排序;根据所述接收端中轮询列表的长度值N和所述消息权重值的排序结果,确定所述消息通道的标识是否能填入所述轮询列表,所述轮询列表只能填入消息权重值在前N的消息通道的标识;所述当所述消息通道中消息的切换参数满足预置切换条件时,所述接收端进行通信模式切换,所述通信模式切换为在轮询模式和核间中断模式之间的切换,包括:当所述消息通道的标识不能填入所述轮询列表时,所述接收端从轮询模式切换到核间中断模式。结合第一方面第五种可能的实现方式,在第六种可能的实现方式中,所述接收端获取所述消息通道的权重值,包括:所述接收端轮询到所述消息通道的一个消息,为所述消息通道的权重值加上预置大小的整数值,轮询失败一次,将所述消息通道的权重值减1。结合第一方面、第一方面第一种至第六种可能的实现方式中的任意一种,在第七种可能的实现方式中,在所述通信模式为轮询模式时,所述方法还包括:所述接收端在所述发送端向所述共享内存中写入消息负载的第一个数据块和消息头后,在所述发送端向所述共享内存中写入所述消息负载的其他数据块时,开始轮询所述消息负载,所述消息负载被所述发送端拆分为多个预置长度的数据块。结合第一方面、第一方面第一种至第六种可能的实现方式中的任意一种,在第八种可能的实现方式中,在所述通信模式为核间中断模式时,所述方法还包括:所述接收端在所述发送端向所述共享内存中写入消息负载的第一个数据块和消息头后,响应所述发送端触发的中断,并在中断后,开始轮询所述消息负载,所述消息负载被所述发送端拆分为多个预置长度的数据块。本专利技术第二方面提供一种核间进程通信的装置,包括:监控单元,用于监控核间进程通信的消息通道,所述消息通道为发送端、共享内存和所述接收端共同组成的消息通道,所述接收端为运行接收端进程的装置,所述发送端为运行发送端进程的装置;切换单元,用于当所述监控单元监控到所述消息通道中消息的切换参数满足预置切换条件时,进行通信模式切换,所述通信模式切换为在轮询模式和核间中断模式之间的切换;通知单元,用于通知所述发送端所述切换单元切换后的通信模式;通信单元,用于以所述切换单元切换后的通信模式,进行核间进程通信。结合第二方面,在第一种可能的实现方式中,当所述通信模式由所述核间中断模式切换到所述轮询模式时,所述还包括第一处理单元,所述第一处理单元,用于将所述消息通道的标识写入轮询列表中,并将所述共享内存中所述消息通道的通信模式标识修改为轮询模式标识。结合第二方面,在第二种可能的实现方式中,当所述通信模式由所述轮询模式切换到所述核间中断模式时,所述还包括第二处理单元,所述第二处理单元,用于将所述消息通道本文档来自技高网
...
一种核间进程通信的方法、装置及系统

【技术保护点】
PCT国内申请,权利要求书已公开。

【技术特征摘要】
【国外来华专利技术】1.一种核间进程通信的方法,其特征在于,包括:接收端监控核间进程通信的消息通道,所述消息通道为发送端、共享内存和所述接收端共同组成的消息通道,所述接收端为运行接收端进程的装置,所述发送端为运行发送端进程的装置;当所述消息通道中消息的切换参数满足预置切换条件时,所述接收端进行通信模式切换,所述通信模式切换为在轮询模式和核间中断模式之间的切换;所述接收端通知所述发送端切换后的通信模式,并以切换后的通信模式,进行核间进程通信;在所述通信模式为轮询模式时,所述接收端在所述发送端向所述共享内存中写入消息负载的第一个数据块和消息头后,在所述发送端向所述共享内存中写入所述消息负载的其他数据块时,开始轮询所述消息负载,所述消息负载被所述发送端拆分为多个预置长度的数据块;在所述通信模式为核间中断模式时,所述接收端在所述发送端向所述共享内存中写入消息负载的第一个数据块和消息头后,响应所述发送端触发的中断,并在中断后,开始轮询所述消息负载,所述消息负载被所述发送端拆分为多个预置长度的数据块。2.根据权利要求1所述的方法,其特征在于,当所述通信模式由所述核间中断模式切换到所述轮询模式时,所述方法还包括:所述接收端将所述消息通道的标识写入轮询列表中,并将所述共享内存中所述消息通道的通信模式标识修改为轮询模式标识。3.根据权利要求1所述的方法,其特征在于,当所述通信模式由所述轮询模式切换到所述核间中断模式时,所述方法还包括:所述接收端将所述消息通道的标识从轮询列表中删除,并将所述共享内存中所述消息通道的通信模式标识修改为核间中断模式标识。4.根据权利要求1或2所述的方法,其特征在于,所述接收端监控核间进程通信的消息通道,包括:所述接收端监控所述消息通道中预置时间内通过消息的次数;对应的,所述当所述消息通道中消息的切换参数满足预置切换条件时,所述接收端进行通信模式切换,所述通信模式切换为在轮询模式和核间中断模式之间的切换,包括:当所述消息通道中在预置时间内通过消息的次数超过预置切换次数,且所述消息通道的通信模式处于核间中断模式时,所述接收端从核间中断模式切换到轮询模式。5.根据权利要求1或3所述的方法,其特征在于,所述接收端监控核间进程通信的消息通道,包括:所述接收端监控所述消息通道中预置时间内通过消息的次数;对应的,所述当所述消息通道中消息的切换参数满足预置切换条件时,所述接收端进行通信模式切换,所述通信模式切换为在轮询模式和核间中断模式之间的切换,包括:当所述消息通道中在预置时间内通过消息的次数少于或等于预置切换次数,且所述消息通道的通信模式处于轮询模式时,所述接收端从轮询模式切换到核间中断模式。6.根据权利要求1或2所述的方法,其特征在于,所述接收端监控核间进程通信的消息通道,包括:当所述消息通道的通信模式处于轮询模式时,所述接收端获取所述消息通道的消息权重值,并将所述接收端中的每个消息通道的消息权重值按照从大到小的顺序排序;根据所述接收端中轮询列表的长度值N和所述消息权重值的排序结果,确定所述消息通道的标识是否能填入所述轮询列表,所述轮询列表只能填入消息权重值在前N的消息通道的标识;所述当所述消息通道中消息的切换参数满足预置切换条件时,所述接收端进行通信模式切换,所述通信模式切换为在轮询模式和核间中断模式之间的切换,包括:当所述消息通道的标识不能填入所述轮询列表时,所述接收端从轮询模式切换到核间中断模式。7.根据权利要求6所述的方法,其特征在于,所述接收端获取所述消息通道的权重值,包括:所述接收端轮询到所述消息通道的一个消息,为所述消息通道的权重值加上预置大小的整数值,轮询失败...

【专利技术属性】
技术研发人员:刘潭义朱望斌颜友亮
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1