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

技术编号:11404695 阅读:80 留言:0更新日期:2015-05-03 20:46
本发明专利技术实施例提供一种进程间的通信方法及装置,该方法包括:建立共享内存地址与第一进程的预设地址间的第一映射关系,共享内存由第一进程申请获得;将第一映射关系保存至TLB以及第一进程对应的第一页表,并锁定TLB保存的第一映射关系;控制第一进程将包括有共享内存地址的映射信息发送给第二进程,以建立共享内存地址与第二进程的预设地址间的第二映射关系,第二进程的预设地址与第一进程的预设地址相同,并将第二映射关系保存至TLB以及第二进程对应的第二页表,锁定TLB保存的第二映射关系。如此,在操作系统内核切换进程上下文后,仍可利用这一锁定的映射关系正确的将虚拟地址翻译为物理地址,进行通信,以此提高进程间的通信性能。

【技术实现步骤摘要】
一种进程间的通信方法及装置
本专利技术涉及通信
,具体涉及一种进程间的通信方法及装置。
技术介绍
在虚拟内存技术中,页表被存储在主存储器中,查询页表时付出的代价较大,为了解决这一问题,虚拟内存方案中还使用了一个特殊的高速缓存,即转换检测缓冲器TLB(Translationlookasidebuffer),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以及所述第一进程对应的第一页表;锁定单元,用于锁定所述TLB保存的所述第一映射关系;控制单元,用于控制所述第一进程将包括有所述共享内存地址的映射信息发送给第二进程,以建立所述共享内存地址与所述第二进程的预设地址间的第二映射关系,所述第二进程的预设地址与所述第一进程的预设地址相同,并将所述第二映射关系保存至所述TLB以及所述第二进程对应的第二页表,锁定所述TLB保存的所述第二映射关系。在第三方面的第一种可能的实现方式中,所述映射建立单元,具体用于通过对等映射的方式建立所述共享内存地址与所述第一进程的预设地址间的映射关系。在第三方面的第二种可能的实现方式中,所述锁定单元,具体用于将所述TLB保存的所述第一映射关系标识为禁止刷新。第四方面,本专利技术实施例提供了一种第二进程侧的进程间的通信装置,所述装置包括:解析单元,用于解析第二进程接收的包括有共享内存地址的映射信息,所述映射信息由第一进程发送,且所述共享内存由所述第一进程申请获得;映射建立单元,用于根据所述映射信息确定所述第二进程的预设地址,并建立所述共享内存地址与所述第二进程的预设地址间的第二映射关系,所述第二进程的预设地址与所述第一进程的预设地址相同;保存单元,用于将所述第二映射关系保存至转换检测缓冲器TLB以及所述第二进程对应的第二页表;锁定单元,用于锁定所述TLB保存的所述第二映射关系。在第四方面的第一种可能的实现方式中,所述映射建立单元,具体用于通过对等映射的方式建立所述共享内存地址与所述第二进程的预设地址间的映射关系。在第四方面的第二种可能的实现方式中,所述锁定单元,具体用于将所述TLB的所述第二映射关系标识为禁止刷新。本专利技术实施例的进程间的通信方法及装置,锁定TLB中针对共享内存的映射关系的条目,这样操作系统内核切换进程上下文之后就不会刷新该条目,保证该条目的有效性。同时,为了使相互通信的不同进程均可利用这一锁定的映射关系正确的将虚拟地址翻译为物理地址,要使相互通信的各进程都采用相同的预设地址与这一共享内存建立映射关系。如此就可提高本专利技术方案进程间的通信性能。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。图1是本专利技术实施例中第一进程对应的进程间的通信方法的流程图;图2是本专利技术实施例中共享内存的映射关系的示意图;图3是本专利技术实施例中第二进程对应的进程间的通信方法的流程图;图4是本专利技术实施例中第一进程对应的进程间的通信装置的示意图;图5是本专利技术实施例中第二进程对应的进程间的通信装置的示意图;图6是本专利技术实施例中第一进程对应的通信装置的硬件构成示意图;图7是本专利技术实施例中第二进程对应的通信装置的硬件构成示意图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面结合附图和实施方式对本专利技术实施例作进一步的详细说本文档来自技高网
...
一种进程间的通信方法及装置

【技术保护点】
一种进程间的通信方法,其特征在于,所述方法包括:建立共享内存地址与第一进程的预设地址间的第一映射关系,所述共享内存由所述第一进程申请获得;将所述第一映射关系保存至转换检测缓冲器TLB以及所述第一进程对应的第一页表,并锁定所述TLB保存的所述第一映射关系;控制所述第一进程将包括有所述共享内存地址的映射信息发送给第二进程,以建立所述共享内存地址与所述第二进程的预设地址间的第二映射关系,所述第二进程的预设地址与所述第一进程的预设地址相同,并将所述第二映射关系保存至所述TLB以及所述第二进程对应的第二页表,锁定所述TLB保存的所述第二映射关系。

【技术特征摘要】
1.一种进程间的通信方法,其特征在于,所述方法包括:建立共享内存地址与第一进程的预设地址间的第一映射关系,所述共享内存由所述第一进程申请获得;将所述第一映射关系保存至转换检测缓冲器TLB以及所述第一进程对应的第一页表,并锁定所述TLB保存的所述第一映射关系;控制所述第一进程将包括有所述共享内存地址的映射信息发送给第二进程,以建立所述共享内存地址与所述第二进程的预设地址间的第二映射关系,所述第二进程的预设地址与所述第一进程的预设地址相同,并将所述第二映射关系保存至所述TLB以及所述第二进程对应的第二页表,锁定所述TLB保存的所述第二映射关系。2.根据权利要求1所述的方法,其特征在于,所述预设地址为用户空间中划分出的固定大小的地址;或者,所述预设地址为根据共享内存的大小从用户空间中划分出的可变大小的地址。3.根据权利要求1所述的方法,其特征在于,所述建立共享内存地址与第一进程的预设地址间的映射关系,包括:通过对等映射的方式建立所述共享内存地址与所述第一进程的预设地址间的映射关系。4.根据权利要求1所述的方法,其特征在于,所述锁定所述TLB保存的所述第一映射关系,包括:将所述TLB保存的所述第一映射关系标识为禁止刷新。5.一种进程间的通信方法,其特征在于,所述方法包括:解析第二进程接收的包括有共享内存地址的映射信息,所述映射信息由第一进程发送,且所述共享内存由所述第一进程申请获得;根据所述映射信息确定所述第二进程的预设地址,并建立所述共享内存地址与所述第二进程的预设地址间的第二映射关系,所述第二进程的预设地址与所述第一进程的预设地址相同;将所述第二映射关系保存至转换检测缓冲器TLB以及所述第二进程对应的第二页表,并锁定所述TLB保存的所述第二映射关系。6.根据权利要求5所述的方法,其特征在于,所述建立所述共享内存地址与所述第二进程的预设地址间的映射关系,包括:通过对等映射的方式建立所述共享内存地址与所述第二进程的预设地址间的映射关系。7.根据权利要求5所述的方法,其特征在于,所述锁定所述T...

【专利技术属性】
技术研发人员:吴小科王伟蔡毅
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1