[发明专利]一种用户态与内核态共享内存的管理方法和装置有效

专利信息
申请号: 201210523851.5 申请日: 2012-12-04
公开(公告)号: CN103034544A 公开(公告)日: 2013-04-10
发明(设计)人: 赵丹 申请(专利权)人: 杭州迪普科技有限公司
主分类号: G06F9/54 分类号: G06F9/54
代理公司: 北京博思佳知识产权代理有限公司 11415 代理人: 林祥
地址: 310051 浙江省杭*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 用户 内核 共享 内存 管理 方法 装置
【说明书】:

技术领域

发明涉及数据交换技术,尤其涉及一种用户态与内核态共享内存的管理方法和装置。

背景技术

随着互联网(Internet)的迅猛发展,内核态进程和用户态进程之间的数据交互越来越频繁,并且交互的数据量越来越大。内核态进程和用户态进程各自使用自己的地址空间,两个状态看到的虚拟地址空间是分离的,内核态进程和用户态进程之间的数据交互需要专门的机制例如共享内存机制来实现。

在共享内存机制中,通过将一段物理内存同时映射到内核态地址空间和用户态地址空间,来实现内核态进程和用户态进程之间的数据通信。内存映射完成后,内核态进程和用户态进程分别会获得共享内存的基地址(虚拟地址)和长度。由于内核态进程和用户态进程所获取的基地址是不同的,所以要是使用传统的链表内保存共享内存中内存对象的起始地址(虚拟地址)的方法来动态管理共享内存,就无法解决用户态进程和内核态进程通用的问题。

具体地,现有技术中主要提供如下两种方案来进行共享内存的管理。

方案一

一次性映射一大块共享内存,然后静态为使用者(内核态进程或用户态进程)分配共享内存空间,即不管使用者最终使用多少内存,统一给使用者分配一定数量的内存。

该方案的缺点在于:1、如果使用者最终使用的内存小于为其分配的内存,会浪费内存;2、如果使用者最终使用的内存大于为其分配的内存,将导致内存越界,破坏其他内存使用者存储的信息;3、不利于内存的回收和重新使用。

方案二

不同使用者(内核态进程或用户态进程)各自映射所需的共享内存,使用后将其释放,下次使用再重新映射。

该方案的缺点在于:每次内核态进程和用户态进程交互数据都需要进行共享内存的映射,这样增大了系统的开销,降低了内核态进程和用户态进程之间数据交互效率。

发明内容

有鉴于此,本发明的目的是提供一种用户态与内核态共享内存的管理方法和装置,能够提高数据的交互效率,同时节约内存。

为实现上述目的,本发明提供技术方案如下:

一种用户态与内核态共享内存的管理方法,包括:

将预定长度的物理内存作为共享内存分别映射到用户态地址空间和内核态地址空间,映射完成后,用户态进程和内核态进程在各自的地址空间分别得到共享内存的基地址;

将多个伪链表的头节点保存到共享内存的最后区域,其中,伪链表的节点的结构包括对象类型和伪链表中下一个节点的起始地址相对于基地址的偏移,且每种对象类型对应一种长度的内存对象;

根据使用者需要申请内存的大小,从所述多个伪链表中选取一个伪链表,从所选取的伪链表中选取一个或多个节点,将选取的一个或多个节点对应的内存对象分配给该使用者,并将选取的一个或多个节点从所选取的伪链表中摘除,其中,所述使用者为内核态进程或用户态进程,所述使用者能够将自己的基地址加上所分配的内存对象的起始偏移得到内存对象的起始地址,并根据所述起始地址对所述内存对象进行操作。

一种用户态与内核态共享内存的管理装置,包括:

内存映射单元,用于将预定长度的物理内存作为共享内存分别映射到用户态地址空间和内核态地址空间,映射完成后,用户态进程和内核态进程在各自的地址空间分别得到共享内存的基地址;

伪链表建立单元,用于将多个伪链表的头节点保存到共享内存的最后区域,其中,伪链表的节点的结构包括对象类型和伪链表中下一个节点的起始地址相对于基地址的偏移,且每种对象类型对应一种长度的内存对象;

内存分配单元,用于根据使用者需要申请内存的大小,从所述多个伪链表中选取一个伪链表,从所选取的伪链表中选取一个或多个节点,将选取的一个或多个节点对应的内存对象分配给该使用者,并将选取的一个或多个节点从所选取的伪链表中摘除,其中,所述使用者为内核态进程或用户态进程,所述使用者能够将自己的基地址加上所分配的内存对象的起始偏移得到内存对象的起始地址,并根据所述起始地址对所述内存对象进行操作。

与现有技术相比,本发明提供的内核态和用户态共享内存的管理方案,应用于内核态进程和用户态进程之间存在大量数据交互的场合时,可以提高数据的交互效率,同时节约内存。

附图说明

图1是本发明实施例的用户态与内核态共享内存的管理方法流程图;

图2是本发明实施例中共享内存的构成示意图;

图3是本发明实施例中普通对象对应的内存结构图;

图4是本发明实施例中特殊对象对应的内存结构图。

具体实施方式

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州迪普科技有限公司,未经杭州迪普科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210523851.5/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top