CN101751342A - 内存管理系统及方法 - Google Patents

内存管理系统及方法 Download PDF

Info

Publication number
CN101751342A
CN101751342A CN200810305793A CN200810305793A CN101751342A CN 101751342 A CN101751342 A CN 101751342A CN 200810305793 A CN200810305793 A CN 200810305793A CN 200810305793 A CN200810305793 A CN 200810305793A CN 101751342 A CN101751342 A CN 101751342A
Authority
CN
China
Prior art keywords
memory block
spike
utilization rate
block
memory
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
Application number
CN200810305793A
Other languages
English (en)
Other versions
CN101751342B (zh
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.)
Shenzhen Futaihong Precision Industry Co Ltd
Chi Mei Communication Systems Inc
Original Assignee
Shenzhen Futaihong Precision Industry Co Ltd
Chi Mei Communication Systems Inc
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 Shenzhen Futaihong Precision Industry Co Ltd, Chi Mei Communication Systems Inc filed Critical Shenzhen Futaihong Precision Industry Co Ltd
Priority to CN2008103057932A priority Critical patent/CN101751342B/zh
Priority to US12/479,831 priority patent/US8024543B2/en
Publication of CN101751342A publication Critical patent/CN101751342A/zh
Application granted granted Critical
Publication of CN101751342B publication Critical patent/CN101751342B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种内存管理方法,应用于移动装置中,包括如下步骤:当移动装置启动时,初始化内存区块,并开始统计内存区块的尖峰使用率及平均破碎率;每隔设定的间隔次数,重新调整一次内存区块的配置,包括:调整尖峰使用率最高与最低的内存区块P1、P2;调整尖峰使用率大于预设的尖峰使用率中平均破碎率最高的内存区块P3,及区块大小恰小于P3的内存区块P4;将调整后剩余的部分组合成数个P1区块。本发明还提供一种内存管理系统。利用本发明可根据实际使用状况动态调整内存区块的配置。

Description

