[发明专利]多进程间的通信方法和系统在审
申请号: | 201880069530.8 | 申请日: | 2018-12-28 |
公开(公告)号: | CN111316244A | 公开(公告)日: | 2020-06-19 |
发明(设计)人: | 王斌;周青松;晋文科 | 申请(专利权)人: | 深圳市大疆创新科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/50;G06F12/10 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 张娜;刘芳 |
地址: | 518057 广东省深圳市南山区高*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 进程 通信 方法 系统 | ||
本发明实施例提供一种多进程间的通信方法和系统,此方法包括:在进程的链接阶段,为多个进程预留同一块虚拟地址空间,同一虚拟地址空间映射到相同的物理内存,并从物理内存中为第一进程分配至少一个第一内存块,第一进程为多个进程中的任一进程;然后将第一进程需要与至少一个第二进程共享的数据存储在第一内存块中,第一进程和至少一个第二进程为多个进程中的进程;向至少一个第二进程分别发送通知消息,以指示数据存储在第一内存块中的地址,以便各第二进程根据该地址获取数据。避免影响到进程运行时的资源,提高了进程运行效率,还实现数据在多进程间的零拷贝传输,提高了进程间的通信效率。
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种多进程间的通信方法和系统。
背景技术
软件系统(例如:无人驾驶系统、机器人系统等)在工作时,是需要多个进程相互协作运行。多个进程在相互协作运行的过程中,会涉及数据在多进程间传输的情况。以无人驾驶系统为例,无人驾驶系统运行在无人机上,无人机上安装有多个摄像头、雷达等传感器,摄像头采集的图像数据或者雷达采集的传感数据需要无人驾驶系统中的不同进程间进行传输,以便各个不同的进程进行处理。
现有技术中,数据在不同进程间传输的过程为:在进程运行过程中,进程A申请一块共享内存,并将该共享内存通知给进程B,这样进程A与进程B可以共享存储在同一块共享内存中的数据。但是,现有技术中的上述方案是在进程运行时申请共享内存,会影响进程运行效率。
发明内容
本发明实施例提供一种多进程间的通信方法和系统,用于提高进程运行效率。
第一方面,本发明实施例提供一种多进程间的通信方法,包括:
在进程的链接阶段,为可移动平台的多个进程预留同一块虚拟地址空间,所述同一虚拟地址空间映射到相同的物理内存;
从所述物理内存中为第一进程分配至少一个第一内存块,所述第一进程为所述多个进程中的任一进程;
当第一进程与至少一个第二进程需要共享数据时,将所述第一进程需要与所述至少一个第二进程共享的数据存储在所述第一内存块中,所述第二进程为所述多个进程中除所述第一进程外的任一进程;
向所述至少一个第二进程分别发送通知消息,所述通知消息用于指示所述数据存储在第一内存块中的地址,以便各所述第二进程根据所述地址从所述第一内存块中获取所述数据。
第二方面,本发明实施例提供一种多进程间的通信系统,包括:物理内存、存储器和处理器;
所述存储器,用于存储程序代码;
所述处理器,用于当所述程序代码被调用时,以执行:
在进程的链接阶段,为可移动平台的多个进程预留同一块虚拟地址空间,所述同一虚拟地址空间映射到所述物理内存中相同的物理内存;
从所述同一虚拟地址空间映射到的物理内存中为第一进程分配至少一个第一内存块,所述第一进程为所述多个进程中的任一进程;
当第一进程与至少一个第二进程需要共享数据时,将所述第一进程需要与所述至少一个第二进程共享的数据存储在所述第一内存块中,所述第二进程为所述多个进程中除所述第一进程外的任一进程;
向所述至少一个第二进程分别发送通知消息,所述通知消息用于指示所述数据存储在第一内存块中的地址,以便各所述第二进程根据所述地址从所述第一内存块中获取所述数据。
第三方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包含至少一段代码,所述至少一段代码可由计算机执行,以控制所述计算机执行第一方面本发明实施例所述的多进程间的通信方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市大疆创新科技有限公司,未经深圳市大疆创新科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201880069530.8/2.html,转载请声明来源钻瓜专利网。