浅谈vxworks内存泄露检测机制存在不足和改进

浅谈vxworks内存泄露检测机制存在不足和改进

ID:32644418

大小:71.86 KB

页数:6页

时间:2019-02-14

浅谈vxworks内存泄露检测机制存在不足和改进_第1页
浅谈vxworks内存泄露检测机制存在不足和改进_第2页
浅谈vxworks内存泄露检测机制存在不足和改进_第3页
浅谈vxworks内存泄露检测机制存在不足和改进_第4页
浅谈vxworks内存泄露检测机制存在不足和改进_第5页
资源描述:

《浅谈vxworks内存泄露检测机制存在不足和改进》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、浅谈VxWorks内存泄露检测机制存在不足和改进摘要:随着信息技术的不断发展,嵌入式设备也越来越多的在国防科技、网络通信以及工业控制领域中应用,因此对于系统的安全性与可靠性也越来越提出更多的要求,其中VxWorks操作系统,不仅具有可抢占式调度、中断延迟小、系统内核可剪裁的优势,而且也被应用到大多数的嵌入式产品中。以下本篇就将浅析在VxWorks系统中其内存泄露检测机制中存在的不足以及改进对策。关键词:VxWorks系统;内存泄露检测;不足中图分类号:TN929.53;TP319基于当前嵌入式设备存储器容量较小的

2、特征,因此对嵌入式系统的性能以及可靠性都提出较高的要求,特别是对于嵌入式操作系统的内存管理问题,更是成为当前的重点,不仅会直接影响到嵌入式设备的正常运行,还将会影响系统的安全性和可靠性。以下本篇就对VxWorks内存管理中存在的不足进行探讨,并给出有效的改进对策。1VxWorks操作系统内存泄露介绍VxWorks操作系统中内存管理作为其重要的研究领域,解决以及处理内存泄漏问题以成为重点,就根据程序在申请到动态内存,且使用完动态内存后,不释放动态内存,并将其保存动态内存的地址变量用作其它时期,使动态内存并不能被释放

3、,其它程序不能再使用动态内存,也无法被VxWorks操作系统回收,因此就会造成内存泄漏[1]。内存泄漏是因为疏忽以及错误而造成的程序在使用完之后未能释放动态内存的情况,针对内存泄露问题,不仅会使VxWorks应用程序申请动态内存的行为失败,也会导致服务中止,并且还会导致整个系统的资源崩溃。一般内存泄露就是指系统中堆内存的泄露,在云计算中虚拟技术作为关键技术,针对虚拟机的内存管理依然存在着内存泄露风险。2当前VxWorks系统内存泄露检测机制针对当前内存管理中面对于内存泄漏的检测方法中,可以分为动态检测方法与静态检

4、测方法两类。其中动态检测方法中,根据程序动态内存分配时,就可以在内存堆中作出标记,那么当程序退出的时候,释放所分配内存,可以通过检查堆上的残留的对象[2],以检测程序内存是否泄露。静态检测方法,就是通过程序源代码进行分析,之后再模拟所有可能执行路径,以此来判定程序中的可执行路径中是否存在安全缺陷,这样的检测不需要实际执行程序,不仅能够克服动态分析的开销较大弊端,还可以提高检测性能。3VxWorks系统内存泄露检测机制中存在的不足对于当前VxWorks操作系统之中,在内存泄露检测中,依然存在一定的不足,动态检测方法

5、虽然可以直接发现在实际程序中的缺陷,然而这样的检测机制中,时间开销大,且程序执行路径覆盖中还存在死角,其内存泄露检测结果的完备性不足[3],且实际中的漏报率较髙。对于静态分析检测中,并不能精确判断程序输入以及环境变量等数据信息,因此在其检测之中的模拟执行路径可能会存在不可行路径,静态分析方法的误报率也较高。内存泄漏检测机制中,主要基于静态代码插桩、中断式插入、热补丁三种方式,但是这些都无法满足嵌入式操作系统对内存泄漏检测机制的需求,不能满足实时性、便捷性以及可靠性的要求,还会导致操作系统内存崩溃。4改进后的VxW

6、orks操作系统内存泄露检测机制针对以上内存泄露检测机制中的不足,可以在基于Xen虚拟机的内存管理机制,采取动态检测虚拟机取检测内存泄露,其主要原理就是在虚拟机运行时,可以修改开源软件Valgrind中的源码,将其内插入监测代码,以便去动态截获虚拟机中申请的内存函数和释放内存函数,将其记录下来,以此来检测内存泄露,该内存检测机制不仅不需要修改被探测程序源代码,也不需要去重新编译,简化检测力度,降低内存泄露检测的漏报率。4.1动态截获虚拟机内存原理该检测机制中,对于内存申请、释放的接口均具有统一、简单的特色,通过动

7、态检测方法通对内存管理机制进行研究,用来截获内存申请以及释放的函数,可重载内存管理函数、内存读取函数以及进行指针运算,有效控制内存的操作功能。在内存分配以及回收中,主要是通过malloc与free实现,通过钩子程序与宏定义的方式进行替换,并且还具备记录调用函数源文件、与源文件所处位置的功能,还可以在自定义表中增加以及删除调用信息,不管是针对管理内存块、堆、栈以及全局变量,只要是有指针引用该内存,内存块的起始地址和内存块大小等信息就会被记录到全局表中,从符号表中得到静态内存,通过重载内存管理函数实现对堆里动态内存的

8、分配。4.2自动内存泄漏检测机制的优势在基于VxWorks操作系统自动内存泄漏检测机制中,可以预定义内存泄漏的门限以及内存驻留时间门限,并通过中断服务去唤醒检测任务,以此例收集泄漏内存信息,不仅具有实时性、便捷性;自动内存泄漏检测机制,在可靠性方面也有很大的应用价值,可以满足不同内存用户环境下的内存泄漏检测需求。4.3自动内存泄漏检测机制实际应用在VxWorks操作系统的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。