CN111190737A - 一种针对嵌入式系统的内存分配方法 - Google Patents

一种针对嵌入式系统的内存分配方法 Download PDF

Info

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
Application number
CN201911413282.7A
Other languages
English (en)
Inventor
高明晋
姚亚芬
周一青
石晶林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongke Jingshang Suzhou Information Technology Co ltd
Original Assignee
Zhongke Jingshang Suzhou Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhongke Jingshang Suzhou Information Technology Co ltd filed Critical Zhongke Jingshang Suzhou Information Technology Co ltd
Priority to CN201911413282.7A priority Critical patent/CN111190737A/zh
Publication of CN111190737A publication Critical patent/CN111190737A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration 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)确定所申请空闲内存处于的链表位置:
Figure BDA0002350536030000041
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为每次分配的内存大小。预测值后面将用于计算二级索引值来调节内存分配结构。预测值计算公式为:
Figure BDA0002350536030000071
(2)一级索引MAX_FLI:
一级索引值的大小只与要管理的内存子区间的大小有关,一级索引值越大,代表算法结构越大,查表得到合适的空闲内存大小的过程越复杂,故取能管理该区间的一级索引最小值作为ABF算法的一级索引值。因为初始化内存池时将最大的可用空闲内存块插入链表中,所以内存分配结构最小应当放得下内存子区间大小的内存块。根据两块内存子区间的大小m1、m2,计算一级索引值MAX_FLI1、MAX_FLI2,计算公式为:
Figure BDA0002350536030000072
(3)二级索引MAX_SLI=2MAX_LOG2_SLI
二级索引值越大,表明内存分配结构划分的越精细。增大二级索引值可以有效的降低内存碎片率,但也会使内存分配时的查表过程变得更繁琐,即实时性降低,故应当根据实际的内存请求大小合理的设置二级索引值。
测得TLSF算法碎片率情况随二级索引值得变化关系如图4所示,由图可以看出,申请大内存(500B~1000B)时,碎片率较申请小内存时低。因此在ABF算法的设计时,随着申请内存大小的减小而增大二级索引值,从而在保证实时性的情况下有效降低碎片率。
二级索引值调节公式为:
Figure BDA0002350536030000081
即以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的调节公式为:
Figure BDA0002350536030000082
本发明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算法进行对比,做了相应的对比实验。
Figure BDA0002350536030000091
Case1:初始化100MB大小的内存空间,每次随机申请1~2000B大小的内存,模拟内存大小随机变化情况,比较ABF算法和TLSF算法的碎片率。
Figure BDA0002350536030000092
Case2:初始化100MB大小的内存空间,每次随机申请1~200B大小的内存,模拟申请小内存情况,比较ABF算法和TLSF算法的碎片率。
Figure BDA0002350536030000093
Case3:初始化100MB大小的内存空间,每次随机申请1500~2000B大小的内存,模拟申请大内存情况,比较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所述的针对嵌入式系统的内存分配方法,其特征在于,内存释放中,若为第一块内存子区间中分配的内存,则在第一块内存子区间中进行释放,若为第二块内存子区间中分配的内存,则在第二块内存子区间中进行释放。
CN201911413282.7A 2019-12-31 2019-12-31 一种针对嵌入式系统的内存分配方法 Pending CN111190737A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
VH SHAH等: "An analysis and review on memory management algorithms for real time operating system" *
孙棣华等: "一种嵌入式实时系统动态内存管理器的设计" *
宋敏超等: "一种新型嵌入式动态内存分配算法" *

Cited By (3)

* Cited by examiner, † Cited by third party
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