The invention provides a memory management method and a memory management device for performing memory allocation and/or memory de-allocation using multiple independent idle linked lists, which provide information about multiple memory blocks, in which the memory allocation and/or memory de-allocation are performed according to the state of the memory blocks, and the state of the memory blocks includes: Indicates that a memory block in use is being used and not available for allocation; a link state indicates that a memory block in link state is not used and is linked and available for allocation in an idle list of multiple independent idle linked lists; an idle state indicates that a memory block in idle state is not used and that the multiple independent idle linked lists are not used Any free list is not linked and cannot be allocated.
【技术实现步骤摘要】
【国外来华专利技术】内存管理方法和设备
本专利技术提供一种内存管理方法和设备,用于使用多个独立的空闲链表来执行内存分配和/或内存解分配。此外,本专利技术涉及对应排列的计算机程序产品和对应排列的计算机可读介质。
技术介绍
内存管理在所有计算系统和设备中都必不可少。在计算系统或设备上执行计算以及在计算系统或设备中处理数据时都需要内存资源。内存资源管理通常由内存分配器实现。典型的内存分配器是一个单独的内存记帐工具,其具有高效的接口来分配和解分配大小符合要求的内存块。在计算系统或设备中,请求内存分配器提供一定大小的块,从而执行一个或多个进程和/或将数据存储在计算系统或设备中。内存分配器评估该请求,检查是否有足够的内存来满足请求,准备已经定位好的块并返回块地址来响应该请求。稍后,通知内存分配器不再使用某一内存块。为响应此信息,内存分配器回收该块并可选地执行其他操作,例如合并。所有内存分配器的共同问题是内存细分(例如,参见Wilson,P.R.、Johnstone,M.S.、Neely,M.、Boles,D.(1995)“动态存储分配:调查和关键回顾”。内存管理:国际研讨会,Iwmm'95,英国 ...
【技术保护点】
1.一种内存管理方法,其特征在于,用于使用多个独立的空闲链表来执行内存分配和/或内存解分配,所述多个独立的空闲链表提供多个内存块的信息,其中,所述方法用于根据内存块的状态执行内存分配和/或内存解分配,并且所述内存块的状态包括:使用状态,指示处于使用状态的内存块正在被使用并且不可用于分配;链接状态,指示处于链接状态的内存块未被使用,且在多个独立的空闲链表的一个空闲链表中被链接,并且可用于分配;空闲状态,指示处于空闲状态的内存块未被使用,并且在所述多个独立的空闲链表的任何一个空闲链表内都未被链接,并且不可用于分配;其中,所述内存管理方法用于通过以下操作来执行所述内存分配:在所述 ...
【技术特征摘要】
【国外来华专利技术】1.一种内存管理方法,其特征在于,用于使用多个独立的空闲链表来执行内存分配和/或内存解分配,所述多个独立的空闲链表提供多个内存块的信息,其中,所述方法用于根据内存块的状态执行内存分配和/或内存解分配,并且所述内存块的状态包括:使用状态,指示处于使用状态的内存块正在被使用并且不可用于分配;链接状态,指示处于链接状态的内存块未被使用,且在多个独立的空闲链表的一个空闲链表中被链接,并且可用于分配;空闲状态,指示处于空闲状态的内存块未被使用,并且在所述多个独立的空闲链表的任何一个空闲链表内都未被链接,并且不可用于分配;其中,所述内存管理方法用于通过以下操作来执行所述内存分配:在所述多个独立的空闲链表的一个空闲链表内查找内存块,将发现的内存块从所述多个独立的空闲链表的一个空闲链表中解除链接,并将发现的内存块的状态设置为使用状态;验证内存中发现的内存块的右侧相邻内存块是否处于空闲状态;如果右侧相邻内存块处于空闲状态,则将右侧相邻内存块链接到所述多个独立的空闲链表的一个对应的空闲链表中,并将右侧相邻内存块的状态设置为链接状态;其中,所述内存管理方法用于通过以下操作来执行所述内存解分配:验证内存中执行内存解分配的所述内存块的左侧相邻内存块的状态;如果所述左侧相邻内存块处于使用状态,则将所述内存块的状态设置为链接状态,并将所述内存块链接到所述多个独立的空闲链表的一个对应的空闲链表中;如果左侧相邻内存块处于链接状态,则将内存块的状态设置为空闲状态;如果左侧相邻内存块处于空闲状态,则将内存块和左侧相邻内存块合并为新内存块,并将新内存块的状态设置为空闲状态。2.根据权利要求1所述的内存管理方法,其特征在于,所述多个独立的空闲链表都是单链接的。3.根据权利要求1或2所述的内存管理方法,其特征在于,所述内存管理方法用于:如果内存中发现的内存块的右侧相邻内存块不处于空闲状态,则通过终止内存分配动作来执行内存分配。4.根据上述权利要求中任一项所述的内存管理方法,其特征在于,所述多个内存块的每个内存块都包括报头和报尾,并且所述报头和/或报尾指示相应内存块的状态。5.根据权利要求4所述的内存管理方法,其特...
【专利技术属性】
技术研发人员:亚历山大·亚历山德罗维奇·西马克,彼得·谢尔盖耶维奇·克林诺夫,张学仓,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。