[发明专利]一种核间进程通信的方法、装置及系统有效
申请号: | 201380002578.4 | 申请日: | 2013-12-03 |
公开(公告)号: | CN104838361B | 公开(公告)日: | 2018-06-15 |
发明(设计)人: | 刘潭义;朱望斌;颜友亮 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F13/00 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种核间进程通信的方法,接收端监控核间进程通信的消息通道,所述消息通道为发送端、共享内存和所述接收端共同组成的消息通道,所述接收端为运行接收端进程的装置,所述发送端为运行发送端进程的装置,当所述消息通道中消息的切换参数满足预置切换条件时,所述接收端进行通信模式切换,所述通信模式切换为在轮询模式和核间中断模式之间的切换,所述接收端通知所述发送端切换后的通信模式,并以切换后的通信模式,进行核间进程通信。本发明实施例提供的方法,可以根据核间进程通信的消息通道的切换参数,切换到合适的通信模式,从而提高核间进程通信的效率。 1 | ||
搜索关键词: | 进程通信 接收端 消息通道 发送端 通信模式 通信模式切换 装置及系统 参数满足 共享内存 轮询模式 切换条件 中断模式 监控核 预置 进程 | ||
接收端监控核间进程通信的消息通道,所述消息通道为发送端、共享内存和所述接收端共同组成的消息通道,所述接收端为运行接收端进程的装置,所述发送端为运行发送端进程的装置;
当所述消息通道中消息的切换参数满足预置切换条件时,所述接收端进行通信模式切换,所述通信模式切换为在轮询模式和核间中断模式之间的切换;
所述接收端通知所述发送端切换后的通信模式,并以切换后的通信模式,进行核间进程通信;
在所述通信模式为轮询模式时,所述接收端在所述发送端向所述共享内存中写入消息负载的第一个数据块和消息头后,在所述发送端向所述共享内存中写入所述消息负载的其他数据块时,开始轮询所述消息负载,所述消息负载被所述发送端拆分为多个预置长度的数据块;
在所述通信模式为核间中断模式时,所述接收端在所述发送端向所述共享内存中写入消息负载的第一个数据块和消息头后,响应所述发送端触发的中断,并在中断后,开始轮询所述消息负载,所述消息负载被所述发送端拆分为多个预置长度的数据块。
2.根据权利要求1所述的方法,其特征在于,当所述通信模式由所述核间中断模式切换到所述轮询模式时,所述方法还包括:所述接收端将所述消息通道的标识写入轮询列表中,并将所述共享内存中所述消息通道的通信模式标识修改为轮询模式标识。
3.根据权利要求1所述的方法,其特征在于,当所述通信模式由所述轮询模式切换到所述核间中断模式时,所述方法还包括:所述接收端将所述消息通道的标识从轮询列表中删除,并将所述共享内存中所述消息通道的通信模式标识修改为核间中断模式标识。
4.根据权利要求1或2所述的方法,其特征在于,所述接收端监控核间进程通信的消息通道,包括:所述接收端监控所述消息通道中预置时间内通过消息的次数;
对应的,所述当所述消息通道中消息的切换参数满足预置切换条件时,所述接收端进行通信模式切换,所述通信模式切换为在轮询模式和核间中断模式之间的切换,包括:
当所述消息通道中在预置时间内通过消息的次数超过预置切换次数,且所述消息通道的通信模式处于核间中断模式时,所述接收端从核间中断模式切换到轮询模式。
5.根据权利要求1或3所述的方法,其特征在于,所述接收端监控核间进程通信的消息通道,包括:所述接收端监控所述消息通道中预置时间内通过消息的次数;
对应的,所述当所述消息通道中消息的切换参数满足预置切换条件时,所述接收端进行通信模式切换,所述通信模式切换为在轮询模式和核间中断模式之间的切换,包括:
当所述消息通道中在预置时间内通过消息的次数少于或等于预置切换次数,且所述消息通道的通信模式处于轮询模式时,所述接收端从轮询模式切换到核间中断模式。
6.根据权利要求1或2所述的方法,其特征在于,所述接收端监控核间进程通信的消息通道,包括:当所述消息通道的通信模式处于轮询模式时,所述接收端获取所述消息通道的消息权重值,并将所述接收端中的每个消息通道的消息权重值按照从大到小的顺序排序;
根据所述接收端中轮询列表的长度值N和所述消息权重值的排序结果,确定所述消息通道的标识是否能填入所述轮询列表,所述轮询列表只能填入消息权重值在前N的消息通道的标识;
所述当所述消息通道中消息的切换参数满足预置切换条件时,所述接收端进行通信模式切换,所述通信模式切换为在轮询模式和核间中断模式之间的切换,包括:
当所述消息通道的标识不能填入所述轮询列表时,所述接收端从轮询模式切换到核间中断模式。
7.根据权利要求6所述的方法,其特征在于,所述接收端获取所述消息通道的权重值,包括:所述接收端轮询到所述消息通道的一个消息,为所述消息通道的权重值加上预置大小的整数值,轮询失败一次,将所述消息通道的权重值减1。
8.一种核间进程通信的装置,其特征在于,包括:监控单元,用于监控核间进程通信的消息通道,所述消息通道为发送端、共享内存和接收端共同组成的消息通道,所述接收端为运行接收端进程的装置,所述发送端为运行发送端进程的装置;
切换单元,用于当所述监控单元监控到所述消息通道中消息的切换参数满足预置切换条件时,进行通信模式切换,所述通信模式切换为在轮询模式和核间中断模式之间的切换;
通知单元,用于通知所述发送端所述切换单元切换后的通信模式;
通信单元,用于以所述切换单元切换后的通信模式,进行核间进程通信;
在所述通信模式为轮询模式时,所述通信单元,用于在所述发送端向所述共享内存中写入消息负载的第一个数据块和消息头后,在所述发送端向所述共享内存中写入所述消息负载的其他数据块时,开始轮询所述消息负载,所述消息负载被所述发送端拆分为多个预置长度的数据块;
在所述通信模式为核间中断模式时,所述通信单元,用于在所述发送端向所述共享内存中写入消息负载的第一个数据块和消息头后,响应所述发送端触发的中断,并在中断后,开始轮询所述消息负载,所述消息负载被所述发送端拆分为多个预置长度的数据块。
9.根据权利要求8所述的装置,其特征在于,当所述通信模式由所述核间中断模式切换到所述轮询模式时,所述装置还包括第一处理单元,所述第一处理单元,用于将所述消息通道的标识写入轮询列表中,并将所述共享内存中所述消息通道的通信模式标识修改为轮询模式标识。
10.根据权利要求8所述的装置,其特征在于,当所述通信模式由所述轮询模式切换到所述核间中断模式时,所述装置还包括第二处理单元,所述第二处理单元,用于将所述消息通道的标识从轮询列表中删除,并将所述共享内存中所述消息通道的通信模式标识修改为核间中断模式标识。
11.根据权利要求8或9所述的装置,其特征在于,所述监控单元,用于监控所述消息通道中预置时间内通过消息的次数;
所述切换单元,用于当所述消息通道中在预置时间内通过消息的次数超过预置切换次数,且所述消息通道的通信模式处于核间中断模式时,从核间中断模式切换到轮询模式。
12.根据权利要求8或10所述的装置,其特征在于,所述监控单元,用于监控所述消息通道中预置时间内通过消息的次数;
所述切换单元,用于当所述消息通道中在预置时间内通过消息的次数少于或等于预置切换次数,且所述消息通道的通信模式处于轮询模式时,从轮询模式切换到核间中断模式。
13.根据权利要求8或9所述的装置,其特征在于,所述监控单元,包括:获取子单元、排序子单元和确定子单元,该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201380002578.4/,转载请声明来源钻瓜专利网。