利索能及
我要发布
收藏
专利号: 2015103324420
申请人: 重庆邮电大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-01-15
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.嵌入式系统静态内存池的分配方法,其特征在于:该分配方法为递推过程,具体如下:A.利用嵌入式操作系统统计,当前系统中静态内存块个数及每个静态内存块大小,同时初始化内存池个数M;

B.计算内存池的所有可能边界值;

C.计算第1个内存池的边界值;

D.将所述第1个内存池裂变为两个,并确定第2个内存池的边界值;

E.将D中得到的所述两个内存池裂变为三个,并确定第3个内存池的边界值;

F.逐次进行上述内存池裂变过程,当总内存池个数为M时,则静态内存池分配过程结束。

2.根据权利要求1所述嵌入式系统静态内存池的分配方法,其特征在于:B中所述内存池的所有可能边界值的计算,具体为:令内存池分配的最小单位值为S;则内存池的最小边界值为 其中 表示向下取整,其最大边界值为 其中表示向上取整;在内存池的最小和最大边界值之间,以步长S为间隔的所有内存值为内存池的所有可能边界值。

3.根据权利要求2所述嵌入式系统静态内存池的分配方法,其特征在于:所述S的取值范围为字或字的整数倍。

4.根据权利要求1所述嵌入式系统静态内存池的分配方法,其特征在于:所述第1个内存池的边界值为最大的内存池的边界值,即所有静态内存块都小于或等于所述内存池的最大边界值。

5.根据权利要求1所述嵌入式系统静态内存池的分配方法,其特征在于:D所述的第一次裂变,具体为:在最小边界值与最大边界值之间,以步长为S,不包括最大边界值的所有边界值中,依次取1个边界值作为新边界值,将小于新边界值的所有静态内存块作为第2个内存池的最大边界值,将大于新边界值并且小于或等于最大边界值的所有静态内存块作为第1个内存池的最大边界值。

6.根据权利要求1所述嵌入式系统静态内存池的分配方法,其特征在于:E所述两个内存池裂变为三个,具体为:以步长为S,依次取1个边界值作为新边界值,根据新边界值小于第1个内存池的最大边界值,还是大于第1个内存池的最大边界值并且小于或等于第2个内存池的最大边界值,分为两种情况;情况Ⅰ中,将第1个内存池由新边界值裂变为2个内存池,将小于或等于此时3个内存池最大边界的静态内存块与各自内存池最大边界值之差的绝对值并累计,得到总内存碎片值;情况Ⅱ中,将第2个内存池由新边界值裂变为2个内存池,将小于或等于此时3个内存池最大边界的静态内存块与各自内存池最大边界值之差的绝对值并累计,得到总内存碎片值;将情况Ⅰ和Ⅱ中,所有新边界值取值范围得到的总内存池碎片值最小所在新边界值作为第3个内存池的最大边界值。

7.根据权利要求1到6任一项所述嵌入式系统静态内存池的分配方法,其特征在于:在M一定情况下使总内存池更好,可以采取下述过程:

a、初始化内存池个数为M1,使其满足M1>M;

b、按照所述B、C、D、E的方式使内存池裂变后其个数为M1,并得到其各内存池上边界值Y(n1),Y(n2),…,Y(nM1);

c、依次将内存池上边界值Y(n1),Y(n2),…,Y(nM1-1)取消,分别根据新的M1-1个边界值Y(n1),Y(n2),…,Y(nM1-1)对静态内存块X(i),i=1:I划分,得到为各内存池的单块内存,即X(i),i=1:I1,i=1:I2,…,i=1:IM1-1;则内存池上边界取消后总内存碎片C(n)为:其中n=n1:nM1-1;取C(n)中最小值n所对应的内存池上边界值,将其取消,从而将M1个内存池减少为M1-1个内存池;

d、依次进行上述步骤c的内存池的取消过程,每次取消1个内存池,直到内存池个数为M时,终止内存池的取消过程,即最终完成M个静态内存池的分配过程。

8.根据权利要求1到6任一项所述嵌入式系统静态内存池的分配方法,其特征在于:所述步骤F后,还可包括将静态内存块X(i)按照从小到大顺序排序,使满足X(i)≤X(i+1),再根据各内存池的上边界值,对X(i)进行各内存池划分。