CN101320351A - 内存的分配、清理和释放方法及内存管理的装置 - Google Patents
内存的分配、清理和释放方法及内存管理的装置 Download PDFInfo
- Publication number
- CN101320351A CN101320351A CNA2008100482155A CN200810048215A CN101320351A CN 101320351 A CN101320351 A CN 101320351A CN A2008100482155 A CNA2008100482155 A CN A2008100482155A CN 200810048215 A CN200810048215 A CN 200810048215A CN 101320351 A CN101320351 A CN 101320351A
- Authority
- CN
- China
- Prior art keywords
- memory block
- partner
- memory
- busy
- size
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明公开了内存的分配、清理和释放方法,还公开了一种内存管理的装置,包括:内存分配模块,用于从大小最合适的空闲队列中为内存请求分配内存块;碎片回收模块,用于对内存分配时产生的内部碎片进行回收,并将所述内部碎片分别插到不同的空闲队列;内存合并模块,用于当最大的空闲内存块也无法满足所述内存请求时,进行内存块合并操作。本发明通过对内存请求按需分配,能够减少内部碎片的产生。还对释放的内存块延迟合并,能够避免频繁分裂和合并所造成的内存震荡,从而减少系统频繁进行分裂和合并的开销,提高了系统的性能。
Description
技术领域
本发明涉及内存管理技术,特别是内存的分配、清理和释放方法及内存管理的装置。
背景技术
随着linux系统广泛使用,该系统中动态内存的管理方式已经变得愈发重要。因为如果动态内存短缺或管理不当,将导致整个系统反应迟缓,甚至整个系统的崩溃。
为了保证linux内存管理机制能够高效运行,在现代操作系统中采用了许多技术,其中比较常用的就是伙伴算法。该算法最早是由Donal d E.Knuth于1968年提出的,是一个快速的动态内存管理经典算法。
在该算法中有多个空闲队列,块长为2k个页面的空闲块都在同一个队列中。当要分配一个长为m的内存块时,需从块长为2i的空闲队列中分配一个内存块(其中i满足2i-1<m<2i)。如果块长为2i的空闲队列耗尽,则从块长为2i+1的空闲队列中分配一块,将其分为长度相等的两段,这两段互为伙伴,一段用于分配,另一段链入块长为2i的伙伴空闲队列中。如果块长为2i+1的空闲队列也为空,则继续向块长更大的内存块(2i+2,2i+3……)提出请求。
而当块长为2j个页面的内存块被释放时,首先检查其伙伴块是否空闲,如果空闲则与伙伴块合并为块长为2j+1的空闲块,并链入对应队列中;若忙则直接链入块长为2j的空闲队列中。当合并得到块长为2j+1的空闲内存块时,也要检查它的伙伴块状态并做相同的处理,直到得到最大的空闲块。在伙伴算法中,内存的分配和合并都是一个递归的过程。
经典的伙伴算法是一个非常强调时效的算法。最坏的情况下,内存分配和回收的时间开销都是O(log2M),其中M是内存的大小。从而内存的分配和回收可在一定时限内完成。在经典的伙伴算法中主要时间消耗在分配时没有合适的内存块,需要把大的内存块分裂成较小的内存块的过程,以及在回收时,把小的空闲块合并成较大空闲块的过程。
经典伙伴算法虽然具有较强的时效性,但存在两个问题严重制约着算法的性能。首先,经典伙伴算法由于块长为2的幂次方,造成了较多的内部碎片,从而导致即使系统中有足够的内存,但由于其不连续也不能满足某些内存请求;其次,若分配的内存块生存周期很短,经典的伙伴算法要求系统不断进行内存块的分裂和合并过程,使得系统产生过大的负载影响了系统的运行效率。
针对经典伙伴算法中存在的问题,对该算法的研究一直没有停止过。例如,针对内部碎片问题,研究者们先后提出了三种比较重要的改进算法:Knowlton和knuth的binary伙伴算法,Hirschberg的fibonacci伙伴算法,以及Shen和Peterson的weighted伙伴算法。这三种算法均通过增加内存块尺寸的种类,希望最大程度的使内存块尺寸更加接近应用需求,以减少内部碎片的产生。虽然这些算法提供了更多合适的内存块尺寸,似乎达到了减少内部碎片的目的,但是仔细分析则不难发现,在提供更多的内存块尺寸时,系统就要增加维护新尺寸内存块的表项,从而增加了空间开销;同时由于内存块尺寸的粒度变细,增加了分裂回收伙伴的次数,增加了时间开销;而且试验证明,系统的内部碎片总量总是保持在25%-40%这个恒定的区间,并没有有效减少。总的来说,这三种算法实现内部碎片的减少是以牺牲算法性能为代价的。
发明内容
有鉴于此,本发明的目的在于提供内存的分配、清理和释放方法及内存管理的装置,用于减小内存碎片和提高系统效率。
为实现上述目的,本发明提供了一种内存的分配方法,在接收到内存请求时,包括以下步骤:
从大小最合适的空闲队列为所述内存请求分配内存块,对内存分配时产生的内部碎片进行回收,将所述内部碎片分别插到不同的空闲队列;当最大的空闲内存块也无法满足所述内存请求时,进行内存块合并操作。
本发明还提供了一种清理内存的方法,在接收到内存请求时,如果空闲内存中最大的内存块也无法满足所述内存请求时,进行内存块合并操作。
本发明还提供了一种释放内存的方法,当内存块被释放时,将释放的内存块插入到相应的伙伴忙空闲队列,或将伙伴忙空闲队列中的内存块转移到伙伴闲空闲队列,并不立即对内存块进行合并操作,仅仅当最大的空闲内存块也无法满足内存请求时,才进行内存块合并操作。
本发明还提供了一种内存管理的装置,包括:
内存分配模块,用于从大小最合适的空闲队列中为内存请求分配内存块;
碎片回收模块,用于对内存分配时产生的内部碎片进行回收,并将所述内部碎片分别插到不同的空闲队列;
内存合并模块,用于当最大的空闲内存块也无法满足所述内存请求时,进行内存块合并操作。
本发明通过对内存请求执行按需分配策略,能够提供灵活多变的内存块尺寸,从而达到了减少内部碎片的目的。同时还对释放的内存块执行延迟合并的策略,能够避免频繁分裂和合并所造成的内存震荡,从而减少系统频繁进行分裂和合并的开销,提高了系统的性能。
附图说明
图1为本发明的实施例中进行内存分配的方法流程图;
图2为本发明的实施例中待分配内存块的结构示意图;
图3为本发明的实施例中空闲队列的结构示意图;
图4为本发明的实施例中对内存块进行合并操作的方法流程图;
图5为本发明的实施例中对内存块进行回收操作的方法流程图;
图6为本发明的实施例中一种内存管理装置的结构图。
具体实施方式
本发明的实施例通过对内存请求执行按需分配策略,以提供灵活多变的内存块尺寸,从而达到了减少内部碎片的目的。同时还提出了释放内存块延迟合并的策略,以避免频繁分裂和合并所造成的内存震荡,从而减少系统频繁进行分裂和合并的开销,以提高系统的性能。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
当进行内存分配时,其核心思想是对内存请求进行按需分配,并将分配后的内部碎片进行拆分,插入到相应大小的内存块空闲队列。该方法的流程如图1所示:
步骤101、根据请求的内存块的大小,找到内存块大小为2的i次方个页面大小的空闲内存块队列。这里的i值要满足2i-1<m<2i,m是请求的内存块的大小。
如图2所示,假如要分配9个页面大小的内存块,则找到块长为24(16)个页面大小的空闲内存块队列。
步骤102、判断大小为2的i次方个页面大小的空闲内存块队列中是否有空闲内存块,有则执行步骤106;否则执行步骤103。
判断24个页面大小的空闲内存块队列是否有空闲内存块。
步骤103、将空闲内存块大小的指数标志i递增,即i=i+1。该步骤的目的是分裂更大的内存块,因为大小最合适的空闲内存块不存在,只能从更大的内存块中分配请求的内存块。
步骤104、判断i是否大于Max,所述Max是待分配的最大空闲内存块的大小值。该步骤用以判定待分裂的更大空闲内存块是否超过最大空闲内存块值,若i>Max,则执行步骤105,否则执行步骤102。
步骤105、对所有空闲内存块进行清理,并执行步骤101。
步骤106、分配大小为2的i次方的空闲内存块,从该内存块的尾部起分配所述请求的内存页。
在图2中,在24个页面大小的空闲内存块队列中取出一个空闲内存块,将该内存块后半部分的9个页面分配出去。
步骤107、回收完成分配的空闲内存块中剩余的内存碎片,将内部碎片进行拆分并插入到相应大小的空闲内存块队列。拆分插入的原则是:从分配后的内存块首部起向后找到尽可能大的2的幂次方个页面,挂入相应的空闲内存块队列,然后依次用同样的方法把剩下的空闲页面都分别挂入相应的队列中。
如图2所示,首先将块1挂入2的2次方的空闲内存块队列中,再分别将块2和3挂入2的1次方和0次方的队列中。在这里,由于块3对应的伙伴块是4,而4已经分配出去了,表明块3伙伴忙,则应将块3放入伙伴忙空闲队列,同理,块1和2对应的伙伴块是5,5已经分配,则将块1和2同样放入伙伴忙空闲队列。
步骤108、返回分配得到的内存基地址。
以上流程是分配内存时执行的流程,这种方法能够提供灵活多变的内存块大小,实现了按需分配内存,在一定程度上减少了内存碎片的产生。
该流程针对现有技术的另一重要改进是将空闲队列分成了伙伴闲空闲队列和伙伴忙空闲队列,如图3所示,两块在物理上连续的存储空间互称伙伴,若伙伴已被分配,则将其放入伙伴忙空闲队列,伙伴未被分配,则将其放入伙伴闲空闲队列。图3中,2k个页面大小的空闲内存块被放入了两个队列中,处于伙伴忙空闲队列中的内存块其伙伴已被分配使用,二者间存在链接关系,处于伙伴闲空闲队列中的内存块其伙伴未被分配使用,二者间同样存在链接关系。本发明不会随时将空闲的伙伴合并,而是仅仅在最大的内存块也不能满足请求者时才进行合并,也就是内存块延迟合并策略。当分配内存块时,优先分配伙伴忙空闲队列中的内存块,直到忙空闲队列中的内存块被分配完毕,再从伙伴闲空闲队列中分配内存块,这样能够保证在合并内存块时,伙伴闲空闲队列中有更多的内存块可合并,提高了合并的效率。当内存块被释放时,只是将空闲的伙伴挂入伙伴闲空闲队列。这样就避免了现有技术中分裂回收伙伴频率过高、系统负担过重的问题。
在步骤105中,当最大空闲内存块不能满足请求时,需要对伙伴空闲块进行合并操作,该操作的流程如图4所示,具体包括如下步骤:
步骤1050、赋初值,令i=0。
步骤1051、开始遍历2i个页面大小的伙伴闲空闲队列。
步骤1052、判断该伙伴闲空闲队列是否为空,如果为空,则令i=i+1,执行步骤1051;否则,执行下一步。
步骤1053、判断i是否等于MAX-1,如果是,则将该空闲队列中的所有内存块及其伙伴添加到2i+1个页面大小的伙伴忙空闲队列中,并执行步骤1055;否则执行下一步。这是因为,系统默认2MAX个页面大小的内存块是最大的内存块,已经无法再进行合并了,即2MAX只有一个空闲队列,不分忙和闲,或者可以认为只有一个伙伴忙空闲队列。因此,当对2MAX-1个页面大小的内存块进行合并时,已经是最后一次合并了。MAX与Max值得差别在于,MAX是系统默认的最大内存块,Max是现有的空闲内存块中最大的。
步骤1054、遍历2i个页面大小的伙伴闲空闲队列中每个节点,从节点中获取内存块,将该内存块和其伙伴块合并,根据合并后的2i+1个页面大小的内存块其伙伴块的分配情况,将其添加到2i+1个页面大小的伙伴忙或伙伴闲空闲队列中,并将该内存块和其伙伴块从2i队列中删除。
如何判断伙伴块是否被分配,可根据内存位图的情况,因为内存位图详细标识了所有内存的使用状态。
步骤1055、令i=i+1。
步骤1056、判断i是否小于MAX,若是则跳转到步骤1051,否则结束本流程。
通过该流程,能够有效避免现有技术需随时进行内存块的合并,而导致的系统负载增大的问题。并且由于将空闲内存块分别挂在了伙伴闲空闲队列和伙伴忙空闲队列,从而在合并时只需对伙伴闲空闲队列进行操作即可,提高了合并的效率,进一步减轻了系统负荷。
图5为本发明实施例中对内存块进行回收时执行的流程,也就是在内存释放后,所进行的操作,其核心思想是当内存块被释放时,将释放的内存块插入到相应的伙伴忙空闲队列,或将伙伴忙空闲队列中的内存块转移到伙伴闲空闲队列,但是并不立即对内存块进行合并操作,仅仅当无法满足内存请求时才依次对各伙伴闲空闲队列进行合并操作,直到得到请求大小的内存块。该流程具体包括以下步骤:
步骤201、根据释放的内存块的大小,找到2i个页面大小的空闲内存队列。其中,i的取值满足2i-1<m<2i,m是请求的内存块的大小。
依然以图2的内存块为例,释放的内存块大小为9个页面大小,则i值为4。
步骤202、赋初值,令j=1。
步骤203、检查psize的1到i位,如果第j位为1并且j=MAX,则将相应内存块添加到2MAX个页面大小的伙伴忙空闲队列中;否则执行下一步。其中,psize是释放的内存大小的二进制值。原因如前面所述,因为2MAX个页面大小的内存块是系统默认最大的内存块,将其挂入2MAX伙伴忙空闲队列即可。MAX实际上是一个临界条件,表示针对释放的内存块的操作至此就结束了。
以图2为例,9的二进制值是1001,表明该内存块可以拆分为20和23的内存块,那么只需针对这两个队列进行操作即可。
步骤204、如果第j位为1,则检测内存位图,若此释放的内存块其伙伴块空闲,将伙伴块从2i伙伴忙空闲队列中移除,并将此两个伙伴块添加到2i伙伴闲空闲队列中。第j位指的是二进制值的第j位,该位为0时无需任何操作。
在这里,并不立即对释放的内存块进行合并,而是将其挂入合适的空闲队列中,目的就是为了减少合并操作,因此该流程也称为延迟合并策略。
步骤205、如果第j位为1,则检测内存位图,若此释放的内存块其伙伴块忙,将释放的内存块添加到2i伙伴忙空闲队列中。
步骤206、令j=j+1,如果j<i+1,则跳转到步骤203,否则结束。
以图2为例,假定块1、2和3未被分配的前提下,在之前被请求的9个页面大小的内存块被释放时,根据其二进制值,将这个内存块拆分为20和23个页面大小的内存块,即块4和5,其中,块4的伙伴块3空闲,则将块3从20伙伴忙空闲队列中移除,与块3共同挂入20伙伴闲空闲队列。而块5的伙伴块1和2也空闲,则将块5和块1、2共同挂入23伙伴闲空闲队列。
通过以上流程可以看出,本发明的实施例是通过对分配给请求的内存块进行再分配,划分成按需分配部分和碎片回收部分。按需分配部分将请求分成若干子内存块,每个子内存块的大小都为2的幂次方;同样回收部分也是按照2的幂次方分成若干子内存块。分配的时候将按需分配部分的子内存块所对应的位图置1,并将其分配给请求,同时将回收部分插入对应的内存块空闲队列。
本发明实施例的另一重要特征在于采用了空闲内存块的延迟合并策略。当一个内存块被释放时,并不立即对其进行合并操作,而是当内存请求不能立即得到满足时才尝试合并。
图6本发明实施例中一种内存管理装置的结构图,包括:
内存分配模块61,用于从大小最合适的空闲队列中为内存请求分配内存块;
碎片回收模块62,用于对内存分配时产生的内部碎片进行回收,并将所述内部碎片分别插到不同的空闲队列;
内存合并模块63,用于当最大的空闲内存块也无法满足所述内存请求时,进行内存块合并操作;
较佳的,该装置进一步可以包括:
内存释放模块64,用于当内存块被释放时,将释放的内存块插入到相应的伙伴忙空闲队列,或将伙伴忙空闲队列中的内存块转移到伙伴闲空闲队列。
其中,内存分配模块61根据请求的内存块的大小,找到合适大小的空闲内存块,将相应数量的页面分配出去,剩余的页面发送给碎片回收模块62。碎片回收模块62将内部碎片进行拆分并插入到相应大小的空闲内存块队列。拆分插入的原则是:从分配后的内存块首部起向后找到尽可能大的2的幂次方个页面,挂入相应的空闲内存块队列,然后依次用同样的方法把剩下的空闲页面都分别挂入相应的队列中。当系统中的最大空闲内存块也无法满足内存请求时,需要内存合并模块63进行内存块合并操作。合并操作是将都为空闲的伙伴块合并为一个两倍大小的新内存块,并挂入相应的空闲队列。在内存块被释放时,内存释放模块64将释放的内存块插入到相应的伙伴忙空闲队列,或将伙伴忙空闲队列中的内存块转移到伙伴闲空闲队列。
该装置通过对内存请求进行按需分配,提供活多变的内存块尺寸,从而达到了减少内部碎片的目的。同时还通过释放的内存块延迟合并,避免了频繁分裂和合并所造成的内存震荡,减少了频繁进行分裂和合并的开销,提高了系统性能。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (14)
1、一种内存的分配方法,在接收到内存请求时,其特征在于,包括以下步骤:
从大小最合适的空闲队列为所述内存请求分配内存块,对内存分配时产生的内部碎片进行回收,将所述内部碎片分别插到不同的空闲队列;当最大的空闲内存块也无法满足所述内存请求时,进行内存块合并操作。
2、根据权利要求1所述的方法,其特征在于,所述从大小最合适的空闲队列分配内存块具体包括:
根据请求的内存块的大小,找到内存块大小为2i个页面大小的空闲队列,i值满足2i-1<m<2i,m为请求的内存块的大小;
判断大小为2i个页面大小的空闲队列中是否有空闲内存块,有则执行下一步;否则将空闲内存块大小的指数标志i递增,直到获得空闲内存块;
分配大小为2i个页面大小的空闲内存块,从该内存块的尾部起分配所述请求的内存页。
3、根据权利要求1或2所述的方法,其特征在于,所述对内部碎片进行回收具体包括:
从分配后的内存块首部起向后找到尽可能大的2的幂次方个页面,挂入相应的空闲队列,然后依次用同样的方法把剩下的空闲页面都分别挂入相应的队列中。
4、根据权利要求1或2所述的方法,其特征在于,所述空闲队列为伙伴忙空闲队列,当合适的伙伴忙空闲队列均为空时,再分配伙伴闲空闲队列。
5、根据权利要求1或2所述的方法,其特征在于,所述内存块合并操作具体包括:
从i=0开始,遍历2i个页面大小的伙伴闲空闲队列;
遍历2i个页面大小的伙伴闲空闲队列中每个节点,从节点中获取内存块,将该内存块和其伙伴块合并,根据合并后的2i+1个页面大小的内存块其伙伴块的分配情况,将其添加到2i+1个页面大小的伙伴忙或伙伴闲空闲队列中,并将该内存块和其伙伴块从2i队列中删除。
6、一种清理内存的方法,在接收到内存请求时,其特征在于,如果空闲内存中最大的内存块也无法满足所述内存请求时,进行内存块合并操作。
7、根据权利要求6所述的方法,其特征在于,所述内存块合并操作具体包括:
从i=0开始,遍历2i个页面大小的伙伴闲空闲队列;
遍历2i个页面大小的伙伴闲空闲队列中每个节点,从节点中获取内存块,将该内存块和其伙伴块合并,根据合并后的2i+1个页面大小的内存块其伙伴块的分配情况,将其添加到2i+1个页面大小的伙伴忙或伙伴闲空闲队列中,并将该内存块和其伙伴块从2i队列中删除。
8、根据权利要求7所述的方法,其特征在于,该方法进一步包括:当i等于MAX-1时,将该空闲队列中的所有内存块及其伙伴添加到2i+1个页面大小的伙伴忙空闲队列中,所述MAX为系统默认的最大内存块的大小。
9、一种释放内存的方法,当内存块被释放时,其特征在于,将释放的内存块插入到相应的伙伴忙空闲队列,或将伙伴忙空闲队列中的内存块转移到伙伴闲空闲队列,并不立即对内存块进行合并操作,仅仅当最大的空闲内存块也无法满足内存请求时,才进行内存块合并操作。
10、根据权利要求9所述的方法,其特征在于,所述将释放的内存块插入到相应的伙伴忙空闲队列具体包括:
根据释放的内存块大小的二进制值,将所述释放的内存块按照2的幂次方分成若干子内存块,对于每个子内存块,如果其伙伴块忙,将释放的内存块添加到相应的2的幂次方个页面大小的伙伴忙空闲队列中。
11、根据权利要求9或10所述的方法,其特征在于,所述将伙伴忙空闲队列中的内存块转移到伙伴闲空闲队列具体包括:
根据释放的内存块大小的二进制值,将所述释放的内存块按照2的幂次方分成若干子内存块,对于每个子内存块,如果其伙伴块闲,将所述伙伴块从伙伴忙空闲队列中移除,并将此两个伙伴块添加到相应的2的幂次方个页面大小的伙伴闲空闲队列中。
12、根据权利要求9或10所述的方法,其特征在于,所述内存块合并操作具体包括:
从i=0开始,遍历2i个页面大小的伙伴闲空闲队列;
遍历2i个页面大小的伙伴闲空闲队列中每个节点,从节点中获取内存块,将该内存块和其伙伴块合并,根据合并后的2i+1个页面大小的内存块其伙伴块的分配情况,将其添加到2i+1个页面大小的伙伴忙或伙伴闲空闲队列中,并将该内存块和其伙伴块从2i队列中删除。
13、一种内存管理的装置,其特征在于,包括:
内存分配模块,用于从大小最合适的空闲队列中为内存请求分配内存块;
碎片回收模块,用于对内存分配时产生的内部碎片进行回收,并将所述内部碎片分别插到不同的空闲队列;
内存合并模块,用于当最大的空闲内存块也无法满足所述内存请求时,进行内存块合并操作。
14、根据权利要求13所述的装置,其特征在于,该装置进一步包括:
内存释放模块,用于当内存块被释放时,将释放的内存块插入到相应的伙伴忙空闲队列,或将伙伴忙空闲队列中的内存块转移到伙伴闲空闲队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100482155A CN101320351A (zh) | 2008-06-27 | 2008-06-27 | 内存的分配、清理和释放方法及内存管理的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100482155A CN101320351A (zh) | 2008-06-27 | 2008-06-27 | 内存的分配、清理和释放方法及内存管理的装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101320351A true CN101320351A (zh) | 2008-12-10 |
Family
ID=40180410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100482155A Pending CN101320351A (zh) | 2008-06-27 | 2008-06-27 | 内存的分配、清理和释放方法及内存管理的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101320351A (zh) |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101847127A (zh) * | 2010-06-18 | 2010-09-29 | 福建星网锐捷网络有限公司 | 一种内存管理方法及装置 |
CN101908022A (zh) * | 2010-08-13 | 2010-12-08 | 优视科技有限公司 | 一种用于移动通讯设备终端的内存管理方法及其装置 |
CN101984417A (zh) * | 2010-11-01 | 2011-03-09 | 中兴通讯股份有限公司 | 内存管理方法及装置 |
CN102073464A (zh) * | 2011-01-14 | 2011-05-25 | 南开大学 | 一种按需分配增量卷的创建方法 |
CN102279808A (zh) * | 2011-09-06 | 2011-12-14 | 晨星软件研发(深圳)有限公司 | 一种嵌入式设备图像内存管理方法及装置 |
CN102289409A (zh) * | 2010-06-03 | 2011-12-21 | 微软公司 | 分层可伸缩的存储器分配器 |
CN102521139A (zh) * | 2011-11-28 | 2012-06-27 | 华为技术有限公司 | 一种内存管理的方法和装置 |
CN103281358A (zh) * | 2013-05-07 | 2013-09-04 | 汉柏科技有限公司 | 一种基于一致性hash算法存储资源的方法 |
CN103399821A (zh) * | 2013-06-28 | 2013-11-20 | 贵阳朗玛信息技术股份有限公司 | jitterbuf内存处理方法及装置 |
CN103559137A (zh) * | 2013-07-12 | 2014-02-05 | 三星电子株式会社 | 一种内存分配方法及装置 |
CN103914265A (zh) * | 2014-04-09 | 2014-07-09 | 江苏物联网研究发展中心 | 集群细粒度内存管理方法 |
CN104199781A (zh) * | 2014-08-14 | 2014-12-10 | 深圳百科信息技术有限公司 | 一种基于共享内存的内存碎片分配方法和装置 |
US9218135B2 (en) | 2010-06-16 | 2015-12-22 | Microsoft Technology Licensing, Llc | Hierarchical allocation for file system storage device |
CN105589809A (zh) * | 2014-10-24 | 2016-05-18 | 中国科学院深圳先进技术研究院 | 一种内存管理方法及装置 |
CN106708746A (zh) * | 2016-12-30 | 2017-05-24 | 郑州云海信息技术有限公司 | 一种在线内存碎片整理方法和装置 |
CN106844224A (zh) * | 2016-12-21 | 2017-06-13 | 华中科技大学 | 一种基于nvram的内存分配链表及内存分配方法 |
CN106844046A (zh) * | 2016-12-31 | 2017-06-13 | 昊宏广泰(北京)科技有限公司 | 宽带载波内存管理算法 |
CN107844372A (zh) * | 2017-10-17 | 2018-03-27 | 广东睿江云计算股份有限公司 | 一种内存分配的方法、系统 |
CN108536609A (zh) * | 2017-03-02 | 2018-09-14 | 迈普通信技术股份有限公司 | 内存碎片管理系统及方法 |
CN108920276A (zh) * | 2018-06-27 | 2018-11-30 | 郑州云海信息技术有限公司 | Linux系统内存分配方法、系统及设备和存储介质 |
CN108959120A (zh) * | 2018-07-23 | 2018-12-07 | 上海梁维贸易有限公司 | 一种安全快速的计算机内存管理方法和装置 |
WO2019015395A1 (zh) * | 2017-07-18 | 2019-01-24 | 杭州海康威视数字技术股份有限公司 | 内存管理方法、装置、电子设备及存储介质 |
CN110837416A (zh) * | 2019-09-24 | 2020-02-25 | 深圳市火乐科技发展有限公司 | 内存管理方法、智能投影仪及相关产品 |
CN113688062A (zh) * | 2020-05-18 | 2021-11-23 | 北京市商汤科技开发有限公司 | 用于存储数据的方法和相关产品 |
CN115858184A (zh) * | 2023-03-03 | 2023-03-28 | 浪潮电子信息产业股份有限公司 | 一种rdma内存管理方法、装置、设备及介质 |
CN117194055A (zh) * | 2023-11-06 | 2023-12-08 | 西安芯云半导体技术有限公司 | Gpu显存申请及释放的方法、装置及存储介质 |
-
2008
- 2008-06-27 CN CNA2008100482155A patent/CN101320351A/zh active Pending
Cited By (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102289409A (zh) * | 2010-06-03 | 2011-12-21 | 微软公司 | 分层可伸缩的存储器分配器 |
CN102289409B (zh) * | 2010-06-03 | 2015-11-25 | 微软技术许可有限责任公司 | 分层可伸缩的存储器分配器 |
US9575678B2 (en) | 2010-06-16 | 2017-02-21 | Microsoft Technology Licensing, Llc | Hierarchical allocation for file system storage device |
US9218135B2 (en) | 2010-06-16 | 2015-12-22 | Microsoft Technology Licensing, Llc | Hierarchical allocation for file system storage device |
CN101847127B (zh) * | 2010-06-18 | 2012-01-25 | 福建星网锐捷网络有限公司 | 一种内存管理方法及装置 |
CN101847127A (zh) * | 2010-06-18 | 2010-09-29 | 福建星网锐捷网络有限公司 | 一种内存管理方法及装置 |
CN101908022A (zh) * | 2010-08-13 | 2010-12-08 | 优视科技有限公司 | 一种用于移动通讯设备终端的内存管理方法及其装置 |
CN101984417A (zh) * | 2010-11-01 | 2011-03-09 | 中兴通讯股份有限公司 | 内存管理方法及装置 |
CN102073464A (zh) * | 2011-01-14 | 2011-05-25 | 南开大学 | 一种按需分配增量卷的创建方法 |
TWI451253B (zh) * | 2011-09-06 | 2014-09-01 | Mstar Semiconductor Inc | 嵌入式設備圖像記憶體管理方法及裝置 |
US9176857B2 (en) | 2011-09-06 | 2015-11-03 | Mstar Semiconductor, Inc. | Method and apparatus for managing video memory in embedded device |
CN102279808A (zh) * | 2011-09-06 | 2011-12-14 | 晨星软件研发(深圳)有限公司 | 一种嵌入式设备图像内存管理方法及装置 |
CN102521139A (zh) * | 2011-11-28 | 2012-06-27 | 华为技术有限公司 | 一种内存管理的方法和装置 |
CN103281358A (zh) * | 2013-05-07 | 2013-09-04 | 汉柏科技有限公司 | 一种基于一致性hash算法存储资源的方法 |
CN103281358B (zh) * | 2013-05-07 | 2016-04-20 | 汉柏科技有限公司 | 一种基于一致性hash算法存储资源的方法 |
CN103399821A (zh) * | 2013-06-28 | 2013-11-20 | 贵阳朗玛信息技术股份有限公司 | jitterbuf内存处理方法及装置 |
CN103559137A (zh) * | 2013-07-12 | 2014-02-05 | 三星电子株式会社 | 一种内存分配方法及装置 |
CN103559137B (zh) * | 2013-07-12 | 2016-08-10 | 三星电子株式会社 | 一种内存分配方法及装置 |
CN103914265B (zh) * | 2014-04-09 | 2016-11-23 | 江苏物联网研究发展中心 | 集群细粒度内存管理方法 |
CN103914265A (zh) * | 2014-04-09 | 2014-07-09 | 江苏物联网研究发展中心 | 集群细粒度内存管理方法 |
CN104199781A (zh) * | 2014-08-14 | 2014-12-10 | 深圳百科信息技术有限公司 | 一种基于共享内存的内存碎片分配方法和装置 |
CN105589809A (zh) * | 2014-10-24 | 2016-05-18 | 中国科学院深圳先进技术研究院 | 一种内存管理方法及装置 |
CN106844224A (zh) * | 2016-12-21 | 2017-06-13 | 华中科技大学 | 一种基于nvram的内存分配链表及内存分配方法 |
CN106844224B (zh) * | 2016-12-21 | 2019-06-07 | 华中科技大学 | 一种基于nvram的内存分配链表及内存分配方法 |
CN106708746A (zh) * | 2016-12-30 | 2017-05-24 | 郑州云海信息技术有限公司 | 一种在线内存碎片整理方法和装置 |
CN106708746B (zh) * | 2016-12-30 | 2019-12-31 | 苏州浪潮智能科技有限公司 | 一种在线内存碎片整理方法和装置 |
CN106844046A (zh) * | 2016-12-31 | 2017-06-13 | 昊宏广泰(北京)科技有限公司 | 宽带载波内存管理算法 |
CN106844046B (zh) * | 2016-12-31 | 2021-06-11 | 北京市腾河智慧能源科技有限公司 | 宽带载波内存管理方法 |
CN108536609A (zh) * | 2017-03-02 | 2018-09-14 | 迈普通信技术股份有限公司 | 内存碎片管理系统及方法 |
WO2019015395A1 (zh) * | 2017-07-18 | 2019-01-24 | 杭州海康威视数字技术股份有限公司 | 内存管理方法、装置、电子设备及存储介质 |
US11604726B2 (en) | 2017-07-18 | 2023-03-14 | Hangzhou Hikvision Digital Technology Co., Ltd | Memory management method, electronic device and storage medium |
CN107844372A (zh) * | 2017-10-17 | 2018-03-27 | 广东睿江云计算股份有限公司 | 一种内存分配的方法、系统 |
CN107844372B (zh) * | 2017-10-17 | 2021-09-07 | 广东睿江云计算股份有限公司 | 一种内存分配的方法、系统 |
CN108920276A (zh) * | 2018-06-27 | 2018-11-30 | 郑州云海信息技术有限公司 | Linux系统内存分配方法、系统及设备和存储介质 |
CN108959120A (zh) * | 2018-07-23 | 2018-12-07 | 上海梁维贸易有限公司 | 一种安全快速的计算机内存管理方法和装置 |
CN110837416A (zh) * | 2019-09-24 | 2020-02-25 | 深圳市火乐科技发展有限公司 | 内存管理方法、智能投影仪及相关产品 |
CN113688062A (zh) * | 2020-05-18 | 2021-11-23 | 北京市商汤科技开发有限公司 | 用于存储数据的方法和相关产品 |
CN115858184A (zh) * | 2023-03-03 | 2023-03-28 | 浪潮电子信息产业股份有限公司 | 一种rdma内存管理方法、装置、设备及介质 |
CN115858184B (zh) * | 2023-03-03 | 2023-05-02 | 浪潮电子信息产业股份有限公司 | 一种rdma内存管理方法、装置、设备及介质 |
CN117194055A (zh) * | 2023-11-06 | 2023-12-08 | 西安芯云半导体技术有限公司 | Gpu显存申请及释放的方法、装置及存储介质 |
CN117194055B (zh) * | 2023-11-06 | 2024-03-08 | 西安芯云半导体技术有限公司 | Gpu显存申请及释放的方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101320351A (zh) | 内存的分配、清理和释放方法及内存管理的装置 | |
CN108038002B (zh) | 一种嵌入式软件内存管理方法 | |
CN108132842B (zh) | 一种嵌入式软件内存管理系统 | |
CN109154917A (zh) | 存储系统和固态硬盘 | |
CN1996258A (zh) | 一种动态内存池的实现方法 | |
CN102446139B (zh) | 一种数据存储方法及装置 | |
CN104899156A (zh) | 一种面向大规模社交网络的图数据存储及查询方法 | |
CN106547612A (zh) | 一种多任务处理方法及装置 | |
CN106681829A (zh) | 一种内存管理方法及系统 | |
CN107209719A (zh) | 一种阵列控制器、固态硬盘和控制固态硬盘写数据的方法 | |
CN107844372B (zh) | 一种内存分配的方法、系统 | |
US20060149915A1 (en) | Memory management technique | |
CN104731799A (zh) | 内存数据库管理装置 | |
KR101835604B1 (ko) | 메모리를 위한 스케줄러 | |
CN108304259B (zh) | 内存管理方法及系统 | |
CN102999434A (zh) | 一种内存管理方法及装置 | |
CN108536609B (zh) | 内存碎片管理系统及方法 | |
CN102799390A (zh) | 能耗感知的协同式自适应预取方法和中间件 | |
CN106598736A (zh) | 一种内存池的内存块调用方法和释放方法及服务器 | |
US20060236065A1 (en) | Method and system for variable dynamic memory management | |
CN102375780A (zh) | 一种分布式文件系统中元数据缓存管理的方法 | |
CN107179998A (zh) | 一种配置外设内存缓冲区的方法及装置 | |
US8429371B2 (en) | System and method for robust and efficient free chain management | |
CN101324893B (zh) | 一种资源管理系统和方法 | |
CN112506813B (zh) | 一种内存管理方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20081210 |