[发明专利]一种共享内存空间的管理方法有效
申请号: | 201610097234.1 | 申请日: | 2016-02-22 |
公开(公告)号: | CN107102900B | 公开(公告)日: | 2020-02-07 |
发明(设计)人: | 李永海;廖军;沈凯立 | 申请(专利权)人: | 上海大唐移动通信设备有限公司;大唐移动通信设备有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 11002 北京路浩知识产权代理有限公司 | 代理人: | 王莹 |
地址: | 200233 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 共享 内存空间 管理 方法 | ||
本发明公开一种共享内存空间的管理方法,包括:基于预设的链表模式,将待管理的共享内存空间初始化为公共区和私有区,且在私有区中初始化一块属性区,并将链表模式对应的链表结点的属性存放到属性区;在接收到一条待写入的数据时,从私有区的非属性区为该条数据申请一个链表结点空间;将该条数据写入到该链表结点的数据域,并在该链表结点的指针域记录与该链表结点相关的链表结点相对共享内存空间的首地址的地址偏移量。相比现有技术,本发明公开的共享内存空间的管理方法,利用链表结点的指针域记录相对共享内存空间首地址的地址偏移量,用以模拟链表结构,对共享内存空间实现灵活、高效的管理。
技术领域
本发明涉及计算机技术领域,具体涉及一种共享内存空间的管理方法。
背景技术
进程是计算机进行资源分配和调度的基本单位,进程是一个实体。共享内存(shared memory,shm)是被多个进程共享的逻辑内存区域。每个进程将共享内存空间地址映射到各自的逻辑地址空间中,一个进程向共享内存空间写入了数据,使用共享内存空间的其他进程就可以看到该数据,从而实现进程间通信(Inter Process Communication,IPC)。由于进程可以直接读写内存,不需要复制数据,因此使用共享内存空间通信是进程间通信(Inter Process Communication,IPC)最有效的方式;此外,共享内存空间还可以缓存大数据。
由于共享内存空间在各进程的地址空间中的地址不同,因此,共享内存空间中只能存放数据,不能存放指针。在共享内存空间中使用相对共享内存空间首地址的地址偏移量来模拟指针。
共享内存空间的使用有如下几个特点:可以被多个进程打开访问;读写操作的进程在执行读写操作时其他进程不能进行读写操作;多个进程可以交替对共享内存空间执行写操作;一个进程执行了共享内存空间的写操作后,不影响其他进程对该共享内存空间的访问,同时其他进程对更新后的内存具有可见性。共享内存空间的使用需要通过信号量、全局锁通过、管道消息或IPC消息等来保证读写之间的同步。
传统的共享内存空间的管理方法只是单纯停留在地址偏移量的移动,来存储和读取数据,不仅使用上不灵活,多次读写后,地址偏移量的大小不好控制,因此很难发挥共享内存空间的作用。
发明内容
针对现有技术的缺陷,本发明提供一种共享内存空间的管理方法及系统,以解决现有共享内存空间管理技术单纯停留在偏移量的移动来存储和读取数据,不仅使用上不灵活,多次读写后,偏移量的大小不好控制,很难发挥共享内存空间的作用的技术问题。
为此目的,本发明提出一种共享内存空间的管理方法,包括:
基于预设的链表模式,将待管理的共享内存空间初始化为公共区和私有区,且在所述私有区中初始化一块属性区,并将所述链表模式对应的链表结点的属性存放到所述属性区;
在接收到一条待写入的数据时,从所述私有区的非属性区为该条数据申请一个链表结点;
将该条数据写入到该链表结点的数据域,并在该链表结点的指针域记录与该链表结点相关的链表结点相对所述共享内存空间的首地址的地址偏移量。
可选的,所述链表模式为容器vector;
相应地,所述将所述链表模式对应的链表结点属性存放到所述属性区,包括:
将链表结点的数据域预设的数据条数、每条数据预设的最大长度、第一个链表结点的指针域相对于共享内存空间的首地址的地址偏移量以及当前使用的链表结点的指针域相对于共享内存空间的首地址的地址偏移量存放到所述属性区。
可选的,所述从所述私有区的非属性区为该条数据申请一个链表结点空间,包括:
从所述私有区的非属性区为该条数据申请一个数据域大小为预设页大小的链表结点空间,所述预设页大小由所述链表结点的数据域预设的数据条数以及每条数据预设的最大长度确定。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海大唐移动通信设备有限公司;大唐移动通信设备有限公司,未经上海大唐移动通信设备有限公司;大唐移动通信设备有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610097234.1/2.html,转载请声明来源钻瓜专利网。