- 1、本文档共2页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
权 利 要 求 书
1.一种基于共享内存池的通用数据存储方法,其步骤包括:
1)为目标应用申请一块共享内存,根据该目标应用要存储内容类别的不同将该共享内存
分为m 个内存块;其中,每一个内存块的头部存储该内存块的管理者结构,内存块剩
余空间分为n 个内存单元,在每一内存块中构建一个共享内存池;
2 )在每一内存块里构建两个双向循环链表,即空闲链表和繁忙链表;其中空闲链表用于
维护内存块的空闲内存单元,繁忙链表用于维护内存块的繁忙内存单元;初始化时所
有内存单元属于空闲链表,繁忙链表为空,管理者结构的空闲链表索引 iFree 指向当
前内存块的空闲链表头节点,繁忙链表索引iBusy 指向繁忙链表头节点索引;
3 )当该目标应用每次存储数据时,调用一次存储接口;在存储接口内根据待存储数据大
小从该共享内存中进行若干次内存单元申请直至本次数据存储完成,并将本次申请到
的内存单元形成单链表,将本次申请到的第一个内存单元作为首节点加入繁忙链表,
后续申请到的内存单元作为子节点,挂在首节点后形成单链表,将单链表中的节点通
过子索引串联起来。
2 .如权利要求 1 所述的方法,其特征在于,所述管理者结构记录当前内存块内存单元总数
totalNum 、空闲单元数freeNum、繁忙单元数busyNum 、空闲链表头索引iFree、繁忙链表
头索引iBusy 和内存块编号信息;每一所述内存单元中具有一内存单元结构,用于记录内
存单元在当前内存块中的索引值index 、内存单元的前驱节点索引pre 、内存单元的后继节
点索引next 、存储数据的key 值、key 值长度、数据内容、数据内容长度、写入时间、子
节点个数subCnt、节点子索引subIndex 以及子节点后继索引值subNextIndex ;节点子索引
subIndex 是指节点在单链表中的索引。
3 .如权利要求2 所述的方法,其特征在于,步骤3 )中,每次存储数据时,先根据待存储数
据大小和内存单元数据区大小计算此次存储所需内存单元数,如果所需内存单元数超过空
闲单元数,则此次申请失败;若申请的内存单元数小于或等于空闲单元数,则根据内存单
元的需求数量循环申请空闲单元,每次申请时直接取管理者结构空闲链表头索引iFree 指
向的节点,如果是存储接口第一次申请空闲单元,则将取到的节点插入到繁忙链表头索引
iBusy 指向的节点之前作为新的头节点;通过双向循环链表增删操作,使加入新单元的繁
忙链表和摘掉iFree 节点的空闲链表重新形成双向循环链表;如果存储接口不是第一次申
请空闲单元,则把申请到的内存单元依次挂到单链表首节点后面;每次申请空闲单元后修
改管理者结构的空闲单元数freeNum 减一,繁忙单元数busyNum 数量加一;然后向申请
到的内存单元写入数据key 值和key 长度,向数据区写入数据片段,如果当前所申请的内
存单元是此次申请所需的最后一个内存单元,则数据长度为剩余的数据长度,否则数据长
100001 1
2016.4
权 利 要 求 书
度为内存单元数据区长度。
4 .如权利要求3 所述的方法,其特征在于,存储数据时更新对应内存单元的内存单元结构的
子节点个数 subCnt 和子节点索引 subIndex,同时将内存单元的索引值记录到数组中,直
到申请完本次存储全部所需内存单元。
5 .如权利要求1 所述的方法,其特征在于,将内存块的编号作为该内存块对应的内存池编号,
各内存池共用信号量编号 semid ,将内存池编号作为对应内存池的信号量数组索引
sem_num 值。
6 .如权利要求1 所述的方法,其特征在于,当进行检索数据时,根据输入的内存块编号、key
值和查找顺序搜索繁忙链表,匹配到存储数据的首节点后,依靠该首节点中记录的后继节
点信息找到下一个数据片段的存储位置,再把不同片段连接起来返回。
7 .如权利要求1 所述的方法,其特征在于,通过一删除接口释放存内存单元,其方法为:首
先定位待释放内存单元对应的目标节点,然后找到要删除数据的首节点,然后逐个删除
您可能关注的文档
最近下载
- 2023-2024学年上海市长宁区高中数学人教A版选修二第四章-数列章节测试-19-含解析.pdf VIP
- 大学英语六级词汇汇总.pdf VIP
- 乡愁英文版.pptx
- 2023-2024学年江苏省南通市高中数学人教A版选修二第四章-数列章节测试-19-含解析.pdf
- 2022年黑龙江省大庆市中考道德与法治试卷(word精校版).docx
- JTT329-2010 公路桥梁预应力钢绞线用锚具、夹具和连接器.docx VIP
- 水电站大坝主体混凝土施工组织设计.doc
- 2023-2024学年北京市西城区高中数学人教A版选修二第四章-数列章节测试-9-含解析.pdf
- 20秋新疆电大一体化 社会保障学 (50627)章节测验1-24答案.pdf
- 2023年全国乙卷理科综合高考试卷(原卷+答案).pdf
文档评论(0)