[发明专利]面向实时系统的内存算法有效

专利信息
申请号: 201210263549.0 申请日: 2012-07-28
公开(公告)号: CN102880555A 公开(公告)日: 2013-01-16
发明(设计)人: 吴英杰;王一蕾;夏李波;唐文斌;许孝盛 申请(专利权)人: 福州大学
主分类号: G06F12/06 分类号: G06F12/06
代理公司: 福州元创专利商标代理有限公司 35100 代理人: 蔡学俊
地址: 350108 福建省福州市*** 国省代码: 福建;35
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 面向 实时 系统 内存 算法
【说明书】:

技术领域

发明涉及一种面向实时系统的内存算法。

背景技术

在实时操作系统中,关于动态内存分配算法与回收算法,研究热点主要集中在如何提高算法的可预测性、提高内存利用率及减少内存碎片方面。传统的按需分配算法使用链表搜索使内存达到了较高的利用率,但是由于其时间效率                                                ,时间上存在着不可预测性。伙伴算法是一种“分而治之”的分配算法。伙伴概念的提出使系统的内存分配时间效率达到了,完全符合可预测性的要求,但是由于伙伴的存在导致了内存利用率并不高。 

一般而言,分配算法的基本策略可分为:

1、按序分配(Sequential Fit)。也称顺序查找法,包括最先匹配,最佳匹配,最差匹配等。

2、分段空闲链表(Segregated Free Lists)。包括简单分段存储和分段匹配。

3、伙伴系统(Buddy System)。包括最常见的二分伙伴系统(Bianry Buddies),还有weighted,Fibonacci buddies和Double buddies。

4、索引匹配(Indexed Fit)。它使用结构索引来执行一个想要的匹配策略。

5、位图匹配(Bitmap Fit)。一个特殊的索引匹配。

发明内容

本发明的目的在于提供一种面向实时系统的内存算法,该算法有利于提高内存分配时间效率。

本发明采用的技术方案是:一种面向实时系统的内存算法,采用红黑树数据结构用于快速查找所需的内存块;该算法定义以下四类红黑树:

占用红黑树:用于存放被占用的内存块信息,同时将该内存块的内存ID作为比较规则,当程序释放内存时迅速根据内存ID定位到该内存块,释放内存;

空闲红黑树数组:定义到共18棵红黑树,分别对应内存大小标记为1,2,3,4,6,…,,,…,512单位的内存块,每组红黑树以地址为比较规则,存放大小大于等于该组标记但小于下一组标记的内存块信息;

向后合并红黑树:用于在内存回收过程中快速查找到能与释放内存块向后合并的内存块;当有内存释放时,将与释放内存块相邻的下一内存块的首地址作为比较规则,迅速查找出可合并块,并定位到空闲红黑树数组的相应位置进行相关内存合并操作;

向前合并红黑树:用于在内存回收过程中快速查找到能与释放内存块向前合并的内存块;当有内存释放时,将与释放内存块相邻的上一内存块的尾地址作为比较规则,迅速查找出可合并块,并定位到空闲红黑树数组的相应位置进行相关内存合并操作;

当有一个大小为d的内存申请时,按如下方法进行内存分配:

步骤1.1:通过查询的大小域,定位到第一个满足需求d的组,即;从k链表开始,为后面的每一个链表的统计值加1,表明从k链表开始的所有后续链表里的内存块都有能力提供需求为d的内存;由于及后面各组红黑树内的任意一个内存块均大于等于d,可选取该列表中的第一块内存;如果的链表为空,则该内存区间不存在空闲的内存块,继续向后面的红黑树寻找直至找到存在空闲块的组,获取该组的第一块;如果后续组别中均不存在空闲块,返回第一个满足需求d的组的前一个组,该组里的内存块大小在区间内,可能存在满足需求的块;

步骤1.2:获取满足需求的空闲内存块,如果的大小刚好满足需求d,即,该块将被完全占用;如果的大小超出需求d,则判断是否需要分割,如果被分割,将产生大小为的剩余块,判断剩余块大小是否小于限定值,是则将直接完全分配而不做分割,否则将分割,插入相应的空闲组中;

步骤1.3:维护相关红黑树:将满足需求的空闲内存块从、、中删除,并加入;如果有剩余块产生,根据剩余块的大小,加入相应的组内,同时以的首尾地址为比较规则,分别加入和;

当有一个ID为id、大小为d的内存块需要释放时,按如下方法进行内存释放:

步骤2.1:在中查询ID为id的内存块,根据该块的首地址和末尾地址查询和,判断是否存在可与合并的向前合并块、向后合并块或其中之一,如果存在,将合并为新的大内存块,然后插入相关红黑树,如果不存在,则直接将插入相关红黑树;

步骤2.2:更新红黑树:将从中删除;如果存在和或其中之一,将、或其中之一从相应、、中删除,并将合并后的新的大内存块加入相应的、、,如果不存在,则直接将加入相应的、、。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福州大学,未经福州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210263549.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top