【技术实现步骤摘要】
一种共享内存分配方法
本专利技术涉及共享内存
,特别是涉及一种共享内存的分配方法。
技术介绍
当前的共享内存分配器主要用于有亲属关系的进程之间。具体操作为,父进程创建共享内存,在共享内存中进行动态分配,所有的数据达到完整状态后,通过fork创建子进程。由于子进程复制了父进程的地址空间,所以在父进程中设置好的数据结构对其是可见的,从而达到共享数据结构的目的。当前方案有弊端,首先,只能在有亲属关系的进程之间使用,其次,共享内存的数据结构设置好后就无法修改,因为进程的地址空间是独立的,在任何进程中做的修改都不可能被其他进程看见。严格来说,这个方案只是节约了内存,并非真正的动态内存分配。本专利技术对进程间的关系没有要求,内存的分配在任何时候都可以进行,共享内存的所有进程都可以看到别的进程的修改。
技术实现思路
基于此,有必要提供任何时候都可以进行内存分配的共享内存分配方法。一种共享内存分配方法,包括:步骤1:将分配的共享内存等分成小的内存块,所有内存块的使用情况用一个比特表记录;步骤2:根据申请使用的内存大小计算出连续内存块的块数S;步骤3:遍历所述比特表,选择块数大于 ...
【技术保护点】
一种共享内存分配方法,其特征在于,包括:步骤1:将分配的共享内存等分成小的内存块,所有内存块的使用情况用一个比特表记录;步骤2:根据申请使用的内存大小计算出连续内存块的块数S;步骤3:遍历所述比特表,选择块数大于等于S且是其中最小的一个连续块。
【技术特征摘要】
1.一种共享内存分配方法,其特征在于,包括:步骤1:将分配的共享内存等分成小的内存块,所有内存块的使用情况用一个比特表记录;步骤2:根据申请使用的内存大小计算出连续内存块的块数S;所述连续块的起始块分为用于存放连续块的块数S的头部与用于存放数据的数据部,连续块的其他块全部用于存放数据;步骤3:遍历所述比特表,选择块数大于等于S且是其中最小的一个连续块;当要存放的数据为指针时,全部改为指针所指地址与共享内存起始地址的偏移量。2.根据权利要求1所述的共享内存分配...
【专利技术属性】
技术研发人员:李小庆,
申请(专利权)人:上海斐讯数据通信技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。