[发明专利]一种内存共享的方法及装置在审
申请号: | 202110275804.2 | 申请日: | 2021-03-15 |
公开(公告)号: | CN112906075A | 公开(公告)日: | 2021-06-04 |
发明(设计)人: | 皮振伟 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F21/79 | 分类号: | G06F21/79;G06F12/14;G06F9/54 |
代理公司: | 北京中知法苑知识产权代理有限公司 11226 | 代理人: | 李明 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 共享 方法 装置 | ||
本公开提供了一种内存共享的方法及装置,能够通过源进程获取并利用预先设置的内存共享驱动,生成目标共享内存的文件描述符;所述文件描述符中包括所述目标共享内存的属性信息;向待共享所述目标共享内存的目的进程发送所述文件描述符。目的进程能够通过文件描述符实现目标共享内存的访问,由于文件描述符是根据目标共享内存的属性信息生成的,每个共享内存的文件描述符都不同,使得不受信任的进程无法对共享内存进行访问,有效提高了内存共享的安全性。
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种内存共享的方法及装置。
背景技术
共享内存指在多处理器的计算机系统中,可以被不同中央处理器(CentralProcessing Unit,CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。
共享内存通常需要在多个进程之间约定共享内存的识别信息,但该识别信息是全局通用的,一些不信任的进程也能够通过对识别信息的操作对共享内存进行修改。
发明内容
本公开实施例至少提供一种内存共享的方法及装置,能够提高内存共享的安全性。
第一方面,本公开实施例提供了一种内存共享的方法,包括:
获取并打开预先设置的内存共享驱动;
通过所述内存共享驱动在内核中依次写入目标共享内存的属性信息;
基于写入的所述属性信息,通过所述内存共享驱动生成目标共享内存的文件描述符;所述文件描述符中包括所述属性信息;
向待共享所述目标共享内存的目的进程发送所述文件描述符。
一种可选的实施方式中,所述文件描述符为匿名文件描述符。
一种可选的实施方式中,所述目标共享内存的属性信息包括以下至少一种:
所述目标共享内存的地址信息、长度信息以及权限信息。
一种可选的实施方式中,向待共享所述目标共享内存的目的进程发送所述文件描述符,包括:
通过进程间通讯端口,向待共享所述目标共享内存的目的进程发送所述文件描述符。
一种可选的实施方式中,所述方法还包括:
在接收到所述目的进程反馈的内存共享完成信息后,关闭所述进程间通讯端口、所述文件描述符以及所述内存共享驱动。
第二方面,本公开实施例还提供另一种内存共享方法,包括:
接收源进程发送的目标共享内存的文件描述符;所述文件描述符中指示有所述目标共享内存的属性信息;
基于所述文件描述符,访问所述目标共享内存。
一种可选的实施方式中,所述目标共享内存的属性信息包括以下至少一种:
所述目标共享内存的地址信息、长度信息以及权限信息。
一种可选的实施方式中,基于所述文件描述符,访问所述目标共享内存,包括:
基于所述文件描述符中指示的所述目标共享内存的长度信息,在目的进程的地址空间中创建虚拟地址空间;
基于所述文件描述符中指示的所述目标共享内存的地址信息,遍历所述目标共享内存的地址空间,获取所述目标共享内存中每个内存页面的物理地址;
建立所述目标共享内存中每个内存页面的物理地址与所述虚拟地址空间中每个内存页面之间的映射关系;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110275804.2/2.html,转载请声明来源钻瓜专利网。