一种共享内存分配方法组成比例

技术编号:9434530 阅读:99 留言:0更新日期:2013-12-12 00:35
一种共享内存分配方法,包括:步骤1:将分配的共享内存等分成小的内存块,所有内存块的使用情况用一个比特表记录;步骤2:根据申请使用的内存大小计算出连续内存块的块数S;步骤3:遍历所述比特表,选择块数大于等于S且是其中最小的一个连续块。采用本发明专利技术的方法后,采用本发明专利技术的方法后,通过查看比特表方便了解共享内存的内存块占用情况,随时为进程需要分配共享内存。内存块数据部分的指针使用指针所指地址与共享内存起始地址的偏移量代替,使各个进程的读写彼此看得见,实现共享内存的动态分配。

【技术实现步骤摘要】
一种共享内存分配方法
本专利技术涉及共享内存
,特别是涉及一种共享内存的分配方法。
技术介绍
当前的共享内存分配器主要用于有亲属关系的进程之间。具体操作为,父进程创建共享内存,在共享内存中进行动态分配,所有的数据达到完整状态后,通过fork创建子进程。由于子进程复制了父进程的地址空间,所以在父进程中设置好的数据结构对其是可见的,从而达到共享数据结构的目的。当前方案有弊端,首先,只能在有亲属关系的进程之间使用,其次,共享内存的数据结构设置好后就无法修改,因为进程的地址空间是独立的,在任何进程中做的修改都不可能被其他进程看见。严格来说,这个方案只是节约了内存,并非真正的动态内存分配。本专利技术对进程间的关系没有要求,内存的分配在任何时候都可以进行,共享内存的所有进程都可以看到别的进程的修改。
技术实现思路
基于此,有必要提供任何时候都可以进行内存分配的共享内存分配方法。一种共享内存分配方法,包括:步骤1:将分配的共享内存等分成小的内存块,所有内存块的使用情况用一个比特表记录;步骤2:根据申请使用的内存大小计算出连续内存块的块数S;步骤3:遍历所述比特表,选择块数大于等于S且是其中最小的本文档来自技高网...
一种共享内存分配方法

【技术保护点】
一种共享内存分配方法,其特征在于,包括:步骤1:将分配的共享内存等分成小的内存块,所有内存块的使用情况用一个比特表记录;步骤2:根据申请使用的内存大小计算出连续内存块的块数S;步骤3:遍历所述比特表,选择块数大于等于S且是其中最小的一个连续块。

【技术特征摘要】
1.一种共享内存分配方法,其特征在于,包括:步骤1:将分配的共享内存等分成小的内存块,所有内存块的使用情况用一个比特表记录;步骤2:根据申请使用的内存大小计算出连续内存块的块数S;所述连续块的起始块分为用于存放连续块的块数S的头部与用于存放数据的数据部,连续块的其他块全部用于存放数据;步骤3:遍历所述比特表,选择块数大于等于S且是其中最小的一个连续块;当要存放的数据为指针时,全部改为指针所指地址与共享内存起始地址的偏移量。2.根据权利要求1所述的共享内存分配...

【专利技术属性】
技术研发人员:李小庆
申请(专利权)人:上海斐讯数据通信技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1