【技术实现步骤摘要】
一种共享内存管理方法及装置
本专利技术涉及存储管理领域,尤其涉及一种共享内存管理方法及装置。
技术介绍
共享内存是Linux进程间通信的一种方式,可以使得不同进程对同一块内存进行读写,当系统N个进程对同一份系统文件配置或其他类型数据进行读写时,本来需要N份内存使用,在使用共享内存后,则只需要使用一份内存就够了,这样可以大大减少系统内存资源占用,而且不同进程对共享内存的访问就像访问自己进程内部的内存空间一样,十分高效。共享内存只是一个大小固定的内存块,申请后共享内存该如何来管理和分配,才能使得数据有规则的存储在共享内存里面,达到共享内存的充分利用且能够十分快速的将数据读取出来,一直是共享内存管理和分配的关键问题点。目前解决共享内存管理和分配的普遍做法,是将共享内存的存储模式预设为链表模式,每个链表结点会记录当前相对共享内存空间的首地址的地址偏移量及前后结点的偏移量,以此来达到链式存储。该技术可以满足基本的存储及管理的目的,但是其存在一个非常明显的缺点,那就是数据存储完以后,我们再去共享内存中读取某个数据时,效率是十分低下的,因为每读取一条数据都需要去遍历整条链表,才 ...
【技术保护点】
1.一种共享内存管理方法,其特征在于,包括:获取共享内存起始地址并设置初始的内存偏移;为共享内存分配头、哈希结构和空闲链表头在共享内存中分配内存,并更新内存偏移;获取需存储数据的标志项,根据需存储数据的标志项确定链表头结点;新建链表结点并插入链表中,在链表结点中存储位置信息和需存储数据。
【技术特征摘要】
1.一种共享内存管理方法,其特征在于,包括:获取共享内存起始地址并设置初始的内存偏移;为共享内存分配头、哈希结构和空闲链表头在共享内存中分配内存,并更新内存偏移;获取需存储数据的标志项,根据需存储数据的标志项确定链表头结点;新建链表结点并插入链表中,在链表结点中存储位置信息和需存储数据。2.根据权利要求1所述的一种共享内存管理方法,其特征在于,所述初始的内存偏移为0,所述共享内存分配头、哈希结构和空闲链表头从共享内存起始地址开始分配内存,所述更新内存偏移的大小为哈希结构和空闲链表头占据内存之和。3.根据权利要求1或2所述的一种共享内存管理方法,其特征在于,所述获取需存储数据的标志项,根据需存储数据的标志项确定链表头结点,包括:获取需存储数据的标志项,通过哈希函数将需存储数据的标志项转换为哈希值;根据哈希值在哈希结构中确定对应的链表头结点。4.根据权利要求1或2所述的一种共享内存管理方法,其特征在于,所述哈希结构为以数组结构,所述数组下标根据需存储数据的标志项通过哈希函数计算得到,所述数组值为链表头结点。5.根据权利要求4所述的一种共享内存管理方法,其特征在于,所述获取需存储数据的标志项,根据需存储数据的标志项确定链表头结点,包括:获取需存储数据的标志项,通过哈希函数计算需存储数据对应的数组下标;根据数组下标在哈希结构中查找对应的数组值,所述数组值为链表头结点。6.一种共享内存管理装置,其特征在于,包括:初始设置单元,用于获取共享内存起始地...
【专利技术属性】
技术研发人员:叶佳运,
申请(专利权)人:厦门亿联网络技术股份有限公司,
类型:发明
国别省市:福建,35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。