The embodiment of this application discloses a memory management method and device, which relates to the field of storage technology and solves the problem of memory waste. The specific scheme is as follows: receiving the request sent by the target processor to allocate the memory allocation request of the memory block in the computer memory, the computer includes multiple processors, the memory includes data area and address area, the data area includes M memory blocks, the address area includes N sub-areas, each sub-area stores the address information of at least one memory block, and different sub-areas save it. Address information is different, each processor allocates an affinity sub-region in N sub-regions, M>1, N>1, M>N; identifies the affinity sub-region of the target processor; if the address information of the memory block is not recorded in the affinity sub-region of the target processor, the address information of the memory block is obtained from the first sub-region, and the memory block identified by the address information of the acquired memory block is divided into blocks. Allocate the target processor.
【技术实现步骤摘要】
一种内存管理方法及装置
本申请实施例涉及存储
,尤其涉及一种内存管理方法及装置。
技术介绍
内存管理是将计算机的内存划分为若干个内存池(MemoryPool),每个内存池内部放置若干个内存块,对每个内存块进行独立管理,确保计算机中的每个业务能及时获取到相应的内存空间,同时又不影响其他业务的运行。定长内存池管理为内存管理中较为常见的一种。在上述计算机中,通用的定长内存池管理方法为:一个容量固定的连续内存(即一个定长内存池,后续均用定长内存池表示)包括若干相同长度的内存块,若干个保存有至少一个内存块的地址信息的子区域,以及保存有至少一个未被分配、且未被保存至任一子区域的内存块的地址信息的全局队列,计算机中的每个处理器(或处理器内核)在上述若干个子区域中分配有一个专用子区域,专用子区域保存的地址信息所标识的内存块只能分配给与该专用子区域对应的处理器(或处理器内核);当需要为某一业务分配内存时,首先判断该业务调用的处理器(或者处理器内核)的专用子区域是否为空,即判断该业务调用的处理器(或处理器内核)的专用子区域是否记录有地址信息;若该处理器(或者处理器内核)的专用子 ...
【技术保护点】
1.一种内存管理方法,其特征在于,包括:接收目标处理器发送的内存分配请求,所述内存分配请求用于请求为所述目标处理器分配计算机的内存中的内存块,所述计算机包括多个处理器,所述目标处理器是所述多个处理器中的其中一个,所述内存包括数据区域和地址区域,所述数据区域包括M个内存块,所述地址区域包括N个子区域,每个子区域用于保存至少一个内存块的地址信息,且不同子区域保存的地址信息不同,每个处理器在所述N个子区域中分配有一个亲和子区域,所述亲和子区域保存的地址信息所标识的内存块优先分配给与所述亲和子区域对应的处理器,其中,M>1,N>1,M≥N;响应所述内存分配请求,根据所述目标处理器, ...
【技术特征摘要】
1.一种内存管理方法,其特征在于,包括:接收目标处理器发送的内存分配请求,所述内存分配请求用于请求为所述目标处理器分配计算机的内存中的内存块,所述计算机包括多个处理器,所述目标处理器是所述多个处理器中的其中一个,所述内存包括数据区域和地址区域,所述数据区域包括M个内存块,所述地址区域包括N个子区域,每个子区域用于保存至少一个内存块的地址信息,且不同子区域保存的地址信息不同,每个处理器在所述N个子区域中分配有一个亲和子区域,所述亲和子区域保存的地址信息所标识的内存块优先分配给与所述亲和子区域对应的处理器,其中,M>1,N>1,M≥N;响应所述内存分配请求,根据所述目标处理器,识别所述目标处理器的亲和子区域;当所述目标处理器的亲和子区域中没有记录内存块的地址信息时,从第一子区域中获取一个内存块的地址信息,所述第一子区域为所述N个子区域中除所述目标处理器的亲和子区域之外的一个;将获取到的内存块的地址信息所标识的内存块分配给所述目标处理器。2.根据权利要求1所述的内存管理方法,其特征在于,所述内存还包括全局队列,所述全局队列用于保存至少一个未被分配、且未被保存至所述地址区域的内存块的地址信息;当所述目标处理器的亲和子区域中没有记录内存块的地址信息时,从第一子区域中获取一个内存块的地址信息,具体包括:当所述目标处理器的亲和子区域中没有记录内存块的地址信息时,识别所述全局队列;当所述全局队列中没有记录内存块的地址信息时,从所述第一子区域中获取一个内存块的地址信息。3.根据权利要求1或2所述的内存管理方法,其特征在于,所述内存还包括最近闲置变量,所述最近闲置变量用于指示被解除占用、且从被解除占用的时刻开始到当前时刻的时间差最短的子区域;所述从所述第一子区域中获取一个内存块的地址信息,包括:当所述最近闲置变量指示的子区域为所述第一子区域时,确定所述第一子区域当前是否被占用;当所述第一子区域当前未被占用时,从所述第一子区域中获取一个内存块的地址信息。4.根据权利要求3所述的内存管理方法,其特征在于,所述内存管理方法还包括:当所述最近闲置变量指示的子区域为第二子区域时,确定所述第二子区域当前是否被占用,所述第二子区域与所述第一子区域为不同的区域;当所述第二子区域当前已被占用时,从第三子区域起依次遍历所述N个子区域,所述第三子区域为所述N个子区域中排列在所述第二子区域之后、且与所述第二子区域相邻的子区域;在遍历过程中确定所述第一子区域未被占用,且所述第一子区域中记录有内存块的地址信息时,从所述第一子区域中获取一个内存块的地址信息。5.根据权利要求1-4中任意一项所述的内存管理方法,其特征在于,所述地址区域还包括N个占用标识,所述每个子区域均有一个所述占用标识,所述占用标识用于表示对应的子区域是否已被占用;所述根据所述目标处理器,识别所述目标处理器的亲和子区域之后,所述内存管理方法还包括:根据所述目标处理器的亲和子区域的占用标识,确定所述目标处理器的亲和子区域是否被占用;当所述目标处理器的亲和子区域未被占用时,确定所述目标处理器的亲和子区域中是否记录有内存块的地址信息。6.一种内存管理装置,其特征在于,包括:接收单元,用于接收目标处理器发送的内存分配...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。