[发明专利]内存管理方法无效
申请号: | 200910079057.4 | 申请日: | 2009-03-05 |
公开(公告)号: | CN101499034A | 公开(公告)日: | 2009-08-05 |
发明(设计)人: | 王世初;陈绍新 | 申请(专利权)人: | 北京中星微电子有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 上海和跃知识产权代理事务所 | 代理人: | 李崧岩 |
地址: | 100083北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 管理 方法 | ||
技术领域
本发明涉及一种内存管理方法,尤其是一种可用于嵌入式系统使用的内存管理方法。
背景技术
随着计算机微处理器的技术发展以及计算机网络技术的发展,使得嵌入式系统的功能越来越强大同时应用范围越来越广泛。而基于网络的视频监控系统为了提高其自身的系统性能,便使用了嵌入式系统于其中。
进一步的,嵌入式应用系统为了更好的运行其设定功能,其对内存管理就有以下要求。
实时性。从实时性的角度出发,要求内存分配过程要尽可能地快。因此,在嵌入式系统中,不会采用通用操作系统的一些复杂而完善的内存分配策略,一般没有段页式的虚存管理机制。而是采用简单、快速的内存分配方案,其分配方案也因程序对实时性的要求而异。
可靠性。嵌入式系统应用的环境千变万化,在有些特定情况下,对系统的可靠性要求极高,内存分配的请求必须得到满足,如果分配失败则可能会带来灾难性的后果。
高效性。内存分配要尽可能地减少浪费,不能为了保证满足所有的内存分配请求而将内存配置的很大。这是因为,一方面,嵌入式系统对成本的要求使得内存只是它的一种很有限的资源;另一方面,即使不考虑成本的因素,系统硬件环境有限的空间和有限的板面积决定了可配置的内存容量是很有限的。
因此,业界亟待提出一种新的用于嵌入式系统的内存管理方法,使得其可有效的实现上述要求。
发明内容
有鉴于此,本发明的一个目的在于提供一种内存管理方法,其可被用于嵌入式系统使用。该方法可以在嵌入式系统的程序启动时分配并初始化程序要用到的内存空间,通过相应的算法可以高效地完成内存的分配、回收工作。
为了达到上述目的,本发明的一个实施方式提供了一种内存管理方法,其中涉及的内存区域被划分为若干个内存分区,每个内存分区被划分为若干个单元内存块,每个内存分区内的单元内存块的容量相同,而各内存分区中的单元内存块的容量不同。该方法包括有以下步骤。接收包括有内存需求容量的内存分配请求。找到其内的单元内存块的容量大于该内存需求容量且最小的内存分区。在该找到的内存分区内找到使用状态为未使用的单元内存块,并将该找到的未使用的单元内存块分配给此次内存分配请求,将被分配出的单元内存块的使用状态修改为已使用。接收用于释放指定单元内存块的内存释放请求。找到该需要释放指定单元内存块所在的内存分区。在该找到的内存分区内找到该需要释放的指定单元内存块,释放该指定单元内存块,将被释放的单元内存块的使用状态修改为未使用。
进一步的,在不同实施方式中,各内存分区都有各自的内存管理参数,其包括可用内存块数量索引、未使用内存块索引、释放内存块索引以及释放内存块存储栈。其中可用内存块数量索引用于表明本内存分区内使用状态为未使用的可用于分配的单元内存块数量。未使用内存块索引则是用于存储本内存分区内未使用的单元内存块编号。释放内存块索引以及释放内存块存储栈则都是用于存储本内存分区内释放的单元内存块编号,其中释放内存块存储栈则是在释放内存块索引存储了一个释放单元内存块之后,再进行其它的释放单元内存块编号的存储。
进一步的,在不同实施方式中,在步骤B后,根据找到的内存分区的可用内存块数量索引判断找到的内存分区内是否还有可用单元内存块,如果有,则进入步骤C;如果否,则找到相邻的下一个内存分区,并再次根据找到的内存分区的可用内存块数量索引判断该内存分区内是否有可用单元内存块,如果有,则进入步骤C;否则继续重复上述步骤直到找到具有可用单元内存块的内存分区并进入步骤C;
步骤C包括:查看找到的内存分区的释放内存块索引是否为空,如果不为空,则将其内存储的释放单元内存块编号对应的单元内存块分配给该内存分配请求,将分配出的单元内存块的状态修改为使用,查看释放内存块存储栈内是否存储有释放单元内存块编号,如果有,则将释放内存块存储栈中存储的一个释放单元内存块的编号赋值给释放内存块索引;如果没有,则将释放内存块索引的值修改为空值,并将分区内可用内存块数量索引的数值减1。如果释放内存块索引为空值,则将未使用内存块索引内存储的从未使用的单元内存块的编号所对应的单元内存块分配给内存分配请求,然后将分区内下一个从未使用的单元内存块编号赋值给未使用内存块索引,将被分配出的单元内存块的使用状态修改为已使用。最后将可用内存块数量索引的数值减1。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京中星微电子有限公司,未经北京中星微电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910079057.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于光学用途的挠性材料
- 下一篇:基于共同元素的用于过滤和组织条目的系统