[发明专利]一种嵌入式操作系统的内存池分配方法有效
申请号: | 200610089365.1 | 申请日: | 2006-06-21 |
公开(公告)号: | CN101093455A | 公开(公告)日: | 2007-12-26 |
发明(设计)人: | 王泽民;徐立峰;曹刚 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京律诚同业知识产权代理有限公司 | 代理人: | 梁挥;徐金国 |
地址: | 518057广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 嵌入式 操作系统 内存 分配 方法 | ||
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所述的方法,其特征在于,还包括:在所述内存池的管理结构中记录内存块大小、数量以及有无后继的内存池的索引,在内存头中记录对应内存块的起始地址、占用标志以及有无比其大小还小的后继内存块标志。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610089365.1/1.html,转载请声明来源钻瓜专利网。