[发明专利]一种共享内存管理方法及装置在审
申请号: | 201910293072.2 | 申请日: | 2019-04-12 |
公开(公告)号: | CN110109763A | 公开(公告)日: | 2019-08-09 |
发明(设计)人: | 叶佳运 | 申请(专利权)人: | 厦门亿联网络技术股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F12/02 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 颜希文;麦小婵 |
地址: | 361000 福建省厦门市*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 共享内存 存储数据 内存 共享内存管理 链表结点 链表头 偏移 哈希 结点 链表 存储位置信息 管理共享内存 数据结构模式 存储结构 快速访问 连续存储 内存管理 起始地址 数组元素 第一级 分配头 两级 空闲 存储 查找 分配 更新 | ||
本发明公开了一种共享内存管理方法及装置,所述方法包括,获取共享内存起始地址并设置初始的内存偏移;为共享内存分配头、哈希结构和空闲链表头在共享内存中分配内存,并更新内存偏移;获取需存储数据的标志项,根据需存储数据的标志项确定链表头结点;新建链表结点并插入链表中,在链表结点中存储位置信息和需存储数据。本发明采用hashmap的数据结构模式来管理共享内存,在共享内存中存储哈希结构,通过使用数组元素在内存中连续存储的特性,将存储结构分为两级,第一级为数组,第二级为链表,以此来提升查找结点的效率,使得共享内存可以快速访问,并且做到共享内存的充分利用,解决了目前内存管理效率低的问题。
技术领域
本发明涉及存储管理领域,尤其涉及一种共享内存管理方法及装置。
背景技术
共享内存是Linux进程间通信的一种方式,可以使得不同进程对同一块内存进行读写,当系统N个进程对同一份系统文件配置或其他类型数据进行读写时,本来需要N份内存使用,在使用共享内存后,则只需要使用一份内存就够了,这样可以大大减少系统内存资源占用,而且不同进程对共享内存的访问就像访问自己进程内部的内存空间一样,十分高效。
共享内存只是一个大小固定的内存块,申请后共享内存该如何来管理和分配,才能使得数据有规则的存储在共享内存里面,达到共享内存的充分利用且能够十分快速的将数据读取出来,一直是共享内存管理和分配的关键问题点。
目前解决共享内存管理和分配的普遍做法,是将共享内存的存储模式预设为链表模式,每个链表结点会记录当前相对共享内存空间的首地址的地址偏移量及前后结点的偏移量,以此来达到链式存储。该技术可以满足基本的存储及管理的目的,但是其存在一个非常明显的缺点,那就是数据存储完以后,我们再去共享内存中读取某个数据时,效率是十分低下的,因为每读取一条数据都需要去遍历整条链表,才能将数据读取出来,那这对于某些需要快速且非常频繁去读取数据的系统来说,性能上会大打折扣。
解决共享内存管理和分配问题,还可以将分配的共享内存等分成小的内存块,然后所有的内存块使用情况用一个比特表记录,通过比对比特表来确定内存该如何分配以及内存使用情况。但其问题在于,内存块难以合适的等分划分,如果划分块太大,会出现内存浪费以及可能出现内存碎片;每次放入数据,都需要比对和搜索比特表,找到合适大小的内存块,这个会浪费时间,消耗软件性能,如果内存块划分还太小,那等于管理的比特表就更大了,消耗的时间会更多。
由此可见,实际生产中缺乏一种可以使得到共享内存中读取数据的效率得到显著提高,并且做到共享内存的充分利用的共享内存管理和分配方法。
发明内容
本发明提供了一种共享内存管理方法及装置,旨在解决目前内存管理效率低的问题。
为实现上述目的,本发明实施例提供了一种共享内存管理方法,包括:
获取共享内存起始地址并设置初始的内存偏移;
为共享内存分配头、哈希结构和空闲链表头在共享内存中分配内存,并更新内存偏移;
获取需存储数据的标志项,根据需存储数据的标志项确定链表头结点;
新建链表结点并插入链表中,在链表结点中存储位置信息和需存储数据。
进一步地,所述初始的内存偏移为0,所述共享内存分配头、哈希结构和空闲链表头从共享内存起始地址开始分配内存,所述更新内存偏移的大小为哈希结构和空闲链表头占据内存之和。
进一步地,所述获取需存储数据的标志项,根据需存储数据的标志项确定链表头结点,包括:
获取需存储数据的标志项,通过哈希函数将需存储数据的标志项转换为哈希值;
根据哈希值在哈希结构中确定对应的链表头结点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门亿联网络技术股份有限公司,未经厦门亿联网络技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910293072.2/2.html,转载请声明来源钻瓜专利网。