CN111190737A - 一种针对嵌入式系统的内存分配方法 - Google Patents
一种针对嵌入式系统的内存分配方法 Download PDFInfo
- Publication number
- CN111190737A CN111190737A CN201911413282.7A CN201911413282A CN111190737A CN 111190737 A CN111190737 A CN 111190737A CN 201911413282 A CN201911413282 A CN 201911413282A CN 111190737 A CN111190737 A CN 111190737A
- Authority
- CN
- China
- Prior art keywords
- memory
- block
- subinterval
- allocation
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 293
- 238000000034 method Methods 0.000 title claims abstract description 32
- 101000617124 Mus musculus Stromal cell-derived factor 1 Proteins 0.000 claims abstract 3
- 230000008569 process Effects 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 9
- 238000001914 filtration Methods 0.000 claims description 3
- 238000013467 fragmentation Methods 0.000 abstract description 31
- 238000006062 fragmentation reaction Methods 0.000 abstract description 31
- 238000005192 partition Methods 0.000 abstract description 4
- 238000000638 solvent extraction Methods 0.000 abstract description 2
- 101000893493 Homo sapiens Protein flightless-1 homolog Proteins 0.000 description 17
- 102100040923 Protein flightless-1 homolog Human genes 0.000 description 17
- 239000012634 fragment Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 101100290347 Arabidopsis thaliana MBS2 gene Proteins 0.000 description 4
- 101001062996 Homo sapiens Friend leukemia integration 1 transcription factor Proteins 0.000 description 4
- 101100473036 Mus musculus Hnrnpa1 gene Proteins 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 101100290346 Arabidopsis thaliana MBS1 gene Proteins 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0653—Configuration or reconfiguration with centralised address assignment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
本发明提供了一种针对嵌入式系统的内存分配方法,在TLSF算法的基础上进行了改进,加入了内存分块和参数自适应调节,能够根据申请大小来自适应调节每个内存块的内存分配结构,碎片率低。本发明在TLSF算法的基础上进行了改进,加入了内存分块和参数自适应调节,提高了内存利用率。其中,将内存区间进行分块,得到两个内存子区间,根据申请大小来自适应调节每个内存子区间的内存分配结构,从而在保证实时性的同时有效地降低碎片率。
Description
技术领域
本发明属于内存分配技术领域,具体涉及一种针对嵌入式系统的内存分配方法。
背景技术
随着物联网技术的发展,嵌入式实时操作系统得到越来越广泛的应用。嵌入式实时操作系统对动态内存分配的实时性、碎片率、可靠性有更高的要求,因此,动态内存分配已成为嵌入式实时操作系统的一个重要研究内容。嵌入式实时系统中,内存分配具有重要的意义,它是操作系统的一个重要模块,包括内存的分配和释放。内存分配的好坏直接关系着嵌入式系统的可靠性和稳定性。
从时间分配上,内存分配的分配策略可分为静态内存分配和动态内存分配。动态内存分配中存储空间是按需分配,并且被释放的内存块可以再次参与分配,因此动态内存分配内存资源利用率比静态内存分配高。静态内存分配是在栈上进行的,在栈上进行大量静态分配是很危险的,若栈溢出时,多出的数据会覆盖掉相邻堆栈的数据,甚至会破坏内核造成系统崩溃。动态分配可避免这一状况,大块内存的分配必须采取动态内存分配。因此,为了实时嵌入式系统开发中更好的使用动态内存分配策略,越来越多的研究人员开始关注内存分配的实时性及内存碎片问题。
频繁的动态内存分配操作会产生大量内存碎片的产生,影响系统性能,所以在不同的系统中,对于内存分配管理,开发了许多不同的内存分配算法,典型的实时系统动态内存分配算法有顺序查找算法、伙伴算法、Half-Fit算法、位示图算法以及TLSF算法。从实时性、内存碎片率这两方面考虑,TLSF(Two-level Segregated Fit)算法是最合适的动态内存分配算法。
TLSF(Two-level Segregated Fit)算法即二级间隔表动态内存分配算法。算法通过二级索引将空闲内存块组织起来。第1级索引按2的幂次将内存分为多个区域;第2级索引在第1级索引划分的内存区域里再进行线性分割。第2级索引的每一位都对应一条空闲内存链表。为了提高实时性,TLSF通过双击位图快速索引到大小合适的空闲内存块。为了减少内存碎片,TLSF算法在内存分配和释放时采用了切割和合并技术,当算法返回的空闲内存大小大于所请求的空闲内存大小时,将空闲内存块切割为两部分,一部分用于分配,另一部分作为新的空闲块插入到空闲链表中;在内存释放时,判断相邻物理空间上的内存块是否空闲块,若都为空闲内存块,则两个空闲块合并成一个更大的空闲块。TLSF算法的切割与合并策略降低了内存碎片率。
TLSF(Two-level Segregated Fit)是一种二级隔离适应算法,使用位图(Bitmaps)与分组空闲链表(Segregated List)相结合的方式对内存进行管理。通过两级隔离链表组织空闲队列,并且对于每一级链表都使用位图法标记其是否含有空闲块。第一级链表按照2的幂次方划分,第二级链表在由第一级链表划分的范围之内进行再次划分,第二级链表的每一级别都对应一条空闲链表。查找时,先根据请求的内存大小计算出最合适的一级,二级链表的索引值,直接查看对应的位图标记,如果标记该级链表上有空闲块,则直接从该级链表上取;如果由计算所得的两级索引值指定的链表上没有空闲块,则需要进行二次查找,通过位操作查找操作,寻找大于当前请求的最小大小空闲链表进行分配。在分配和释放过程中,需要适当的调整位图和链表管理信息。
TLSF算法实现过程中的三个参数(MAX_FLI、MAX_SLI、MBS):
(1)一级索引MAX_FLI(不超过32):
该索引标识一级链表长度,内存区共被划分成REAL_FLI(MAX_FLI-FLI_OFFSET)个大的内存块区间,一级索引值为fl的内存区间为[2fl,2fl+1)。参数FLI_OFFSET定义了最小一级索引的内存大小[0,2FLI_OFFSET+1),低于此内存的所用内存块在此区间分配。
(2)二级索引MAX_SLI(不超过5):
MAX_SLI等于2的MAX_LOG2_SLI次方(MAX_LOG2_SLI为程序中计算方便定义的),二级索引将一级索引划分的内存区域按照线性再次划分。MAX_SLI的值可人为设定,若MAX_SLI=3,则一级索引划分的内存区被平均划分成8段。MAX_SLI的值越大,则将内存区划分得越细,但一般而言,MAX_SLI不超过5。若MAX_SLI的值超过5,则2的MAX_SLI次幂超过32,无法用位图表示。
(3)最小块大小MBS(MBS=2FLI_OFFSET+1):
这个参数是定义最小块的大小,最小块的大小一般定义为16Bytes,块大小也可根据用户的实际需求而更改。
当MAX_FLI=31、MAX_SLI=3、MBS=32时,TLSF数据结构如图1所示。其中,fl为一级索引值,s1为二级索引值。FL_Bitmap和SL_Bitmap表示位图。
该结构图中的每一个方框为一条空闲链表,每条链表可链接多个空闲内存块,如104这个链表存储空闲内存大小为104~111之间的所有空闲内存块地址。
TLSF算法的过程理论上为:初始化内存函数init_memory_pool初始整个内存池,并将总的空闲内存块存入二级链表中,即init_memory_pool之前,该内存分配结构全空,没有可用空闲内存,init_memory_pool之后,在该结构中插入一个最大的可用空闲内存,后面的申请过程中,将该大内存块不断切割,插入链表中相应位置。TLSF算法结构图如图1所示。
利用下述公式(1)确定所申请空闲内存处于的链表位置:
TLSF算法虽实时性好、内存碎片率相对较小,但其三个参数(MAX_FLI、MAX_SLI、MBS)一旦设定好,其算法数据结构就固定不变了,无法根据实际的任务申请内存大小情况做出调节,从而造成了一定了内存碎片和实时性的降低。例如当某个任务需要申请一系列小内存时,若TLSF算法MAX_SLI设置较小(即划分不够精细),就会造成很多的内存碎片,碎片率会很高。
发明内容
有鉴于此,本发明提供了一种针对嵌入式系统的内存分配方法,在TLSF算法的基础上进行了改进,加入了内存分块和参数自适应调节,能够根据申请大小来自适应调节每个内存块的内存分配结构,碎片率低。
为实现上述目的,本发明的一种针对嵌入式系统的内存分配方法,包括如下步骤:
首先进行内存区间初始化:将整个内存区间平均分为两块子区间,对每块内存子区间的MAX_FLI、MAX_SLI以及MBS参数值进行初始化;
然后开始在第一块内存子区间内进行内存分配,并记录每次内存分配大小;
当第一块内存子区间分配完毕后,根据记录的第一块内存子区间每次内存分配大小,计算出即将到来的内存分配大小预测值,根据预测值调节第二块内存子区间的MAX_SLI以及MBS参数值,并开始在第二块内存子区间中进行分配;
当第二块内存子区间分配完毕后,若第一块内存子区间全部释放完毕,则根据记录的第二块内存子区间每次内存分配大小,计算出即将到来的内存分配大小预测值,根据当前预测值调节第一块内存子区间的MAX_SLI以及MBS参数值,开始在第一块内存子区间中进行分配;若第一块内存子区间没有完全释放完毕,则不作调节,直接开始在第一块内存子区间中进行分配。
其中,采用加权移动平均滤波法计算出即将到来的分配内存大小预测值。
其中,所述预测值为前n次的内存分配大小的平均值。
其中,分别用abf_init、abf_malloc以及abf_free函数来实现内存初始化、内存分配以及内存释放。
其中,对内存子区间进行初始化时,每块内存子区间中,先初始化用来初始化内存分配结构的头结构体abf_t,然后调用函数process area()处理内存块;函数processarea()对申请到的内存子区间进行初始化,返回值是实际可用的内存大小,参数是初始化时内存子区间的大小和内存子区间的首地址,初始化后TLSF_STRUCT放在首地址处。
其中,内存释放中,若为第一块内存子区间中分配的内存,则在第一块内存子区间中进行释放,若为第二块内存子区间中分配的内存,则在第二块内存子区间中进行释放。
有益效果:
本发明在TLSF算法的基础上进行了改进,加入了内存分块和参数自适应调节,提高了内存利用率。其中,将内存区间进行分块,得到两个内存子区间,根据申请大小来自适应调节每个内存子区间的内存分配结构,从而在保证实时性的同时有效地降低碎片率。
附图说明
图1为TLSF算法结构图。
图2为本发明ABF算法整体数据结构图。
图3为本发明ABF算法内部详细结构图。
图4为TLSF算法碎片率随二级索引大小的变化情况示意图。
图5为本发明ABF算法流程图。
图6为本发明ABF算法中每块的内存分配流程图。
图7为本发明ABF算法中每块的内存释放流程图
图8为本发明ABF算法与TLSF算法碎片率比较示意图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提出了Adjustable Block Fit内存分配算法(简称ABF),即可调节的分块内存分配算法,使内存分配算法可以随着申请内存大小情况实时做出调节,其主要思想为:将所要分配的内存区间分为两块,每块分别用独立的TLSF算法进行管理。本发明ABF算法整体数据结构如图2所示。
开始时合理设置两个内存块的MAX_FLI、MAX_SLI、MBS参数值,如图3所示:(MAX_FLI1=19、MAX_SLI1=8、MBS1=128、MAX_FLI2=19、MAX_SLI2=8、MBS2=128)。当有内存申请到来时,先从第一个TLSF内存块开始分配,并记录每次内存申请大小。第一块内存分配完毕后,根据之前申请内存大小,采用加权移动平均滤波法对即将到来的内存请求大小进行预测,根据预测值自动调节第二块TLSF算法的结构,并开始在第二块内存子区间中分配,第二块内存子区间已满时,若第一块中的内存全部释放完毕,则根据新的预测值调节第一块TLSF算法的结构,转回第一块内存子区间进行分配,这样不断调节两块内存子区间的管理结构。
其中,参数自适应调节具体过程如下:
(1)预测值计算:计算前n次的内存分配大小的平均值得到预测值,其中n为第一块内存子区间分配完毕后的总分配次数,xi为每次分配的内存大小。预测值后面将用于计算二级索引值来调节内存分配结构。预测值计算公式为:
(2)一级索引MAX_FLI:
一级索引值的大小只与要管理的内存子区间的大小有关,一级索引值越大,代表算法结构越大,查表得到合适的空闲内存大小的过程越复杂,故取能管理该区间的一级索引最小值作为ABF算法的一级索引值。因为初始化内存池时将最大的可用空闲内存块插入链表中,所以内存分配结构最小应当放得下内存子区间大小的内存块。根据两块内存子区间的大小m1、m2,计算一级索引值MAX_FLI1、MAX_FLI2,计算公式为:
(3)二级索引MAX_SLI=2MAX_LOG2_SLI:
二级索引值越大,表明内存分配结构划分的越精细。增大二级索引值可以有效的降低内存碎片率,但也会使内存分配时的查表过程变得更繁琐,即实时性降低,故应当根据实际的内存请求大小合理的设置二级索引值。
测得TLSF算法碎片率情况随二级索引值得变化关系如图4所示,由图可以看出,申请大内存(500B~1000B)时,碎片率较申请小内存时低。因此在ABF算法的设计时,随着申请内存大小的减小而增大二级索引值,从而在保证实时性的情况下有效降低碎片率。
二级索引值调节公式为:
即以5为基础,预测值每增大500,MAX_LOG2_SLI减小1,最小为1。
(4)最小块大小MBS=2FLI_OFFSET+1:
最小块大小标定了一个小内存界限,低于此内存大小的所用内存块压缩在最下面一行进行分配。经测试,最小块大小与碎片率没有明显关系。在二级索引值不超过4时,将MBS设为常用的16B(即FLI_OFFSET=3),二级索引值为5时,需要将一行分为32块,故MBS最小设为32(即FLI_OFFSET=4)。
最小块大小MBS的调节公式为:
本发明ABF算法实现流程图如图5所示,具体步骤如下:
步骤1,初始化:将整个内存区间平均分为两块子区间,对每块内存子区间的MAX_FLI、MAX_SLI以及MBS参数值进行初始化。如:
MAX_FLI1=19、MAX_SLI1=8、MBS1=128
MAX_FLI2=19、MAX_SLI2=8、MBS2=128。
步骤2,一级索引值MAX_FLI计算与调节:根据两块内存子区间的可用空闲内存大小计算MAX_FLI1、MAX_FLI2并调节,同时开始在第一块内存子区间中进行内存分配,记录每次分配的内存大小。
当第一块内存子区间分配完毕后,根据记录的分配内存大小计算出预测值,根据预测值对第二块内存子区间的MAX_SLI、MBS参数值作出调节,并开始在第二块内存子区间中进行分配。当第二块内存子区间分配完毕后,若第一块内存子区间全部释放完毕,则根据记录的第二块内存子区间每次内存分配大小,计算出即将到来的内存分配大小预测值,根据当前预测值调节第一块内存子区间的MAX_SLI以及MBS参数值,开始在第一块内存子区间中进行分配;若第一块内存子区间没有完全释放完毕,则不作调节,直接开始在第一块内存子区间中进行分配。
本发明ABF算法内存分配释放流程:
内存分配算法一般由内存初始化、内存分配、内存释放操作来实现。ABF算法中分别用abf_init、abf_malloc以及abf_free函数来实现这些功能。
内存初始化流程:动态内存初始化的目的是申请一块大的内存区间,ABF算法中先将内存区间分块,根据每块内存大小计算一级索引MAX_FLI1、MAX_FLI2。然后分别进行初始化,每块中先初始化头结构体abf_t,用来初始化内存分配结构。然后调用函数processarea()处理内存块,对申请到的内存子区间进行初始化。返回值是实际可用的内存大小(可用于动态分配),参数是初始化时内存的大小和内存的首地址,初始化后TLSF_STRUCT会放在首地址处。
内存分配流程:先在第一块内存子区间内进行分配,第一块分配完毕,计算二级索引MAX_SLI2、最小块大小MBS2,调节第二块内存分配结构并开始在第二块中进行分配,当第一块中申请的内存块全部释放完毕,则调节MAX_SLI1、MBS2,并在第一块内存子区间中进行分配,以此循环。每块的分配流程为图6所示。
内存释放流程,若为第一块内存子区间中分配的内存块,则在第一块内存子区间中进行释放,若为第二块内存子区间中分配的内存块,则在第二块内存子区间中进行释放,每块内存释放流程如图7所示。
为了测量ABF内存分配算法的性能,将本发明ABF算法与目前性能较好的TLSF算法进行对比,做了相应的对比实验。
测试结果为:
Case1:
TLSF算法 碎片率f=0.150207
ABF算法 碎片率f=0.098308
Case2:
TLSF算法 碎片率f=0.244677
ABF算法 碎片率f=0.208546
Case3:
TLSF算法 碎片率f=0.073784
ABF算法 碎片率f=0.073784
图8为ABF算法与TLSF算法的碎片率测试结果对比图,可以看出,在采用了ABF算法进行自适应调节后,Case1和Case2的碎片率都有很明显的降低。Case1中,碎片率降低了0.052,即多出了5200000B内存区间可用来分配。在Case2中,由于申请的都为小内存,生成了很多内存碎片,采用TLSF算法进行内存分配时碎片率达到了24%,采用ABF算法后碎片率降低至21%,多出了3MB可用内存空间。在Case3中,由于申请的都为大内存,产生的内存碎片较少,为了保证内存分配的实时性,在ABF算法中的自适应调节公式计算得到的结果为不做调节,因此碎片率测试结果与TLSF算法相同,仍然保持了较低的碎片率。实验结果表明,本发明ABF算法与目前性能较好的TLSF算法相比,在保证实时性的同时能达到更小的碎片率。具体的,在申请随机大小的内存时,采用ABF算法碎片率较TLSF算法降低了35%,在申请小内存时,采用ABF算法碎片率较TLSF算法降低了15%。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种针对嵌入式系统的内存分配方法,其特征在于,包括如下步骤:
首先进行内存区间初始化:将整个内存区间平均分为两块子区间,对每块内存子区间的MAX_FLI、MAX_SLI以及MBS参数值进行初始化;
然后开始在第一块内存子区间内进行内存分配,并记录每次内存分配大小;
当第一块内存子区间分配完毕后,根据记录的第一块内存子区间每次内存分配大小,计算出即将到来的内存分配大小预测值,根据预测值调节第二块内存子区间的MAX_SLI以及MBS参数值,并开始在第二块内存子区间中进行分配;
当第二块内存子区间分配完毕后,若第一块内存子区间全部释放完毕,则根据记录的第二块内存子区间每次内存分配大小,计算出即将到来的内存分配大小预测值,根据当前预测值调节第一块内存子区间的MAX_SLI以及MBS参数值,开始在第一块内存子区间中进行分配;若第一块内存子区间没有完全释放完毕,则不作调节,直接开始在第一块内存子区间中进行分配。
2.如权利要求1所述的针对嵌入式系统的内存分配方法,其特征在于,采用加权移动平均滤波法计算出即将到来的分配内存大小预测值。
3.如权利要求1所述的针对嵌入式系统的内存分配方法,其特征在于,所述预测值为前n次的内存分配大小的平均值。
4.如权利要求1所述的针对嵌入式系统的内存分配方法,其特征在于,分别用abf_init、abf_malloc以及abf_free函数来实现内存初始化、内存分配以及内存释放。
5.如权利要求1所述的针对嵌入式系统的内存分配方法,其特征在于,对内存子区间进行初始化时,每块内存子区间中,先初始化用来初始化内存分配结构的头结构体abf_t,然后调用函数process area()处理内存块;函数process area()对申请到的内存子区间进行初始化,返回值是实际可用的内存大小,参数是初始化时内存子区间的大小和内存子区间的首地址,初始化后TLSF_STRUCT放在首地址处。
6.如权利要求1所述的针对嵌入式系统的内存分配方法,其特征在于,内存释放中,若为第一块内存子区间中分配的内存,则在第一块内存子区间中进行释放,若为第二块内存子区间中分配的内存,则在第二块内存子区间中进行释放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911413282.7A CN111190737A (zh) | 2019-12-31 | 2019-12-31 | 一种针对嵌入式系统的内存分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911413282.7A CN111190737A (zh) | 2019-12-31 | 2019-12-31 | 一种针对嵌入式系统的内存分配方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111190737A true CN111190737A (zh) | 2020-05-22 |
Family
ID=70707922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911413282.7A Pending CN111190737A (zh) | 2019-12-31 | 2019-12-31 | 一种针对嵌入式系统的内存分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111190737A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268349A (zh) * | 2021-06-04 | 2021-08-17 | 科东(广州)软件科技有限公司 | 一种计算机内存管理方法、装置、设备及存储介质 |
CN113791596A (zh) * | 2021-11-15 | 2021-12-14 | 西安热工研究院有限公司 | 基于动态申请内存小时均值计算方法和系统、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915276A (zh) * | 2012-09-25 | 2013-02-06 | 武汉邮电科学研究院 | 一种用于嵌入式系统的内存控制方法 |
CN103970680A (zh) * | 2014-04-28 | 2014-08-06 | 上海华为技术有限公司 | 内存管理方法、装置及嵌入式系统 |
US20140372724A1 (en) * | 2013-06-13 | 2014-12-18 | International Business Machines Corporation | Allocation of distributed data structures |
-
2019
- 2019-12-31 CN CN201911413282.7A patent/CN111190737A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915276A (zh) * | 2012-09-25 | 2013-02-06 | 武汉邮电科学研究院 | 一种用于嵌入式系统的内存控制方法 |
US20140372724A1 (en) * | 2013-06-13 | 2014-12-18 | International Business Machines Corporation | Allocation of distributed data structures |
CN103970680A (zh) * | 2014-04-28 | 2014-08-06 | 上海华为技术有限公司 | 内存管理方法、装置及嵌入式系统 |
Non-Patent Citations (3)
Title |
---|
VH SHAH等: "An analysis and review on memory management algorithms for real time operating system" * |
孙棣华等: "一种嵌入式实时系统动态内存管理器的设计" * |
宋敏超等: "一种新型嵌入式动态内存分配算法" * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268349A (zh) * | 2021-06-04 | 2021-08-17 | 科东(广州)软件科技有限公司 | 一种计算机内存管理方法、装置、设备及存储介质 |
CN113268349B (zh) * | 2021-06-04 | 2022-02-18 | 科东(广州)软件科技有限公司 | 一种计算机内存管理方法、装置、设备及存储介质 |
CN113791596A (zh) * | 2021-11-15 | 2021-12-14 | 西安热工研究院有限公司 | 基于动态申请内存小时均值计算方法和系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11048442B2 (en) | Scalable in-memory object storage system using hybrid memory devices | |
EP3367251B1 (en) | Storage system and solid state hard disk | |
US10929341B2 (en) | Iterative object scanning for information lifecycle management | |
JP4317531B2 (ja) | 複数のメモリ・バッファ・サイズを均衡させるためのシステムおよび方法 | |
KR100338224B1 (ko) | 참조의 국한성에 대한 고효율의 동적 추적 방법 및 장치 | |
JP6313993B2 (ja) | ホストのサービス品質インジケータに重みを割り当てるための装置および方法ならびに記憶媒体 | |
WO2002039284A2 (en) | Systems and methods for management of memory | |
US8051265B2 (en) | Apparatus for managing memory in real-time embedded system and method of allocating, deallocating and managing memory in real-time embedded system | |
JP2005508033A5 (zh) | ||
KR20100091853A (ko) | 동적 메모리 관리를 수행하는 임베디드 시스템 및 그의 메모리 관리방법 | |
US20100293206A1 (en) | Clustering related objects during garbage collection | |
US20210157725A1 (en) | Method and apparatus for dynamically adapting cache size based on estimated cache performance | |
CN111190737A (zh) | 一种针对嵌入式系统的内存分配方法 | |
CN107844372B (zh) | 一种内存分配的方法、系统 | |
US20050268049A1 (en) | Dynamic memory management | |
CN105302830A (zh) | 一种地图瓦片缓存方法及装置 | |
CN111984425A (zh) | 用于操作系统的内存管理方法、装置及设备 | |
US20070288255A1 (en) | Method And Apparatus For Assigning Rack Space | |
CN113590332A (zh) | 内存管理方法、装置及内存分配器 | |
US20180129425A1 (en) | Data management system and method for processing distributed data | |
CN110166279B (zh) | 一种非结构化云数据管理系统的动态布局方法 | |
CN109408412B (zh) | 内存预取控制方法、装置及设备 | |
CN111949218B (zh) | 一种高可用存储系统负载均衡方法、系统、介质及终端 | |
CN113835868B (zh) | 一种基于反馈和公平队列的服务质量感知的缓存调度方法 | |
CN116561374B (zh) | 基于半结构化存储的资源确定方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200522 |