CN101093455A - 一种嵌入式操作系统的内存池分配方法 - Google Patents
一种嵌入式操作系统的内存池分配方法 Download PDFInfo
- Publication number
- CN101093455A CN101093455A CN 200610089365 CN200610089365A CN101093455A CN 101093455 A CN101093455 A CN 101093455A CN 200610089365 CN200610089365 CN 200610089365 CN 200610089365 A CN200610089365 A CN 200610089365A CN 101093455 A CN101093455 A CN 101093455A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory block
- internal memory
- block
- application
- 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.)
- Granted
Links
Images
Landscapes
- Memory System (AREA)
Abstract
本发明公开了一种嵌入式操作系统的内存池分配方法,包括:步骤一,根据用户可能使用到的各种内存块的大小和数量以及对应的内存头的大小,在内存资源中分配一个由所述内存块和内存头构成的内存池;步骤二,对所述内存池进行初始化,确定各种大小的内存块的起始地址;步骤三,对于内存申请,如果满足该内存申请的最小的单一内存块存在超过阀值的浪费,则通过组合不同大小的多个内存块来满足该内存申请。本发明可以很大程度的减小和缓解通用内存池管理中存在的内存资源浪费的问题,同时,也保持了通用内存池管理的高效性和可靠性。
Description
技术领域
本发明涉及嵌入式实时操作系统领域,特别是涉及在嵌入式系统中,使用事先分配的内存池对应用申请的大小不确定的内存进行管理的实现方法。
背景技术
随着嵌入式实时系统在各个领域的广泛应用,嵌入式软件的开发也受到越来越多的瞩目。在满足系统实时性要求的前提下,如何提高内存分配的快速性、可靠性、高效性,是嵌入式软件系统需要重点研究的一个课题。内存分配的快速性从嵌入式系统对实时性的要求出发,要求内存在分配过程中尽可能的快,因此在嵌入式系统中,不可能采用通用操作系统中复杂而繁琐的内存分配策略,一般都采用简单、快速的内存分配方案;内存分配的可靠性则要求内存分配的请求必须得到满足,如果分配失败的话可能会带来灾难性的后果;而内存分配的高效性,则要求内存分配尽可能地少浪费。
目前,在嵌入式软件开发中,特别是在诸如电信、信息家电这些行业,由于对内存的申请和释放比较频繁,一般采用的内存分配方法是使用内存分块管理的内存池方式。在开源的嵌入式实时操作系统μCOS-II中也采用了该种内存分配方式。它的技术方案如图1所示,其中:a表示各个内存头信息,m、n、f均为任意整数。相同大小的内存块由实箭头构成一个链表。
为了避免由于内存频繁申请和释放而导致内存碎片,通用的内存池管理方式首先配置各种大小的内存块的数量,比如21字节大小的内存块m个,22字节大小的内存块n个,以此类推,2n字节大小的内存块f个(其中m、n、f均为任意整数),一般为了保证内存分配的可靠性,各种内存块大小保持一个较大的上限值,同时在内存头中保存每个内存块的信息。然后在空闲内存中分配一个大内存,专门用于满足用户的内存申请需求,该内存池大小为各种大小的内存块大小的总和,即:(21×m+22×n+…+2n×f+所有内存头大小)的值。
在进行内存申请时,根据申请内存的大小在相应的内存池中寻找满足大小需要的内存块,如果用户申请的内存是在2q-1~2q这样一个区间中(q为一个确定的整数,满足2q-1<申请内存大小<=2q),则取一个空闲的2q大小的内存块分配给应用;内存释放是根据内存块的的指针找到相应的头,再将其标记为自由内存并归还给相应的缓冲池的过程。
在该内存池分配方法中,不可能把内存块大小差距配置得很小、很均匀,比如内存块大小1,2,4,6...2n,因为内存块大小差距太小,需要保存的内存头指针就多,导致内存的申请和释放的查找耗时剧增,直接影响内存分配的快速性;同时,诸如内存头大小这样的额外的开销也大大增加。所以,一般各内存块是采取诸如2n这样的分配方式的。
这种通用的内存池管理方法针对频繁申请和释放的内存,可以高效,可靠的满足应用需要,同时也可以较好的避免内存碎片的问题。因此在目前的嵌入式软件开发中,有很大范围的应用。
但是,这种通用的内存池管理方式对内存的使用有时是有比较大的浪费的。因为,对于用户申请的内存UB,其对应的内存块是在2n-1<=UB<2n这样一个区间中,但是经过内存池选择出的内存块大小则是2n(必须要不小于2n,否则会导致内存申请失败),这样就存在(2n-UB)大小的空间浪费,特别是UB为2n-1+1的时候尤为明显,而且n值愈大,内存耗费愈大;如果存在一定数量的用户申请的内存,其大小落在靠近2n-1且大于2n-1附近的话,这种浪费就可能对嵌入式产品产生致命影响了,因为一方面,嵌入式系统对成本的要求使得内存在其中只是一种很有限的资源;而另一方面,即使不考虑成本的因素,系统有限的空间和有限的板面积决定了可配置的内存容量是很有限的。
如何扬长避短,既保持通用内存池管理的高效性等优点,又避免其可能存在的内存浪费是更好利用内存池管理方式的关键。
发明内容
本发明所要解决的技术问题是提供一种嵌入式操作系统的内存池分配方法,解决现有技术的内存浪费的问题。
为达到上述目的,本发明提供了一种嵌入式操作系统的内存池分配方法,其特点在于,包括如下步骤:
步骤一,根据用户可能使用到的各种内存块的大小和数量以及对应的内存头的大小,在内存资源中分配一个由所述内存块和内存头构成的内存池;
步骤二,对所述内存池进行初始化,确定各种大小的内存块的起始地址;
步骤三,对于内存申请,如果满足该内存申请的最小的单一内存块存在超过阀值的浪费,则通过组合不同大小的多个内存块来满足该内存申请。
上述的方法,其特点在于,所述步骤二中,确定所述起始地址采用如下规则:一个最大的内存块的结束地址是一个次大的内存块的起始地址,依次类推,最后是一个最小的内存块的结束地址,从而内存块按从大到小的次序构成一个循环;一个循环结束,再重复下一个循环的配置,同时,在内存头中记录各内存块的起止地址和是否空闲的信息。
上述的方法,其特点在于,在所述步骤三中,所述存在超过阀值的浪费为:所述单一内存块与紧跟所述单一内存块的次大内存块的平均值大于所述内存申请。
上述的方法,其特点在于,在所述步骤三中,通过组合紧跟在所述单一内存块之后的两个内存块来分配给所述内存申请。
上述的方法,其特点在于,所述步骤三进一步包括:
步骤A,判断所述内存申请是否小于所述单一内存块与所述次大内存块的平均值,是则执行步骤B,否则执行步骤D;
步骤B,判断紧跟在所述单一内存块之后的两个内存块之和是否大于所述内存申请,是则执行步骤C,否则执行步骤D;
步骤C,把所述两个内存块分配给所述内存申请,内存分配结束;
步骤D,直接把所述单一内存块分配给所述内存申请,内存分配结束。
上述的方法,其特点在于,还包括步骤四,在所述内存申请的应用结束后,对所述内存申请的内存块进行释放。
上述的方法,其特点在于,在所述步骤四中,如果被释放的内存为多个内存块的组合,则拆开所述组合的所述多个内存块,进行各内存块的单独释放。
上述的方法,其特点在于,还包括:所述内存块按照内存地址的递增构成一个单向链表一,所有相同大小的未被分配的空闲内存块又构成一个单向链表二,并在内存块的内存头中的相应位置标明该内存块在所述链表一和链表二中的顺序号。
上述的方法,其特点在于,还包括:在所述内存池的管理结构中记录内存块大小、数量以及有无后继的内存池的索引,在内存头中记录对应内存块的起始地址、占用标志以及有无比其大小还小的后继内存块标志。
本发明的技术效果在于:本发明提供的嵌入式软件的内存池分配的实现方法,不仅能够充分利用目前通用内存池高效、可靠、不产生内存碎片等优点,还可以有效的降低、缓解、甚至解决通用内存池可能存在的内存浪费,使其更好的满足嵌入式软件开发对内存分配的要求。本发明可以很大程度的减小和缓解通用内存池管理中存在的内存资源浪费的问题,同时,也保持了通用内存池管理的高效性和可靠性。
附图说明
图1为通用的内存池管理方案示意图;
图2为本发明中的一个内存池中内存头和内存块的关系示意图;
图3为本发明中的内存池初始化示意图;
图4为本发明的整个内存池管理管理方法的实现流程示意图;
图5为本发明中的内存浪费可以接受时的内存分配示意图;
图6为本发明中的内存浪费严重时的内存分配示意图;
图7为本发明中的内存块释放示意图。
具体实施方式
下面结合附图对本发明进行详细描述。
本发明提供了一种新的嵌入式软件的内存池管理的实现方法,这种方法不仅能够充分利用目前通用内存池高效、可靠、不产生内存碎片等优点,还可以有效的降低、缓解、甚至解决通用内存池可能存在的内存浪费,使其更好的满足嵌入式软件开发对内存分配的要求。
本发明的嵌入式操作系统的内存池管理方法,包括如下步骤:
步骤1:对用户可能使用的各种内存块大小和数量进行配置,然后根据用户使用的内存块大小以及内存头等附加信息大小的总和在嵌入式软件的内存资源中分配一个内存池,专供用户申请(释放)内存用;
步骤2:对步骤1的内存池进行初始化,即确定各种大小的内存块的起始地址。分配各种大小的内存起始地址的规则是,一个最大的内存块的结束地址是一个次大的内存块的起始地址,依次类推,最后是一个最小的内存块的结束地址;同理,一个循环结束,再重复如此的配置。同时,在内存头中记录各内存块的起止地址、是否空闲等情况。
步骤3:对内存申请,比较用户申请的内存大小和满足条件的最小的内存块大小,如果内存浪费比较严重,则使用比满足条件的内存块小的两个地址连续且大小递减的内存块来分配给用户使用,同时设置内存块使用标志;只有在比满足条件的最小内存块小的两个地址连续且大小递减的内存块无法提供用户申请的内存时,才使用满足条件的内存块来提供给用户使用。
步骤4:对内存释放,放置内存块到相应的空闲内存块后,同时设置内存块的使用标志。
步骤5:在该嵌入式软件模块或系统中止运行时,释放步骤1分配的内存池。
其中,步骤2中各种大小的内存块的数目是允许不相同的,因而可能出现这种情况,比如最大的内存块结束地址是第三大的内存块的起始地址,但对用户的内存分配过程不会产生影响。
步骤3中,对内存浪费是否严重的判断准则相对比较灵活,但是考虑到便捷性和使用的高效性,使用连续大小的两个内存块(此时用户申请的内存块大小大于其中小内存块而小于其中大内存块)的中间点来进行判断,用户申请的内存块落在小内存块和该中间点区间时,认定内存浪费严重;而落在该中间点和大内存块区间时,认定为内存浪费可以接收。
步骤4中,如果是连续的两个内存块的释放,对每个内存块单独释放,即把每个内存块放入其相应的空闲内存块后。
以下为一个本发明实际应用的具体实例,假设配置的内存块情况是:21字节大小的内存块n个,22字节大小的内存块n+1个,依次类推,2n字节大小的内存块n+n个(n为任意整数)。
要完基于如上配置的嵌入式内存池管理的目的,本实例需要如下的步骤:
步骤1):计算所需要的内存池大小。内存池大小由三部分组成,一是内存块总大小,即(21×n+22×(n+1)+…+2n×(n+n)的和;二是内存头大小总和,内存头需要保存返回给用户的内存地址、占用标志、所属内存池、其后内存块占用标志、内存块在在相同大小的内存块组成的内存池中的索引顺序号(seq1)、内存块在按地址顺序递变的内存池中的索引顺序号(seq2)以及一些调试信息。三是各种大小的内存池的管理结构的大小之和(一种大小的内存池有一个管理结构),该内存池的管理结构需要记录诸如该内存池内存块的大小、数量、单独的内存块在内存池的第一个空闲的索引、单独的内存块在内存池的最近一个释放块的索引、连续的内存块在内存池的第一个空闲的索引以及连续的内存块在内存池的最近一个释放块的索引等信息。然后根据所需要的内存池大小进行内存分配。内存池中内存头和内存块的具体关系可参考图2。
步骤2):进行内存池初始化。分配内存头、内存池管理结构所占有的内存。依次连续分配一个2n,2n-1,…,21字节大小的内存块,同理在第一个循环分配完后,进行下一个循环分配,直至所有的内存块起始地址分配结束,这样按照内存地址的递增构成了一个单向链表一,同时在内存池管理结构中记录该池中内存块大小、数量,以及有无后继的内存池的索引,在内存头中记录该内存块的起始地址、占用标志,以及有无比其大小还小的后继内存块标志等。所有相同大小的未被分配的空闲内存块又构成一个单向链表二,以便于分配时快速查找、索引。两个单向链表要使用内存头中的seq1和seq2来标明在对方链表中的顺序号,以便于链表对特定节点的增加和删除,避免对整个链表的遍历,图3为本发明中的内存池初始化示意图,如图3所示,其中:虚箭头表示相同大小的内存块构成一个单向链表;实箭头表示按照内存地址的递增构成的一个单向链表。
步骤3):对于内存申请,假如用户申请Ubsize字节大小的内存,存在满足2n-m-1<Ubsize<=2n-m条件内存块(m为小于n的整数)。如果Ubsize大小在2n-m-1~(2n-m-1+(2n-m-2n-m-1)/2)区间中,则认为存在严重的内存浪费(此时,浪费内存大于(2n-m-2n-m-1)/2),如果在(2n-m-1+(2n-m-2n-m-1)/2)~2n-m区间,则认为内存浪费是可以接受的(此时,浪费内存小于(2n-m-2n-m-1)/2)。
步骤3-1:如果对内存申请而分配的内存块被认为内存浪费是可以接受的。通过单独的内存块索引头寻找空闲内存块,进行内存分配,同时设置占有和无后继内存块标志;然后根据其内存头中的seq2索引号对单向链表1中的seq2映射的节点进行删除。如图4所示,为本发明的整个内存池管理管理方法的实现流程示意图,具体包括如下步骤:
步骤401,根据用户对内存的使用需求分配一个内存池;
步骤402,按规则确定各种大小的内存块在内存池的起始地址;
步骤403,建立内存块按地址递增的链表1和内存块按同等大小依次建立的内存池链表2;
步骤404,用户调用接口类型,如为内存申请则执行步骤405,如为内存释放则执行步骤406;
步骤405,进行内存申请;
步骤406,进行内存释放。
步骤3-2:如果对内存申请而分配的内存块被认为内存浪费是不可以接受的。通过连续的内存块索引头寻找空闲内存块,并查找其地址后的地址连续的两个内存块(UB1和UB2)且UB1大于UB2,如果(UB1+UB2)大小满足用户需要,对其进行内存分配,同时设置占有和无后继内存块标志;然后分别根据其内存头中的seq1索引号对单向链表2中的seq1映射的节点进行删除。如果整个单向链表1中不存在这样的地址连续两个内存块,执行步骤3-1。图5为本发明中的内存浪费可以接受时的内存分配示意图,如图5所示,具体包括:
步骤501,内存池中有满足申请的内存块;
步骤502,判断内存浪费是否超过阀值,是则转到内存严重浪费的分配流程60,否则执行步骤503;
步骤503,把该内存块从内存池链表中脱链;
步骤504,把该满足申请的内存块从按地址构建的链表中脱链。
图6为本发明中的内存浪费严重时的内存分配示意图,如图所是包括如下步骤:
步骤60,承接图5中的步骤502的判断条件,即内存浪费超过阀值;
步骤601,判断在该满足申请的内存块地址后方是否存两个容量之和满足该申请需求的内存块,是则执行步骤602,否则执行步骤604;
步骤602,把所述两个内存块从按地址构建的链表中脱链;
步骤603,把所述两个内存块从内存池链表中脱链,并把所述两个内存块分配给申请,结束流程;
步骤604,把该满足申请的单一内存块分配给申请,结束流程。
(6)步骤4-1:对于内存释放,如果是步骤3-1中申请的内存块的释放,将其加入单向链表2中的末尾;然后根据其内存头中的seq2索引号对单向链表1中的seq2映射的节点(需要查看内存地址大小是否满足递增条件)进行链表增加,同时设置占有和无后继内存块标志。图7为本发明中的内存块释放示意图,如图,内存块的释放具体包括如下步骤:
步骤701,判断释放的内存块的大小和地址是否为两个内存块的组合,是则执行步骤702,某则执行步骤704;
步骤702,分别把这两块内存块放入按地址构建的链表中;
步骤703,分别把这两块内存块放入内存池链表,结束释放;
步骤704,把该单一内存块放入内存池的链表中;
步骤705,把该单一内存块放入按地址构建的链表中,结束释放。
步骤:4-2:如果是步骤3-2中申请的内存块的释放,对每一个内存块单独执行步骤3-1进行释放。
步骤5):如果系统停止运行,对步骤1)中申请的内存池进行释放。
可见,上述实例中一般可以减少(2n-m-2n-m-1)/2)的内存浪费(最多可以减少2n-m-2n-m-1-1),有效降低、缓解了通用内存池管理中存在的浪费情况;同时,采用了在内存头中建立相应索引顺序号的方法,避免了对内存块的遍历,保证了内存分配和释放的高效性和快速性;由于整个内存池的初始化、链表的建立一般都是在系统初始化阶段进行,不会对程序运行产生附加的额外影响,保证了该内存池管理方法的运行平稳性。所以该内存池管理方法可以为用户有效减少内存资源成本,在嵌入式软件领域有很大的推广价值和实用价值。
本领域的技术人员可根据发明内容部分的技术方案构成多个实施例,比如,利用紧跟在满足内存申请的最小单一内存块之后的三个、四个或五个内存块分配给所述内存申请,或者利用其他规则任选比所述单一内存块小的多个内存块,虽然其实现起来相对于以上实施例较为复杂并且效果较差,但仍在本发明的范围之内,本领域的技术人员只需对以上实施例作出较小的变通即可实现。
因此以上所述仅为本发明的较佳实施例,并非用来限定本发明的实施范围;凡是依本发明所作的等效变化与修改,都被本发明的专利范围所涵盖。
Claims (9)
1、一种嵌入式操作系统的内存池分配方法,其特征在于,包括如下步骤:
步骤一,根据用户可能使用到的各种内存块的大小和数量以及对应的内存头的大小,在内存资源中分配一个由所述内存块和内存头构成的内存池;
步骤二,对所述内存池进行初始化,确定各种大小的内存块的起始地址;
步骤三,对于内存申请,如果满足该内存申请的最小的单一内存块存在超过阀值的浪费,则通过组合不同大小的多个内存块来满足该内存申请。
2、根据权利要求1所述的方法,其特征在于,所述步骤二中,确定所述起始地址采用如下规则:一个最大的内存块的结束地址是一个次大的内存块的起始地址,依次类推,最后是一个最小的内存块的结束地址,从而内存块按从大到小的次序构成一个循环;一个循环结束,再重复下一个循环的配置,同时,在内存头中记录各内存块的起止地址和是否空闲的信息。
3、根据权利要求2所述的方法,其特征在于,在所述步骤三中,所述存在超过阀值的浪费为:所述单一内存块与紧跟所述单一内存块的次大内存块的平均值大于所述内存申请。
4、根据权利要求3所述的方法,其特征在于,在所述步骤三中,通过组合紧跟在所述单一内存块之后的两个内存块来分配给所述内存申请。
5、根据权利要求4所述的方法,其特征在于,所述步骤三进一步包括:
步骤A,判断所述内存申请是否小于所述单一内存块与所述次大内存块的平均值,是则执行步骤B,否则执行步骤D;
步骤B,判断紧跟在所述单一内存块之后的两个内存块之和是否大于所述内存申请,是则执行步骤C,否则执行步骤D;
步骤C,把所述两个内存块分配给所述内存申请,内存分配结束;
步骤D,直接把所述单一内存块分配给所述内存申请,内存分配结束。
6、根据权利要求1所述的方法,其特征在于,还包括步骤四,在所述内存申请的应用结束后,对所述内存申请的内存块进行释放。
7、根据权利要求6所述的方法,其特征在于,在所述步骤四中,如果被释放的内存为多个内存块的组合,则拆开所述组合的所述多个内存块,进行各内存块的单独释放。
8、根据权利要求2所述的方法,其特征在于,还包括:所述内存块按照内存地址的递增构成一个单向链表一,所有相同大小的未被分配的空闲内存块又构成一个单向链表二,并在内存块的内存头中的相应位置标明该内存块在所述链表一和链表二中的顺序号。
9、根据权利要求8所述的方法,其特征在于,还包括:在所述内存池的管理结构中记录内存块大小、数量以及有无后继的内存池的索引,在内存头中记录对应内存块的起始地址、占用标志以及有无比其大小还小的后继内存块标志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100893651A CN100517240C (zh) | 2006-06-21 | 2006-06-21 | 一种嵌入式操作系统的内存池分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100893651A CN100517240C (zh) | 2006-06-21 | 2006-06-21 | 一种嵌入式操作系统的内存池分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101093455A true CN101093455A (zh) | 2007-12-26 |
CN100517240C CN100517240C (zh) | 2009-07-22 |
Family
ID=38991730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100893651A Active CN100517240C (zh) | 2006-06-21 | 2006-06-21 | 一种嵌入式操作系统的内存池分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100517240C (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010142196A1 (zh) * | 2009-06-12 | 2010-12-16 | 中兴通讯股份有限公司 | 一种保存数据的方法及装置 |
CN101976224A (zh) * | 2010-10-13 | 2011-02-16 | 清华大学 | 一种嵌入式系统的内存管理方法 |
CN102063378A (zh) * | 2010-12-17 | 2011-05-18 | 天津曙光计算机产业有限公司 | 一种在内核中高速分配连续内存的方法 |
CN102279804A (zh) * | 2011-08-16 | 2011-12-14 | 天津市天祥世联网络科技有限公司 | 视频监控平台系统的内存池结构及实现方法 |
CN102831068A (zh) * | 2011-06-13 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 一种内存操作记录的处理方法及装置 |
US8656133B2 (en) | 2011-05-05 | 2014-02-18 | International Business Machines Corporation | Managing storage extents and the obtaining of storage blocks within the extents |
US8683169B2 (en) | 2011-05-05 | 2014-03-25 | International Business Machines Corporation | Selecting an auxiliary storage medium for writing data of real storage pages |
US8868876B2 (en) | 2011-12-28 | 2014-10-21 | International Business Machines Corporation | Dedicated large page memory pools |
CN104199781A (zh) * | 2014-08-14 | 2014-12-10 | 深圳百科信息技术有限公司 | 一种基于共享内存的内存碎片分配方法和装置 |
CN104281528A (zh) * | 2013-07-09 | 2015-01-14 | 浙江大华技术股份有限公司 | 一种数据存储方法及装置 |
CN105785824A (zh) * | 2016-04-12 | 2016-07-20 | 上海斐讯数据通信技术有限公司 | 一种向Linux内核传递内存大小参数的方法及系统 |
CN106844046A (zh) * | 2016-12-31 | 2017-06-13 | 昊宏广泰(北京)科技有限公司 | 宽带载波内存管理算法 |
CN107977265A (zh) * | 2016-10-25 | 2018-05-01 | 中兴通讯股份有限公司 | 内存初始化方法、装置和内存分配方法、装置 |
CN109117273A (zh) * | 2018-08-17 | 2019-01-01 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置及设备 |
CN110780823A (zh) * | 2019-11-06 | 2020-02-11 | 广东三维家信息科技有限公司 | 小对象内存管理方法、装置、电子设备和计算机可读介质 |
CN111078587A (zh) * | 2019-12-10 | 2020-04-28 | Oppo(重庆)智能科技有限公司 | 内存分配方法、装置、存储介质及电子设备 |
CN112685188A (zh) * | 2021-03-22 | 2021-04-20 | 四川九洲电器集团有限责任公司 | 一种基于全局字节数组的嵌入式内存管理方法及装置 |
-
2006
- 2006-06-21 CN CNB2006100893651A patent/CN100517240C/zh active Active
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010142196A1 (zh) * | 2009-06-12 | 2010-12-16 | 中兴通讯股份有限公司 | 一种保存数据的方法及装置 |
CN101976224A (zh) * | 2010-10-13 | 2011-02-16 | 清华大学 | 一种嵌入式系统的内存管理方法 |
CN101976224B (zh) * | 2010-10-13 | 2012-05-16 | 清华大学 | 一种嵌入式系统的内存管理方法 |
CN102063378A (zh) * | 2010-12-17 | 2011-05-18 | 天津曙光计算机产业有限公司 | 一种在内核中高速分配连续内存的方法 |
CN102063378B (zh) * | 2010-12-17 | 2013-02-13 | 曙光信息产业股份有限公司 | 一种在内核中高速分配连续内存的方法 |
US8656133B2 (en) | 2011-05-05 | 2014-02-18 | International Business Machines Corporation | Managing storage extents and the obtaining of storage blocks within the extents |
US8683169B2 (en) | 2011-05-05 | 2014-03-25 | International Business Machines Corporation | Selecting an auxiliary storage medium for writing data of real storage pages |
US8688946B2 (en) | 2011-05-05 | 2014-04-01 | International Business Machines Corporation | Selecting an auxiliary storage medium for writing data of real storage pages |
CN102831068A (zh) * | 2011-06-13 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 一种内存操作记录的处理方法及装置 |
CN102831068B (zh) * | 2011-06-13 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 一种内存操作记录的处理方法及装置 |
CN102279804A (zh) * | 2011-08-16 | 2011-12-14 | 天津市天祥世联网络科技有限公司 | 视频监控平台系统的内存池结构及实现方法 |
US8868876B2 (en) | 2011-12-28 | 2014-10-21 | International Business Machines Corporation | Dedicated large page memory pools |
CN104281528A (zh) * | 2013-07-09 | 2015-01-14 | 浙江大华技术股份有限公司 | 一种数据存储方法及装置 |
CN104281528B (zh) * | 2013-07-09 | 2018-02-16 | 浙江大华技术股份有限公司 | 一种数据存储方法及装置 |
CN104199781A (zh) * | 2014-08-14 | 2014-12-10 | 深圳百科信息技术有限公司 | 一种基于共享内存的内存碎片分配方法和装置 |
CN105785824A (zh) * | 2016-04-12 | 2016-07-20 | 上海斐讯数据通信技术有限公司 | 一种向Linux内核传递内存大小参数的方法及系统 |
CN105785824B (zh) * | 2016-04-12 | 2020-02-11 | 上海斐讯数据通信技术有限公司 | 一种向Linux内核传递内存大小参数的方法及系统 |
CN107977265A (zh) * | 2016-10-25 | 2018-05-01 | 中兴通讯股份有限公司 | 内存初始化方法、装置和内存分配方法、装置 |
CN106844046B (zh) * | 2016-12-31 | 2021-06-11 | 北京市腾河智慧能源科技有限公司 | 宽带载波内存管理方法 |
CN106844046A (zh) * | 2016-12-31 | 2017-06-13 | 昊宏广泰(北京)科技有限公司 | 宽带载波内存管理算法 |
CN109117273A (zh) * | 2018-08-17 | 2019-01-01 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置及设备 |
CN109117273B (zh) * | 2018-08-17 | 2021-09-07 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置及设备 |
CN110780823A (zh) * | 2019-11-06 | 2020-02-11 | 广东三维家信息科技有限公司 | 小对象内存管理方法、装置、电子设备和计算机可读介质 |
CN110780823B (zh) * | 2019-11-06 | 2023-09-12 | 广东三维家信息科技有限公司 | 小对象内存管理方法、装置、电子设备和计算机可读介质 |
CN111078587A (zh) * | 2019-12-10 | 2020-04-28 | Oppo(重庆)智能科技有限公司 | 内存分配方法、装置、存储介质及电子设备 |
CN112685188A (zh) * | 2021-03-22 | 2021-04-20 | 四川九洲电器集团有限责任公司 | 一种基于全局字节数组的嵌入式内存管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100517240C (zh) | 2009-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100517240C (zh) | 一种嵌入式操作系统的内存池分配方法 | |
CN102831120B (zh) | 一种数据处理方法及系统 | |
CN101221536B (zh) | 嵌入式系统的内存管理方法及装置 | |
CN101266575B (zh) | 一种提高内存池利用率的方法 | |
CA3104353C (en) | Storage volume creation method and apparatus, server, and storage medium | |
US8738673B2 (en) | Index partition maintenance over monotonically addressed document sequences | |
CN101986285A (zh) | 虚拟机存储空间管理方法、系统及物理主机 | |
CN102474531B (zh) | 地址服务器 | |
CN101344861B (zh) | 一种智能卡内存管理方法 | |
CN103164490B (zh) | 一种不固定长度数据的高效存储实现方法和装置 | |
CN103761053A (zh) | 一种数据处理方法和装置 | |
CN103297499A (zh) | 一种基于云平台的调度方法及系统 | |
CN101222490B (zh) | 一种网络服务器系统及方法 | |
CN103384877A (zh) | 包括闪存的存储系统和存储控制方法 | |
CN103455433B (zh) | 内存管理方法及系统 | |
CN103023805A (zh) | 一种MapReduce系统 | |
CN102262512A (zh) | 一种实现磁盘阵列缓存分区管理的系统、装置及方法 | |
CN103425435B (zh) | 磁盘存储方法及磁盘存储系统 | |
CN108279969A (zh) | 基于内存压缩传输的有状态服务容器热迁移方法 | |
CN103246549B (zh) | 一种数据转存的方法及系统 | |
CN108121603B (zh) | 一种嵌入式系统内存管理方法 | |
CN102520887A (zh) | 一种应用于云计算的存储空间配置与管理方法 | |
CN106293509A (zh) | 数据存储方法及系统 | |
CN105469173A (zh) | 一种静态内存进行优化管理的方法 | |
CN109788013B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |