[发明专利]一种内存分配方法及装置有效
申请号: | 201010114512.2 | 申请日: | 2010-02-12 |
公开(公告)号: | CN102156675A | 公开(公告)日: | 2011-08-17 |
发明(设计)人: | 王继刚;李翌 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 李健;龙洪 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 分配 方法 装置 | ||
技术领域
本发明涉及嵌入式系统,尤其涉及一种内存分配方法及装置。
背景技术
随着后PC(个人电脑)时代的到来,嵌入式系统已日益广泛地应用于航空航天、国防通讯、交通运输、核电能源和医疗卫生等诸多安全关键实时系统(Safety Critical Real Time System,SCRTS),上述系统之所以称为SCRTS,是因为它们一旦失效将会导致生命财产的重大损失以及对环境的严重破坏。
内存管理是嵌入式系统的一个非常重要的问题,如果处理不好内存资源的分配,系统的可靠性将会大大降低,导致关键应用的中止、系统的崩溃,甚至引发灾难性事故,这当然是人们不愿看到的结果。
现有技术中,对嵌入式系统的内存管理通常采用分块方法和虚拟内存机制,实现地对系统内存资源进行分配与管理。
分块的内存管理方法思想比较简单,即将内存资源分成若干块,当需要内存资源时,获取一个资源块,使用完毕之后再将资源块释放,归还给系统。该方法存在如何确定资源块大小的问题,如果资源块过大,则利用率下降,如果资源块过小,则无法满足分配的需求。针对这个问题,提出了块资源池的思想,每个池中的块大小都不同,应用提出内存资源需求后,系统会根据需求在合适的池中获取资源块;应用结束后,再将资源块释放到对应的池中,分块的内存管理方法虽然效率较高,但由于内存资源有限,在系统满负荷运行时,很容易出现系统内存不足,导致一些关键应用无法运行,造成严重后果。
虚拟内存技术是一种有效的内存管理方法,通过虚拟内存技术可以将逻辑内存和物理内存分开,程序运行在逻辑内存空间,对于每个任务而言都能看到一个很大的内存空间。
图1为典型的虚拟内存分配方式,整个系统内存空间分为物理地址空间、虚拟地址空间和交换地址空间三部分,嵌入式系统中一般不需要交换地址空间,物理地址空间和虚拟地址空间分别由操作系统的物理地址管理模块和虚拟地址管理模块管理,交换地址空间由交换空间管理模块管理,虚拟内存和实际的物理内存通过页表进行动态映射,页面管理模块对页面进行管理,这使得应用可以申请比实际内存更大的内存资源运行。物理地址管理模块、虚拟地址管理模块和页表管理模块还与页面异常管理模块连接,实现异常管理。
但是,由于虚拟内存技术涉及到页表的映射查找,因此实现效率比较低下,系统的实时性得不到保障,这对于安全关键实时系统而言也是致命的。同时,虚拟内存技术往往需要硬件加速,这个硬件加速单元就是MMU(memory management unit,内存管理单元),其本质上就是一个lookup table(查找表),这要求采用虚拟内存技术的嵌入式系统都需要CPU集成MMU,否则,该套机制很难实现。
针对目前嵌入式系统内存管理所存在的问题,国内外的研究人员开发出了一些更完善的内存管理机制。在目前公开的关于嵌入式内存管理的文献中,绝大多数都是基于分块方法提出的改进优化手段,目的在于减少大量内存碎片产生,减少内存浪费,保证应用程序的需求。
例如,中国专利申请公开说明书CN200810056891.7的“嵌入式系统的内存管理方法及装置”;中国专利申请公开说明书200710121449.3的“嵌入式系统内存管理的方法”;中国专利申请公开说明书200410087169.1的“一种分配内存的方法”等,上述方案中均没有提及由于内存不足导致关键应用无法运行的解决方法。中国专利申请公开说明书200410041459.2的“一种嵌入式实时操作系统中内存分配的方法”,提出了动态调整内存分配策略,当内存资源分配完后,通过强制释放低优先级应用的内存,以保证高优先级应用的运行,然而,在目前应用交互越来越密切的趋势下,该方案很可能会导致整个系统的不稳定。
发明内容
本发明要解决的技术问题是提供一种内存分配方法及装置,解决嵌入式系统中由于内存不足导致应用无法运行的问题,实现在系统内存用尽后,为应用提供内存资源。
为解决上述技术问题,本发明的一种内存分配方法,包括:
将内存空间划分为内存普通区和内存保留区;
当接收到应用的内存申请请求后,判断内存普通区中的内存量是否达到应用申请的内存量,如果未达到,则判断应用是否为紧急应用,如果该应用为紧急应用,则从内存保留区中为该紧急应用分配内存资源。
进一步地,从内存保留区中为该紧急应用分配内存资源的方法包括:
从内存保留区的空闲内存链表中查找一个容量大于紧急应用所申请内存量的空闲内存块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010114512.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:油孔孔口设有倒角的液压转向器阀套
- 下一篇:车载型停车篷