内存管理系统及方法
技术领域
本发明涉及一种存储器管理系统及方法,尤其涉及一种应用于移动装置中的内存管理系统及方法。
背景技术
动态内存配置在计算机或嵌入式系统中关系到软件的执行效率,包括配置/释放速度与同时可执行的程序数目。
在即时作业系统(Real-Time Operating System,RTOS)中,特别强调应用程序的反应速度,因此经常会采用内存区块资源区(Partition Memory Pool)来动态配置内存。这种方法的优点是配置及释放速度快,配置时间在任何情况下是一致的,不随使用状况而变化。
但是,这种方法的缺点是:(1)需事先规划每一个内存区块划分后得到的子区块的大小与数目;(2)存在内部碎裂的问题。
发明内容
鉴于以上内容,有必要提供一种内存管理系统,当移动装置启动后,可根据实际使用状况动态调整内存区块的配置。
此外,还有必要提供一种内存管理方法,当移动装置启动后,可根据实际使用状况动态调整内存区块的配置。
一种内存管理系统,应用于移动装置中,所述系统包括:初始化模块,用于当移动装置启动时,初始化内存区块;统计模块,用于统计内存区块的尖峰使用率及平均破碎率,同时记录统计次数T;所述统计模块,还用于在每次记录统计次数T时,判断该移动装置是否是第一次进行内存区块配置,及当第一次进行内存区块配置时判断是否T>T1,或者当不是第一次进行内存区块配置时判断是否T>T2,其中,T1和T2为预设值,且T1≥T2;第一调整模块,用于当T>T1或T>T2时,重置统计次数T,并调整尖峰使用率最高与最低的内存区块P1、P2,将尖峰使用率最低的的内存区块P2转换成尖峰使用率最高的内存区块P1;第二调整模块,用于调整尖峰使用率大于预设的尖峰使用率中平均破碎率最高的内存区块P3,及区块大小恰小于P3的内存区块P4,当P3的实际使用大小接近于P3本身时,将P3调小,当P3的实际使用大小接近于P4的大小时,将P4调大;组合模块,用于将第一调整模块和第二调整模块中调整后剩余的部分R1和R2组合成数个P1区块,剩余部分记为R3,R3可于下一次调整内存区块的配置时被重复利用。
一种内存管理方法,应用于移动装置中,该方法包括如下步骤:当移动装置启动时,初始化内存区块,并开始统计内存区块的尖峰使用率及平均破碎率;每隔设定的间隔次数,重新调整一次内存区块的配置,包括:调整尖峰使用率最高与最低的内存区块P1、P2,将尖峰使用率最低的的内存区块P2转换成尖峰使用率最高的内存区块P1,剩余部分记为R1;调整尖峰使用率大于预设的尖峰使用率中平均破碎率最高的内存区块P3,及区块大小恰小于P3的内存区块P4,当P3的实际使用大小接近于P3本身时,将P3调小,当P3的实际使用大小接近于P4的大小时,将P4调大,剩余部分记为R2;将调整后剩余的部分R1和R2组合成数个P1区块,剩余部分记为R3,R3可于下一次调整内存区块的配置时被重复利用。
相较于现有技术,所述的内存管理系统及方法,当移动装置启动后,可根据实际使用状况动态调整内存区块的配置,提高了内存的使用效率,降低了内存区块中的内部碎裂。
附图说明
图1是本发明一种内存管理系统较佳实施例的硬件架构图。
图2是图1中内存管理单元的功能模块图。
图3是本发明一种内存管理方法较佳实施例的流程图。
图4是本发明内存区块的示意图。
图5是图4中步骤S46的内存调整示意图。
图6是图4中步骤S46的具体流程图。
图7是图4中步骤S47的内存调整示意图。
图8是图4中步骤S47的具体流程图。
图9是图4中步骤S48的内存调整示意图。
具体实施方式
如图1所示,是本发明一种内存管理系统较佳实施例的硬件架构图。该系统主要包括微处理器1、存储器2及输入/输出设备3,所述微处理器1与所述存储器2和输入/输出设备3相连。其中,所述存储器2包括内存21和内存管理单元20。所述内存21用于存储各种资料(如短信或MMS,其来源可能是其它移动装置,或是从网络下载得到)。所述内存21可以是动态随机存取内存(Dynamic Random Access Memory,DRAM)或同步动态随机存取内存(Synchronous DRAM,SDRAM)等。输入/输出设备3包括LCD液晶显示屏和键盘等,分别用于显示资料及输入信息。
所述微处理器1用于调用所述内存管理单元20,并控制所述内存管理单元20的执行。所述内存管理单元20用于当移动装置启动后,根据实际使用状况动态调整内存21的配置。
如图2所示,是图1中所示内存管理单元20的功能模块图。所述内存管理单元20包括初始化模块200、统计模块201、第一调整模块202、第二调整模块203及组合模块204。本发明所称的模块是完成一特定功能的计算机程序段,比程序更适合于描述软件在计算机中的执行过程,因此在本发明以下对软件描述中都以模块描述。
所述初始化模块200用于当移动装置启动时,初始化内存区块。在本实施例中,以P1、P2、…、Pm记录不同的内存区块,N1、N2、…、Nm记录内存区块P1、P2、…、Pm中所含子区块的数目(每个子区块的大小都相等),S1、S2、…、Sm记录内存区块P1、P2、…、Pm中每一个子区块的大小。其中,一个内存区块Pm的大小=Sm*Nm。如图4所示,是本发明内存区块的示意图。在图4中,内存区块P5、P6、P7、和P8中各子区块的大小分别为1个字节、2个字节、3个字节和4个字节,内存区块P5、P6、P7和P8所包含的子区块数目分别为18个、12个、4个和3个。因此,内存区块P5、P6、P7和P8的大小分别为1*18=18(字节)、2*12=24(字节)、3*4=12(字节)和4*3=12(字节)。
所述统计模块201用于统计内存区块的尖峰使用率及平均破碎率,同时记录统计次数T。所述尖峰使用率是指内存使用率的最高值,所述平均破碎率是指内存碎片在内存区块中所占比例的平均值,所述内存碎片是指:当分配的内存区块大于所需的内存大小时,多余的内存空间。例如,需求为35Bytes,而分配到的内存区块大小为50Bytes,多余的15Bytes称为内存碎片,该内存区块的破碎率为15/50=30%。所述统计次数是指统计内存区块尖峰使用率及平均破碎率的次数。
所述统计模块201,还用于在每次记录统计次数T时,判断该移动装置是否是第一次进行内存区块配置,及判断是否T>T1或者T>T2。其中,T1和T2为预设值,且T1≥T2。其中,可以用一个变量记录是否是第一次进行内存区块配置,如果是第一次进行内存区块配置,则将该变量设置为1,判断该变量是否为1即可知道是否是第一次进行内存区块配置。
所述第一调整模块202,用于当T>T1或T>T2时,重置统计次数T(即将变量T置为0),并调整尖峰使用率最高与最低的内存区块P1、P2,将尖峰使用率最低的的内存区块P2转换成尖峰使用率最高的内存区块P1。在本实施例中,系统预设有三个尖峰使用率:第一尖峰使用率Ua、第二尖峰使用率Ub和最低额定使用率Un,其中,Ua>Ub>Un。在本实施例中,如果内存区块P1和P2的尖峰使用率都大于或等于第一尖峰使用率Ua,则第一调整模块202不进行调整;如果一个内存区块的尖峰使用率小于最低额定使用率Un,则进行计算时以最低额定使用率Un作为该内存区块的尖峰使用率。
具体而言,如果尖峰使用率最高的内存区块P1是较大的内存区块,而尖峰使用率最低的内存区块P2是较小的内存区块,则第一调整模块202组合数个较小的内存区块P2成一个较大的内存区块P1,剩余部分记为R1(参见图5a);如果尖峰使用率最高的内存区块P1是较小的内存区块,而尖峰使用率最低的内存区块P2是较大的内存区块,则第一调整模块202分解较大的内存区块变P2成为数个较小的内存区块P1,剩余部分记为R1(参见图5b)。在本实施例中,所述较大的内存区块是指内存子区块较大的内存区块,所述剩余部分是指调整后多出来的内存空间。具体过程参阅图3中步骤S46所述。
所述第二调整模块203,用于调整尖峰使用率大于预设的第二尖峰使用率Ub中平均破碎率最高的内存区块P3,及区块大小恰小于P3的内存区块P4,如果内存区块P3的实际使用大小接近于P3本身,则将内存区块P3调小,如果内存区块P3的实际使用大小接近于内存区块P4的大小,则将内存区块P4调大,使得调整后的内存区块大小更接近实际需求,降低破碎率,更有效地利用内存。具体而言,第二调整模块203先计算O4=((S3*(1-F3%)/S4)-1)*100,其中,S3和S4代表内存区块P3和P4中每个内存子区块的大小,F3代表内存区块P3的平均破碎率。
如果F3<O4(即内存区块P3的实际使用大小接近于P3本身),则第二调整模块203将内存区块P3调小D%,内存区块P3的内存子区块的数目不变,剩余部分记为R2(参见图7a);如果F3≥O4(即内存区块P3的实际使用大小接近于内存区块P4的大小),则第二调整模块203将内存区块P4调大D%,内存区块P4的内存子区块的数目减少,剩余部分记为R2(参见图7b)。在其它实施例中,为符合实际需要,可以限制最大的内存区块不做调小的动作。具体过程参阅图3中步骤S47所述。在本实施例中,D%为一个预设值,在其它实施例中,D%值的大小可以根据内存区块的大小动态调整。
所述组合模块204,用于将第一调整模块202和第二调整模块203中调整后剩余的部分R1和R2组合成数个P1区块,剩余部分记为R3,R3可于下一次调整内存区块的配置时被重复利用(参见图9)。在图9中,左边的R3代表上一次组合后的剩余部分,右边的R3代表本次组合完成后的剩余部分。
如图3所示,是本发明一种内存管理方法较佳实施例的流程图。
步骤S41,当移动装置启动时,初始化模块200初始化内存区块。
步骤S42,统计模块201统计内存区块的尖峰使用率及平均破碎率,同时记录统计次数T。
步骤S43,统计模块201判断该移动装置是否是第一次进行内存区块配置,如果是,执行步骤S45,如果不是,执行步骤S44。系统在第一次开机之时,内存区块是以预设的方式进行管理。随后,统计模块201统计内存区块的实际使用状况(包括尖峰使用率及平均破碎率),统计次数累积到预设的统计次数T1后,开始调整内存区块的配置。之后每多统计T2(T1≥T2)次后,调整一次内存区块的配置,并取最近的T1数目作为计算尖峰使用率及平均破碎率的基础。例如,T1=5,T2=3,则统计次数达到5次后,开始调整内存区块的配置,统计次数达到8(5+3)次后,再次调整内存区块的配置,并取第4、5、6、7、8次的统计数据作为计算尖峰使用率及平均破碎率的基础。当T1=T2时,该步骤也可以取消,直接判断是否T>T1或T>T2即可。
步骤S44,统计模块201判断是否T>T2,如果T>T2,执行步骤S46,否则,流程返回步骤S42,继续统计内存区块的尖峰使用率及平均破碎率。
步骤S45,统计模块201判断是否T>T1,如果T>T1,执行步骤S46,否则,流程返回步骤S42,继续统计内存区块的尖峰使用率及平均破碎率。
步骤S46,第一调整模块202重置统计次数T,并调整尖峰使用率最高与最低的内存区块P1、P2,将尖峰使用率最低的的内存区块P2转换成尖峰使用率最高的内存区块P1,具体流程参见图6的说明。如果尖峰使用率最高的内存区块P1是较大的内存区块,而尖峰使用率最低的内存区块P2是较小的内存区块,则第一调整模块202组合数个较小的内存区块P2成一个较大的内存区块P1,剩余部分记为R1(参见图5a);如果尖峰使用率最高的内存区块P1是较小的内存区块,而尖峰使用率最低的内存区块P2是较大的内存区块,则第一调整模块202分解较大的内存区块变P2成为数个较小的内存区块P1,剩余部分记为R1(参见图5b)。在本实施例中,如果内存区块P1和P2的尖峰使用率都大于或等于第一尖峰使用率Ua,则不执行此步骤。
步骤S47,第二调整模块203调整尖峰使用率大于第二尖峰使用率Ub中平均破碎率最高的内存区块P3,及区块大小恰小于P3的内存区块P4,如果内存区块P3的实际使用大小接近于P3本身,则将内存区块P3调小,如果内存区块P3的实际使用大小接近于内存区块P4的大小,则将内存区块P4调大,具体流程参见图8的说明。具体而言,第二调整模块203先计算O4=((S3*(1-F3%)/S4)-1)*100。其中,S3和S4代表内存区块P3和P4中每个内存子区块的大小,F3代表内存区块P3的平均破碎率。如果F3<O4(即内存区块P3的实际使用大小接近于P3本身),则第二调整模块203将内存区块P3调小D%,内存区块P3的内存子区块的数目不变,剩余部分记为R2(参见图7a);如果F3≥O4(即内存区块P3的实际使用大小接近于P4),则第二调整模块203将内存区块P4调大D%,内存区块P4的内存子区块的数目减少,剩余部分记为R2(参见图7b)。在其它实施例中,为符合实际需要,可以限制最大的内存区块不做调小的动作。
步骤S48,组合模块204将步骤S46和步骤S47中调整后剩余的部分R1和R2组合成数个P1区块,剩余部分记为R3,R3可于下一次调整内存区块的配置时被重复利用(参见图9)。
如图6所示,是图4中步骤S46的具体流程图。步骤S50,第一调整模块202找出尖峰使用率最高与最低的内存区块P1和P2。
步骤S51,第一调整模块202判断内存区块P2的尖峰使用率是否小于第一尖峰使用率Ua。如果P2的尖峰使用率小于Ua,执行步骤S52,如果P2的尖峰使用率大于或等于Ua,则执行步骤S47。
步骤S52,第一调整模块202判断内存区块P1中一个内存子区块的大小S1是否大于内存区块P2中一个内存子区块的大小S2。如果S1>S2,执行步骤S53,如果S1≤S2,则执行步骤S55。
步骤S53,第一调整模块202判断是否符合条件1,条件1为:N2-(S1/S2)>N2*U2(即内存区块P2调整后的子区块数目大于调整前的实际使用数目),并且N2-(S1/S2)>N0(即内存区块P2调整后的子区块数目大于预设的最少额定数目)。如果符合条件1,执行步骤S54,如果不符合条件1,则执行步骤S57。其中,N2代表内存区块P2调整前的子区块数目,U2代表内存区块P2实际统计出的尖峰使用率,N0代表内存子区块的最少额定数目。
步骤S54,第一调整模块202组合数个内存区块P2成为一个内存区块P1,剩余部分记为R1,然后,流程转到步骤S47。
步骤S55,第一调整模块202判断是否符合条件2,条件2为:N2-1>N2*U2(即内存区块P2调整后的子区块数目大于调整前的实际使用数目),并且N2-1>N0(即内存区块P2调整后的子区块数目大于预设的最少额定数目)。如果符合条件2,执行步骤S56,如果不符合条件2,则流程转到步骤S47。
步骤S56,第一调整模块202分解一个内存区块P2成为数个内存区块P1,剩余部分记为R1,然后流程转到步骤S47。
步骤S57,第一调整模块202判断是否符合条件:(N2-N2*U2)<(N2-N0),如果符合该条件,执行步骤S59,如果不符合该条件,则执行步骤S58。
步骤S58,第一调整模块202以(N2-N0)*S2的数值记录R1的大小,然后流程转到步骤S47。
步骤S59,第一调整模块202以(N2-N2*U2)*S2的数值记录R1的大小,然后流程转到步骤S47。
如图8所示,是图4中步骤S47的具体流程图。步骤S60,第二调整模块203找出尖峰使用率大于第二尖峰使用率U2中平均破碎率最高的内存区块P3,及区块大小恰小于P3的内存区块P4。
步骤S61,第二调整模块203判断是否符合条件3,条件3为:F3<((S3*(1-F3%)/S4)-1)*100(即内存区块P3的实际使用大小接近于P3本身。如果符合条件3,执行步骤S62,如果不符合条件3,则执行步骤S64。其中,F3代表内存区块P3的平均破碎率(破碎率总和/统计次数)。
步骤S62,第二调整模块203判断是否符合条件5,条件5为:S3*(1-D%)>S4(即内存区块P3调整后的子区块大小大于内存区块P4的子区块大小)。如果符合条件5,执行步骤S63,如果不符合条件5,则流程转到步骤S48。其中,D%为预设的调整比例。
步骤S63,第二调整模块203将内存区块P3调小D%,内存子区块的数目不变,剩余部分记为R2,然后,流程转到步骤S48。
步骤S64,第二调整模块203判断是否符合条件4,条件4为:
(N4*S4)/(S4*(1+D%))>N4*U4(即内存区块P4调整后的子区块数目大于调整前的实际使用数目),并且(N4*S4)/(S4*(1+D%))>N0(即内存区块P4调整后的子区块数目大于预设的最少额定数目)。如果符合条件4,执行步骤S65,如果不符合条件4,则执行步骤S67。其中,N4代表内存区块P4调整前的子区块数目,U4代表内存区块P4实际统计出的尖峰使用率。
步骤S65,第二调整模块203判断是否符合条件6,条件6为:调整后S4<S3。如果符合条件6,执行步骤S66,如果不符合条件6,则流程转到步骤S48。
步骤S66,第二调整模块203将内存区块P4调大D%,内存子区块的数目减少,剩余部分记为R2,然后,流程转到步骤S48。
步骤S67,第二调整模块203判断是否符合条件:(N4-N4*U4)<(N4-N0),如果符合该条件,执行步骤S68,如果不符合该条件,则执行步骤S70。
步骤S68,第二调整模块203判断是否符合条件6,如果符合条件6,执行步骤S69,如果不符合条件6,则流程转到步骤S48。
步骤S69,第二调整模块203将内存区块P4调大(N4-N4*U4)*S4/(N4*U4),且数目为N4*U4,剩余部分记为R2,然后,流程转到步骤S48。其中,N4代表内存区块P4调整前的子区块数目,U4代表内存区块P4实际统计出的尖峰使用率。
步骤S70,第二调整模块203判断是否符合条件6,如果符合条件6,执行步骤S71,如果不符合条件6,则流程转到步骤S48。
步骤S71,第二调整模块203将内存区块P4调大(N4-N0)*S4/N0,且数目为N0,剩余部分记为R2,然后,流程转到步骤S48。
本实施例中的移动装置可以为手机、数码相机或PDA(Personal Digital Assistant,个人数字助理)等具有资料处理功能的电子设备。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (10)

1.一种内存管理方法,应用于移动装置中,其特征在于,该方法包括如下步骤:
当移动装置启动时,初始化内存区块,并开始统计内存区块的尖峰使用率及平均破碎率;
每隔设定的间隔次数,重新调整一次内存区块的配置,包括:
调整尖峰使用率最高与最低的内存区块P1、P2,将尖峰使用率最低的的内存区块P2转换成尖峰使用率最高的内存区块P1,剩余部分记为R1;
调整尖峰使用率大于预设的尖峰使用率中平均破碎率最高的内存区块P3,及区块大小恰小于P3的内存区块P4,当P3的实际使用大小接近于P3本身时,将P3调小,当P3的实际使用大小接近于P4的大小时,将P4调大,剩余部分记为R2;及
将调整后剩余的部分R1和R2组合成数个P1区块,剩余部分记为R3,R3可于下一次调整内存区块的配置时被重复利用。
2.如权利要求1所述的内存管理方法,其特征在于,所述步骤调整尖峰使用率最高与最低的内存区块P1、P2包括:
如果尖峰使用率最高的内存区块P1是较大的内存区块,而尖峰使用率最低的内存区块P2是较小的内存区块,则组合数个较小的内存区块P2成一个较大的内存区块P1;及
如果尖峰使用率最高的内存区块P1是较小的内存区块,而尖峰使用率最低的内存区块P2是较大的内存区块,则分解较大的内存区块变P2成为数个较小的内存区块P1。
3.如权利要求2所述的内存管理方法,其特征在于,所述较大的内存区块是指内存子区块较大的内存区块。
4.如权利要求1所述的内存管理方法,其特征在于,所述步骤调整尖峰使用率大于预设的尖峰使用率中、平均破碎率最高的内存区块P3,及区块大小恰小于P3的内存区块P4包括:
计算O4=((S3*(1-F3%)/S4)-1)*100,其中,S3和S4代表内存区块P3和P4中每个内存子区块的大小,F3代表内存区块P3的平均破碎率;
如果F3<O4,则将内存区块P3调小D%,内存区块P3的内存子区块的数目不变,其中,D%为预设值;
如果F3≥O4,则将内存区块P4调大D%,内存区块P4的内存子区块的数目减少。
5.如权利要求4所述的内存管理方法,其特征在于,最大的内存区块不做调小的动作。
6.一种内存管理系统,应用于移动装置中,其特征在于,所述系统包括:
初始化模块,用于当移动装置启动时,初始化内存区块;
统计模块,用于统计内存区块的尖峰使用率及平均破碎率,同时记录统计次数T;
所述统计模块,还用于在每次记录统计次数T时,判断该移动装置是否是第一次进行内存区块配置,及当第一次进行内存区块配置时判断是否T>T1,或者当不是第一次进行内存区块配置时判断是否T>T2,其中,T1和T2为预设值,且T1≥T2;
第一调整模块,用于当T>T1或T>T2时,重置统计次数T,并调整尖峰使用率最高与最低的内存区块P1、P2,将尖峰使用率最低的的内存区块P2转换成尖峰使用率最高的内存区块P1;
第二调整模块,用于调整尖峰使用率大于预设的尖峰使用率中平均破碎率最高的内存区块P3,及区块大小恰小于P3的内存区块P4,当P3的实际使用大小接近于P3本身时,将P3调小,当P3的实际使用大小接近于P4的大小时,将P4调大;及
组合模块,用于将第一调整模块和第二调整模块中调整后剩余的部分R1和R2组合成数个P1区块,剩余部分记为R3,R3可于下一次调整内存区块的配置时被重复利用。
7.如权利要求6所述的内存管理系统,其特征在于,所述第一调整模块调整尖峰使用率最高与最低的内存区块P1、P2包括:
如果尖峰使用率最高的内存区块P1是较大的内存区块,而尖峰使用率最低的内存区块P2是较小的内存区块,则组合数个较小的内存区块P2成一个较大的内存区块P1;及
如果尖峰使用率最高的内存区块P1是较小的内存区块,而尖峰使用率最低的内存区块P2是较大的内存区块,则分解较大的内存区块变P2成为数个较小的内存区块P1。
8.如权利要求7所述的内存管理系统,其特征在于,所述较大的内存区块是指内存子区块较大的内存区块。
9.如权利要求6所述的内存管理系统,其特征在于,所述第二调整模块调整尖峰使用率大于预设的尖峰使用率中、平均破碎率最高的内存区块P3,及区块大小恰小于P3的内存区块P4包括:
计算O4=((S3*(1-F3%)/S4)-1)*100,其中,S3和S4代表内存区块P3和P4中每个内存子区块的大小,F3代表内存区块P3的平均破碎率;
如果F3<O4,则将内存区块P3调小D%,内存区块P3的内存子区块的数目不变,其中,D%为预设值;
如果F3≥O4,则将内存区块P4调大D%,内存区块P4的内存子区块的数目减少。
10.如权利要求6所述的内存管理系统,其特征在于,所述移动装置为手机、数码相机或PDA。
CN2008103057932A 2008-11-27 2008-11-27 内存管理系统及方法 Expired - Fee Related CN101751342B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2008103057932A CN101751342B (zh) 2008-11-27 2008-11-27 内存管理系统及方法
US12/479,831 US8024543B2 (en) 2008-11-27 2009-06-07 System and method for managing a memory system of a mobile device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008103057932A CN101751342B (zh) 2008-11-27 2008-11-27 内存管理系统及方法

Publications (2)

Publication Number Publication Date
CN101751342A true CN101751342A (zh) 2010-06-23
CN101751342B CN101751342B (zh) 2012-06-13

Family

ID=42197443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008103057932A Expired - Fee Related CN101751342B (zh) 2008-11-27 2008-11-27 内存管理系统及方法

Country Status (2)

Country Link
US (1) US8024543B2 (zh)
CN (1) CN101751342B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104778125A (zh) * 2015-04-03 2015-07-15 无锡天脉聚源传媒科技有限公司 一种内存管理方法及系统
CN111078408A (zh) * 2019-12-10 2020-04-28 Oppo(重庆)智能科技有限公司 内存分配方法、装置、存储介质及电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104932988A (zh) * 2015-06-30 2015-09-23 北京汉柏科技有限公司 一种优化硬盘使用的方法和系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6757802B2 (en) * 2001-04-03 2004-06-29 P-Cube Ltd. Method for memory heap and buddy system management for service aware networks
CA2426619A1 (en) * 2003-04-25 2004-10-25 Ibm Canada Limited - Ibm Canada Limitee Defensive heap memory management
TWI254205B (en) * 2004-11-01 2006-05-01 Benq Corp Bidirectional data storing method
US7500077B2 (en) * 2005-12-09 2009-03-03 International Business Machines Corporation Use of region-oriented memory profiling to detect heap fragmentation and sparse memory utilization
CN101122883A (zh) * 2006-08-09 2008-02-13 中兴通讯股份有限公司 一种避免内存碎片化的内存分配方法
US7596656B2 (en) * 2006-09-28 2009-09-29 Sandisk Corporation Memory cards with end of life recovery and resizing
US8285757B2 (en) * 2007-01-31 2012-10-09 Agency For Science, Technology And Research File system for a storage device, methods of allocating storage, searching data and optimising performance of a storage device file system
CN101075214A (zh) * 2007-06-28 2007-11-21 腾讯科技(深圳)有限公司 一种内存管理方法和内存管理系统
US8291192B2 (en) * 2008-10-30 2012-10-16 Kyocera Document Solutions, Inc. Memory management system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104778125A (zh) * 2015-04-03 2015-07-15 无锡天脉聚源传媒科技有限公司 一种内存管理方法及系统
CN104778125B (zh) * 2015-04-03 2017-09-15 无锡天脉聚源传媒科技有限公司 一种内存管理方法及系统
CN111078408A (zh) * 2019-12-10 2020-04-28 Oppo(重庆)智能科技有限公司 内存分配方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
US20100131735A1 (en) 2010-05-27
US8024543B2 (en) 2011-09-20
CN101751342B (zh) 2012-06-13

Similar Documents

Publication Publication Date Title
CN102023973A (zh) 一种应用缓存服务器与数据库同步的方法、装置和系统
CN107357405B (zh) 功耗控制方法及相关设备
CN111245732B (zh) 一种流量控制方法、装置及设备
CN111767142B (zh) 服务节点的限流阈值设置方法和服务端设备
CN104731799A (zh) 内存数据库管理装置
CN111538678A (zh) 数据缓冲方法、设备及计算机可读存储介质
CN101751342B (zh) 内存管理系统及方法
CN101937397B (zh) 移动智能终端及其内存动态管理方法
TW201732496A (zh) 用於經由記憶體時延控制來提供功率效率的系統和方法
CN110069215A (zh) 一种基于块存储的动态调整存储单元的方法及装置
CN100366022C (zh) 一种缓存分配方法及装置
CN104184765A (zh) 一种请求控制方法及客户端装置和服务器端装置
CN108415766B (zh) 一种渲染任务动态调度方法
US7689798B2 (en) Method and device for determining size of memory frames
CN104731564A (zh) 系统接口调用记录的生成方法和装置
CN102143206A (zh) 集群存储系统中存储池的调整方法、装置及系统
CN116932220A (zh) 服务集群的资源调整方法、装置、电子设备和存储介质
CN110109865A (zh) 一种数据存储方法、装置、设备及可读存储介质
CN106919450A (zh) 资源调整方法和装置
CN113821339B (zh) 一种用于idc数据中心机房的能耗监控方法与装置
JP2018502402A (ja) システムファームウェアのプログラミングスピードを速める方法
JP2019121333A (ja) データダイナミックマイグレーション方法とデータダイナミックマイグレーション装置
CN112751896A (zh) 资源部署方法、资源部署装置以及存储介质
CN113468442A (zh) 资源位流量的分发方法、计算设备及计算机存储介质
CA2773116C (en) Service deactivation method and device thereof

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120613

Termination date: 20201127

CF01 Termination of patent right due to non-payment of annual fee