[发明专利]一种共享内存空间的管理方法有效
申请号: | 201610097234.1 | 申请日: | 2016-02-22 |
公开(公告)号: | CN107102900B | 公开(公告)日: | 2020-02-07 |
发明(设计)人: | 李永海;廖军;沈凯立 | 申请(专利权)人: | 上海大唐移动通信设备有限公司;大唐移动通信设备有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 11002 北京路浩知识产权代理有限公司 | 代理人: | 王莹 |
地址: | 200233 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 共享 内存空间 管理 方法 | ||
1.一种共享内存空间的管理方法,其特征在于,包括:
基于预设的链表模式,将待管理的共享内存空间初始化为公共区和私有区,且在所述私有区中初始化一块属性区,并将所述链表模式对应的链表结点的属性存放到所述属性区;
在接收到一条待写入的数据时,从所述私有区的非属性区为该条数据申请一个链表结点空间;
将该条数据写入到该链表结点的数据域,并在该链表结点的指针域记录与该链表结点相关的链表结点相对所述共享内存空间的首地址的地址偏移量;其中,
所述链表模式为表list;
相应地,所述在所述私有区中初始化一块属性区,包括:
在所述私有区中初始化一块具有N个归类标识Slot空间的属性区,所述N为Slot的预设个数,所述Slot空间用于存放该Slot当前使用的链表结点的指针域相对所述共享内存空间的首地址的地址偏移量;
相应地,所述将所述链表模式对应的链表结点属性存放到所述属性区,包括:
将第一个链表结点的数据域相对所述共享内存空间的首地址的地址偏移量、最后一个链表结点的数据域相对所述共享内存空间的首地址的地址偏移量存放到所述属性区的非Slot空间中。
2.根据权利要求1所述的共享内存空间的管理方法,其特征在于,
所述链表模式为容器vector;
相应地,所述将所述链表模式对应的链表结点属性存放到所述属性区,包括:
将链表结点的数据域预设的数据条数、每条数据预设的最大长度、第一个链表结点的指针域相对于共享内存空间的首地址的地址偏移量以及当前使用的链表结点的指针域相对于共享内存空间的首地址的地址偏移量存放到所述属性区。
3.根据权利要求2所述的共享内存空间的管理方法,其特征在于,
所述从所述私有区的非属性区为该条数据申请一个链表结点空间,包括:
从所述私有区的非属性区为该条数据申请一个数据域大小为预设页大小的链表结点空间,所述预设页大小由所述链表结点的数据域预设的数据条数以及每条数据预设的最大长度确定。
4.根据权利要求2所述的共享内存空间的管理方法,其特征在于,
所述在该链表结点的指针域记录与该链表结点相关的链表结点相对所述共享内存空间的首地址的地址偏移量,包括:
在该链表结点的指针域记录该链表结点的数据域相对所述共享内存空间的首地址的地址偏移量、前一链表结点的指针域相对所述共享内存空间的首地址的地址偏移量以及后一链表结点的指针域相对所述共享内存空间的首地址的地址偏移量。
5.根据权利要求2所述的共享内存空间的管理方法,其特征在于,
所述从所述私有区的非属性区为该条数据申请一个链表结点空间之前,所述共享内存空间的管理方法还包括:
判断当前使用的链表结点的数据域写入的数据条数是否达到预设的数据条数;
若是,则执行所述从所述私有区的非属性区为该条数据申请一个链表结点空间的步骤;
相应地,所述将该条数据写入到该链表结点的数据域,包括:
将该条数据写入到该链表结点的数据域的第一条数据中。
6.根据权利要求2所述的共享内存空间的管理方法,其特征在于,
所述从所述私有区的非属性区为该条数据申请一个链表结点空间之后,所述共享内存空间的管理方法还包括:
将申请的链表结点的数据域相对于共享内存空间的首地址的地址偏移量存放到预先创建的栈空间中。
7.根据权利要求1所述的共享内存空间的管理方法,其特征在于,
所述从所述私有区的非属性区为该条数据申请一个链表结点空间,包括:
从所述私有区的非属性区为该条数据申请一个数据域长度为该条数据长度的链表结点空间。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海大唐移动通信设备有限公司;大唐移动通信设备有限公司,未经上海大唐移动通信设备有限公司;大唐移动通信设备有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610097234.1/1.html,转载请声明来源钻瓜专利网。