[发明专利]内存监控方法和装置无效
申请号: | 200910084008.X | 申请日: | 2009-05-12 |
公开(公告)号: | CN101561775A | 公开(公告)日: | 2009-10-21 |
发明(设计)人: | 叶凌群;苏赫 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30;G06F12/02 |
代理公司: | 北京凯特来知识产权代理有限公司 | 代理人: | 郑立明 |
地址: | 518129广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 监控 方法 装置 | ||
技术领域
本发明涉及电子设备技术领域,具体涉及内存监控技术。
背景技术
在嵌入式实时系统中,由于存在内存访问越界或写已释放内存等问题,因此,需要对内存进行监控。目前的内存监控方法主要有如下四种:
方法一、基于填充魔数字的内存监控方法,即在需要监控的内存中填充魔数字,通过在申请内存、释放内存或定时检查魔数字是否被改写来判断内存是否被非法改写。该方法不能及时捕获内存被非法改写的现场信息。
方法二、基于修改程序流程的内存监控方法,即在程序流程中添加检查代码,从而在分配内存时能够记录该内存的大小,并在写内存前进行检查。
由于方法二需要改写程序流程,因此,会影响原程序流程的稳定性,例如程序编译时容易出现编译问题等。而且,方法二还会导致大型工程性能降低、以及执行文件庞大等问题。
方法三、基于使用保护内存分隔不同内存区间的内存监控方法,即在分配的不同内存块之间设置内存保护页,在内存越界写到内存保护页上时,触发数据异常,从而监控到内存越界写操作。
内存保护页占用了内存,且内存保护页的大小通常会比分配的内存块大,因此,方法三降低了内存的可利用率。另外,方法三不能反映出越界写操作的执行主体,内存监控粒度太粗。
方法四、基于调试寄存器的内存监控方法,即利用CPU提供的调试寄存器对特定的内存进行监控。由于大部分的CPU只支持对有限的内存地址进行监控,因此,不能满足大块内存监控的需要。
发明内容
本发明实施方式的目的在于提供一种内存监控方法和装置,以实时监测到内存读和写数据越界的现场信息,从而实现对内存的实时监控。
本发明实施方式提供的内存监控方法,包括:
为需要监控的内存设置内存管理单元访问保护;
针对程序包对所述内存的申请和释放操作,记录内存分配信息;
在程序包执行对所述内存的读或写数据操作时,基于所述内存管理单元访问保护而触发异常处理操作;
所述异常处理操作包括:获取所述读或写数据的目的地址,根据所述目的地址和所述内存分配信息判断所述读或写数据的内存访问操作是否越界,如果越界,则记录所述内存访问操作越界的现场信息,允许所述程序包继续按照其包含的程序编码进行后续流程,如果没有越界,则允许所述程序包继续按照其包含的程序编码进行后续流程。
本发明实施方式提供的内存监控装置,包括:
访问保护设置模块,用于为需要监控的内存设置内存管理单元访问保护;
内存分配和释放监控模块,用于针对程序包对所述内存的申请和释放操作,记录内存分配信息;
异常中断模块,用于在所述程序包执行对所述内存的读或写数据操作时,基于所述内存管理单元访问保护而被触发,执行异常处理操作,所述异常处理操作包括:获取所述读或写数据的目的地址,根据所述目的地址和所述内存分配信息判断所述读或写数据的内存访问操作是否越界,如果越界,则记录所述内存访问操作越界的现场信息,允许所述程序包继续按照其包含的程序编码进行后续流程,如果没有越界,则允许所述程序包继续按照其包含的程序编码进行后续流程。
通过上述技术方案的描述可知,通过利用内存管理单元访问保护机制,并通过改写内存管理单元访问保护机制触发的异常处理操作,使本发明实施例可以实时监测到内存读和写数据越界的现场信息,从而可以实现对内存的实时精确监控,且被监控的内存大小可以不受限制。
附图说明
图1是本发明实施例一的内存监控方法流程图;
图2是本发明实施例二的内存监控方法中记录分配信息的流程图;
图3是本发明实施例二的内存监控方法中记录内存访问越界的现场信息的流程图;
图4是本发明实施例三的系统启动过程中设置内存监控的方法流程图;
图5是本发明实施例四的内存监控装置示意图。
具体实施方式
本发明实施例一提供一种内存监控方法,该方法的流程如附图1所示。
图1中,步骤100、确定需要监控的内存,并为需要监控的内存设置MMU(Memory Management Unit,内存管理单元)访问保护。
需要监控的内存可以为网络设备中的所有内存,也可以为网络设备中的部分内存。需要监控的内存可以根据实际需要来确定,例如,可以根据实际需要确定所有内存都需要进行监控;再例如,根据实际需要确定一段地址范围内的内存需要进行监控。步骤100可以在操作系统的内存管理系统初始化之后执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910084008.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:信号分析器和频域数据产生方法
- 下一篇:一种节能灯具制造用工作台座