[发明专利]一种基于共享内存的对象管理与恢复方法及系统无效
申请号: | 201110252490.0 | 申请日: | 2011-08-30 |
公开(公告)号: | CN102955817A | 公开(公告)日: | 2013-03-06 |
发明(设计)人: | 伍洋;韩勇;胡健 | 申请(专利权)人: | 腾讯数码(深圳)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京派特恩知识产权代理事务所(普通合伙) 11270 | 代理人: | 张颖玲;王黎延 |
地址: | 518118 广东省深圳市龙岗*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 共享 内存 对象 管理 恢复 方法 系统 | ||
1.一种基于共享内存的对象管理与恢复方法,其特征在于,该方法包括:
注册托管到MTO系统的类型和类型组,并建立类型与类型组之间的关联关系;根据所有注册类型组信息分配/找回一块连续的共享内存区域;初始化/恢复所分配的共享内存区域,并为每个类型组在共享内存区域映射内存池;由内存池完成托管类型的管理与恢复。
2.根据权利要求1所述的方法,其特征在于,所述建立类型组与其对应的共享内存区域的映射关系包括:
a1、计算支持所有托管到MTO系统的类型和类型组所需要的共享内存总大小(TotalSize);
a2、根据当前应用进程传入的共享内存关键值ShmKey和计算的TotalSize大小,创建或重新获得共享内存对象,并调用shmat()将获得的共享内存段连接到应用进程;
a3、在共享内存首部创建CSharedMem对象,并记录共享内存元数据;
a4、遍历每个类型组,逐一为每个类型组在共享内存区域映射固定大小内存池,保存映射关系并完成内存池上对象的初始化或恢复。
3.根据权利要求1所述的方法,其特征在于,所述对共享内存的管理为:通过对象创建接口完成的对象创建;
所述对象创建包括:查找类型组映射的内存池的头部CObjMng;从空闲列表FreeList找到空闲索引块CIdx[i],根据类型Type在对应空闲数据块CObj[i]的首地址执行placement new创建对象,对应的索引块CIdx[i]从FreeList删除,并加入使用列表UsedList中。
4.根据权利要求1所述的方法,其特征在于,所述对共享内存的管理为:通过对象获取接口完成的对象获取;
所述对象获取包括:查找类型组映射的内存池的头部CObjMng;根据请求下标i直接查找对应索引块CIdx[i];检查CIdx[i]使用状态并返回对应的数据块CObj[i]。
5.根据权利要求1所述的方法,其特征在于,所述对共享内存的管理为:通过对象释放接口完成的对象释放;
所述对象释放包括:查找类型组映射的内存池的头部CObjMng;根据请求下标i直接查找对应索引块CIdx[i];检查CIdx[i]使用状态,并将CIdx[i]从UsedList删除,重新加入FreeList。
6.根据权利要求1至5任一项所述的方法,其特征在于,该方法进一步包括:引入MTO系统抽象基类CObj,所有托管到MTO系统的类型均必须直接或间接派生自CObj,支持单继承或多继承方式。
7.根据权利要求1至5任一项所述的方法,其特征在于,为每个注册类型组分配的共享内存区域包括管理头、索引域和数据域。
8.一种基于共享内存的对象管理与恢复系统,其特征在于,该系统包括:MTO托管类型/类型组注册模块、MTO接口层、以及MTO共享内存管理模块;其中,
所述MTO托管类型/类型组注册模块,用于记录所有托管到MTO系统的类型和类型组的元数据信息,并建立类型和类型组之间的关联关系;
所述MTO接口层,用于建立类型和类型组与其对应的共享内存区域的映射关系;
所述MTO共享内存管理模块,用于对MTO接口层确定的、对应各个类型组的共享内存区域进行管理。
9.根据权利要求8所述的系统,其特征在于,所述所有托管到MTO系统的类型均必须直接或间接派生自引入的MTO系统抽象基类CObj,支持单继承或多继承方式。
10.根据权利要求8或9所述的系统,其特征在于,所述MTO共享内存管理模块包括:共享内存自身元数据记录部分、以及固定大小内存池管理部分;
相应的,所述共享内存包括共享内存元数据空间和内存池空间。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯数码(深圳)有限公司,未经腾讯数码(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110252490.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种高温浮充耐久性镍氢电池
- 下一篇:人机互动系统和方法