[发明专利]基于TLSF的嵌入式实时系统的内存管理方法、系统及装置有效
申请号: | 201410078460.6 | 申请日: | 2014-03-05 |
公开(公告)号: | CN103885888B | 公开(公告)日: | 2017-05-24 |
发明(设计)人: | 黄少锐;夏锋 | 申请(专利权)人: | 珠海全志科技股份有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 广州嘉权专利商标事务所有限公司44205 | 代理人: | 陈国荣 |
地址: | 519000 广东省珠海市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 tlsf 嵌入式 实时 系统 内存 管理 方法 装置 | ||
技术领域
本发明涉及内存动态管理,特别是一种基于TLSF的嵌入式实时系统的内存管理方法、系统及装置。
背景技术
嵌入式实时系统在实时环境中,对时间有着严格的要求,因此,嵌入式系统对动态内存的管理具有非常明确的要求,其中包括有限的内存分配与释放的响应时间和高效的内存利用率。
目前对实时系统来说,性能最好的动态内存管理方案莫过于TLSF(two level segregate fit)算法。但tlsf 算法在进行内存分配时切割空余内存块步骤的时间成本比较高,而且对于内存的释放,采用的是释放即回收的策略,对于那些出现近似大小的内存频繁分配的场景,TLSF采用的释放即回收机制由于需要频繁的合并、分割和插入等操作,降低了系统性能。
实时系统中动态内存分配需要快的反应时间,tlsf(two level segregate fit)算法,结合了两级离散空闲列表和为位图匹配的方法,对内存分配的时间复杂度是O(1)。但它采用的释放即回收的内存合并机制并没有充分考虑近似大小内存块重复申请的应用场景。
在分配内存时,释放即合并机制可能会导致开销增大。例如,假设将释放的内存块memA有n个字节,与其相邻的空闲内存块可以共同合并成更大的内存块memB,假设memB有m个字节。若再次请求n个字节的内存块时,搜索包含n个字节大小的内存块区间,发现没有空余内存块,就会查找更大的内存块memC,并对该内存块进行切割同时将剩余部分重新插入空余内存块链表。这明显地增大了开销。
发明内容
为解决上述问题,本发明的目的在于提供一种基于TLSF的嵌入式实时系统的内存管理方法、系统及装置,及时判断所释放的内存是否需要合并,提高实时系统中内存的反应效率,降低反应时间,同时缩减内存开销。
本发明解决其问题所采用的技术方案是:
一种基于TLSF的嵌入式实时系统的内存管理方法,包括:
内存初始化的步骤,根据TLSF算法的数据结构组织从内存池中预设内存区间,并通过位图和链表管理小内存块与大内存块,所述小内存块和大内存块为根据预设参数划分的内存块;
参数设置的步骤,分别为每个小内存块和大内存块设置用于记录每个内存块使用次数的频率参数,并分别为各个内存区间设置空闲内存块的数目参数;
内存分配的步骤,根据申请的内存大小,向上调整到内存池中切割的内存块的大小,从链表中查找合适的内存块并更新链表,更新此内存块的频率参数,同时更新此内存块所属内存区间中空闲内存块的数目参数;
内存释放的步骤,根据需要释放的内存块的地址查找对应的内存块,之后,在释放此内存块的同时,根据此内存块的频率参数和此内存块所属内存区间的空闲内存块的数目参数,判断是否合并此内存块。
进一步,所述频率参数采用高、一般、低三种参数进行表示,所述各个内存区间的空闲内存块的数目参数采用多、一般、少三种参数进行表示。
进一步,所述使用频率采用的高、一般、低三种参数,依次对应大于等于5、大于等于2且小于5、小于2作为对应计算依据,所述述各个内存区间中空闲内存块的数目频率采用的多、一般、少三种参数,依次对应大于等于10、大于等于5小于10、小于5作为计算依据。
进一步,所述内存释放的步骤中,判断是否合并此内存块时,具体包括:
当此内存块的频率参数为低时,则直接合并此内存块;
当此内存块的频率参数为一般时,若对应的数目频率为多或一般,则合并此内存块,若对应的数目频率为少时,则不合并;
当此内存块的频率参数为高时,若对应的数目频率为多时,则合并此内存块,若对应的数目频率为一般或少时,则不合并。
一种基于TLSF的嵌入式实时系统的内存管理系统,包括:
内存初始化模块,根据TLSF算法的数据结构组织从内存池中预设内存区间,并通过位图和链表管理小内存块与大内存块,所述小内存块和大内存块为根据预设参数划分的内存块;
参数设置模块,分别为每个小内存块和大内存块设置用于记录每个内存块使用次数的频率参数,并分别为各个内存区间设置空闲内存块的数目参数;
内存分配模块,根据申请的内存大小,向上调整到内存池中切割的内存块的大小,从链表中查找合适的内存块并更新链表,更新此内存块的频率参数,同时更新此内存块所属内存区间中空闲内存块的数目参数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海全志科技股份有限公司,未经珠海全志科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410078460.6/2.html,转载请声明来源钻瓜专利网。