[发明专利]一种进程间的通信方法及装置在审
申请号: | 201310500027.2 | 申请日: | 2013-10-22 |
公开(公告)号: | CN104572313A | 公开(公告)日: | 2015-04-29 |
发明(设计)人: | 吴小科;王伟;蔡毅 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 进程 通信 方法 装置 | ||
技术领域
本发明涉及通信技术领域,具体涉及一种进程间的通信方法及装置。
背景技术
在虚拟内存技术中,页表被存储在主存储器中,查询页表时付出的代价较大,为了解决这一问题,虚拟内存方案中还使用了一个特殊的高速缓存,即转换检测缓冲器TLB(Translation lookaside buffer),TLB中保存有页表的部分条目。在给定一个虚拟地址之后,处理器先查询TLB,如果TLB中保存有该虚拟地址对应的页表项(称为TLB命中),则可直接从TLB中获得虚拟地址对应的内存物理地址,进而可以根据物理地址到内存中读取对应的页面;如果TLB中未保存虚拟地址对应的页表项(称为TLB缺失),则要访问内存,查询页表,并根据页表查询结果进行区别处理。由此可知,在出现TLB缺失时,处理器需要访问主存,仍需要付出较大的代价。
由上文可知,TLB中保存的条目是与页表中的条目相关联的,而页表又与进程一一对应,因此TLB中的条目也是与进程相对应的,这就使得同一内核上运行的不同进程之间相互通信时,会存在以下问题:
在同一内核上运行的进程之间通信时,要由操作系统内核调度完成,而在进程调度时需要切换进程上下文,重新设置CR3寄存器保存的页表信息,如此之后,CR3寄存器保存的页表为切换后进程对应的页表,而TLB保存的却是切换前的进程对应的页表的部分条目。相对切换后的进程来说,TLB保存的条目已全部失效,这就导致切换后的进程在运行初期的TLB缺失率很高,需要多次访问主存页表,加大了进程间通信的开销,降低了进程间通信的效率。
发明内容
本发明实施例的进程间的通信方法及装置,用以提高同一内核上运行的进程间的通信性能。
为此,本发明实施例提供如下技术方案:
第一方面,本发明实施例提供了一种第一进程侧的进程间的通信方法,所述方法包括:
建立共享内存地址与第一进程的预设地址间的第一映射关系,所述共享内存由所述第一进程申请获得;
将所述第一映射关系保存至转换检测缓冲器TLB以及所述第一进程对应的第一页表,并锁定所述TLB保存的所述第一映射关系;
控制所述第一进程将包括有所述共享内存地址的映射信息发送给第二进程,以建立所述共享内存地址与所述第二进程的预设地址间的第二映射关系,所述第二进程的预设地址与所述第一进程的预设地址相同,并将所述第二映射关系保存至所述TLB以及所述第二进程对应的第二页表,锁定所述TLB保存的所述第二映射关系。
在第一方面的第一种可能的实现方式中,所述预设地址为用户空间中划分出的固定大小的地址;或者,所述预设地址为根据共享内存的大小从用户空间中划分出的可变大小的地址。
在第一方面的第二种可能的实现方式中,所述建立共享内存地址与第一进程的预设地址间的映射关系,包括:
通过对等映射的方式建立所述共享内存地址与所述第一进程的预设地址间的映射关系。
在第一方面的第三种可能的实现方式中,所述锁定所述TLB保存的所述第一映射关系,包括:
将所述TLB保存的所述第一映射关系标识为禁止刷新。
第二方面,本发明实施例提供了一种第二进程侧的进程间的通信方法,所述方法包括:
解析第二进程接收的包括有共享内存地址的映射信息,所述映射信息由第一进程发送,且所述共享内存由所述第一进程申请获得;
根据所述映射信息确定所述第二进程的预设地址,并建立所述共享内存地址与所述第二进程的预设地址间的第二映射关系,所述第二进程的预设地址与所述第一进程的预设地址相同;
将所述第二映射关系保存至转换检测缓冲器TLB以及所述第二进程对应的第二页表,并锁定所述TLB保存的所述第二映射关系。
在第二方面的第一种可能的实现方式中,所述建立所述共享内存地址与所述第二进程的预设地址间的映射关系,包括:
通过对等映射的方式建立所述共享内存地址与所述第二进程的预设地址间的映射关系。
在第二方面的第二种可能的实现方式中,所述锁定所述TLB保存的所述第二映射关系,包括:
将所述TLB保存的所述第二映射关系标识为禁止刷新。
第三方面,本发明实施例提供了一种第一进程侧的进程间的通信装置,所述装置包括:
映射建立单元,用于建立共享内存地址与第一进程的预设地址间的第一映射关系,所述共享内存由所述第一进程申请获得;
保存单元,用于将所述第一映射关系保存至转换检测缓冲器TLB以及所述第一进程对应的第一页表;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310500027.2/2.html,转载请声明来源钻瓜专利网。