当前位置: 首页 > 专利查询>兰州大学专利>正文

一种基于Linux的在线内存检测器MEMDOG制造技术

技术编号:19691466 阅读:57 留言:0更新日期:2018-12-08 11:05
本发明专利技术公开了一种基于Linux的在线内存检测器MEMDOG,MEMDOG主要包括四个部分:检测算法框架、可靠内存池、应用程序内存迁移和定时器。检测算法框架从Linux内存管理器中请求内存,使用用户选中的内存检测算法对请求的内存进行检测;可靠内存池中存放经过内存检测算法检测没有错误的内存,应用程序需要从该内存池中获取内存,从而保证应用程序使用的内存都是经过检测的;内存错误会随着时间的延续而发生,因此应用程序内存迁移部分会定期将应用程序的数据和代码从过期的内存迁移到最近检测过的内存中,这需要借助定时器;定时器的另一个作用是定期更新可靠内存池,将内存池中过期的内存释放给Linux系统。MEMDOG在线内存检测器解决了应用程序受到内存错误影响的问题。

【技术实现步骤摘要】
一种基于Linux的在线内存检测器MEMDOG
本专利技术专利属于计算机软件类,属于操作系统领域,涉及MEMDOG:一种基于Linux的在线内存检测器。
技术介绍
随着内存芯片的体积越来越小,容量越来越大,表示一个位(bit)的存储单元在不断的缩小,内存芯片更容易受到外部因素(高温、灰尘、宇宙射线等)的影响而发生错误。这些错误中最常见的是内存单元中的一个或者多个位发生了翻转(flip),通常它们会造成操作系统和应用程序崩溃;危害更大的是静默错误,即发生错误的内存被程序使用,却没有被发觉,程序仍然继续运行,这种情况会造成程序的运行结果不确定,出错原因难以查找。Google的工程师BiancaSchroeder在从2006年1月到2008年6月为期2.5年的时间内对Google机房中大量的机器进行跟踪,以统计内存错误发生的概率,研究结果表明每年有超过8%的内存芯片会受到硬件错误的影响;来自微软的工程师EdmundB.Nightingale所做的研究结果表明内存错误是造成机器崩溃的三大原因之一。因此对内存可靠性的研究具有非常重要的意义,而目前现存的内存检测器较少且效率低下,基于这个原因本文开发了一种基于Linux的在线内存检测器。
技术实现思路
本专利技术提供了一种基于Linux的在线内存检测器MEMDOG,解决了应用程序受到内存错误影响的问题。为解决上述技术问题,本专利技术采用如下技术方案:一种基于Linux的在线内存检测器MEMDOG,它包括Linux内存管理器、检测算法框架、检测算法、用户空间接口a、错误内存收集器、用户空间内存错误报告程序、可靠内存池、可靠内存池定时器、用户空间接口b、系统中所有的进程、应用程序内存迁移定时器、用户空间接口c、总开关,用户空间接口d,其特征是:所述的Linux内存管理器是Linux操作系统中的内存管理子系统;所述的检测算法框架是用来收集各种检测算法的一个容器;所述的检测算法是指被收集在检测算法框架中,用来检测内存中是否包含错误的算法;所述的用户空间接口a是一个用来供用户选择检测算法的配置文件;所述的错误内存收集器是一个用来收集包含错误的内存的链表;所述的用户空间内存错误报告程序是一个用于向用户报告检测过程中发现的内存错误的程序;所述的可靠内存池是一个收集经过检测算法检测没有发现错误的内存,并且为应用程序分配内存的链表;所述的可靠内存池定时器是一个周期性的对可靠内存池中过期的内存进行清理的定时器;所述的用户空间接口b是一个用来供用户设置可靠内存池定时器周期和可靠内存池中内存过期期限的配置文件;所述的系统中所有的进程是指系统中所有的应用程序;所述的应用程序内存迁移定时器是一个周期性的将应用程序使用的超过一定期限的内存中的数据和代码迁移到最近检测过的内存中的定时器;所述的用户空间接口c是一个设置内存迁移定时器周期和应用程序使用的内存的过期期限的定时器;所述的总开关是打开和关闭MEMDOG的开关;所述的用户空间接口d是一个操作MEMDOG总开关的用户空间接口。本专利技术的技术方案的工作原理:用户通过用户空间接口a设置MEMDOG使用的内存检测算法,检测算法框架从Linux内存管理器中请求内存,使用用户选中的内存检测算法对请求的内存进行检测。如果检测算法检测到内存中包含错误,就将包含错误的内存放入到错误内存收集器中,保证这些内存不会再被程序使用到,并使用用户空间内存错误报告程序报告错误;如果被检测的内存中没有包含错误,将内存放入到可靠内存池中供应用程序使用,保证了应用程序使用内存的可靠性。因为内存会随着时间的增长而发生错误,可靠内存池定时器会周期性的将可靠内存池中超过一定时间期限的内存进行释放,可靠内存池定时器的时间周期和内存的过期期限可以由用户通过用户空间接口b进行设置。内存迁移定时器会周期性的对应用程序使用的超过一定期限的内存中的数据和代码进行迁移,将它们迁移到最近检测过的内存中,防止内存使用时间过长而发生错误,内存迁移定时器的时间周期和应用程序使用内存的过期期限可以由用户通过用户空间接口c设置。通过用户空间接口d可以打开和关闭MEMDOG。本专利技术的有益效果为:1、保护运行在Linux操作系统中的应用程序不受内存硬件错误的影响。2、提出了一种新的高效的内存可靠性的机制,为内存可靠性机制的多样性做出了贡献。附图说明附图1为本专利技术的总体设计方案示意图。图中,1为Linux内存管理器,2为用户空间接口a,3为检测算法,4为检测算法框架,5为错误内存收集器,6为用户空间内存错误报告程序,7为可靠内存池,8为可靠内存池定时器,9为用户空间接口b,10为系统中所有的进程,11为应用程序内存迁移定时器,12为用户空间接口c,13为总开关,14为用户空间接口d。具体实施方式用户使用设置检测算法的用户空间接口a选择需要的检测算法,使用设置可靠内存池定时器的用户空间接口b设置可靠内存池定时器的周期和可靠内存池中内存的过期期限,使用设置内存迁移定时器的用户空间接口c设置内存迁移周期和应用程序内存的过期期限,使用用户空间接口d使能在线内存检测器,此后在线内存检测器进入开启状态,保护应用程序不受内存错误的影响。实施例1用户通过Linux操作系统提供的命令行工具terminal进入到设置检测算法的用户空间接口a所在的目录,向设置检测算法的用户空间接口a中写入March检测算法;进入到设置可靠内存池定时器的用户空间接口b所在的目录,向设置可靠内存池定时器的用户空间接口b写入定时器的时间周期和内存过期期限分别为3600秒和7200秒;进入到设置内存迁移定时器的用户空间接口c所在的目录,向设置内存迁移定时器的用户空间接口c中写入内存迁移周期和内存过期期限分别为7200秒和10800秒;进入到用户空间接口d所在的目录,向用户空间接口d中写入“yes”打开在线内存检测器MEMDOG;此后系统中的应用程序就会进入到MEMDOG的保护状态之下,每隔3600秒可靠内存池定时器就会触发一次,检测可靠内存池中的内存是否超过了过期期限7200秒;每隔7200秒内存迁移定时器就会触发一次,检测系统中应用程序使用的内存是否超过了过期期限10800秒,如果MEMDOG检测到内存错误会通过用户空间错误报告程序向用户报告错误。本文档来自技高网...

【技术保护点】
1.一种基于Linux的在线内存检测器MEMDOG,它包括Linux内存管理器、检测算法框架、检测算法、用户空间接口a、错误内存收集器、用户空间内存错误报告程序、可靠内存池、可靠内存池定时器、用户空间接口b、系统中所有的进程、应用程序内存迁移定时器、用户空间接口c、总开关,用户空间接口d,其特征是:所述的Linux内存管理器是Linux操作系统中的内存管理子系统;所述的检测算法框架是用来收集各种检测算法的一个容器;所述的检测算法是指被收集在检测算法框架中,用来检测内存中是否包含错误的算法;所述的用户空间接口a是一个用来供用户选择检测算法的配置文件;所述的错误内存收集器是一个用来收集包含错误的内存的链表;所述的用户空间内存错误报告程序是一个用于向用户报告检测过程中发现的内存错误的程序;所述的可靠内存池是一个收集经过检测算法检测没有发现错误的内存,并且为应用程序分配内存的链表;所述的可靠内存池定时器是一个周期性的对可靠内存池中过期的内存进行清理的定时器;所述的用户空间接口b是一个用来供用户设置可靠内存池定时器周期和可靠内存池中内存过期期限的配置文件;所述的系统中所有的进程是指系统中所有的应用程序;所述的应用程序内存迁移定时器是一个周期性的将应用程序使用的,超过一定期限的内存中的数据和代码迁移到最近检测过的内存中的定时器;所述的用户空间接口c是一个设置内存迁移定时器周期和应用程序使用的内存的过期期限的定时器;所述的总开关是打开和关闭MEMDOG的开关;所述的用户空间接口d是一个操作MEMDOG总开关的用户空间接口。...

【技术特征摘要】
1.一种基于Linux的在线内存检测器MEMDOG,它包括Linux内存管理器、检测算法框架、检测算法、用户空间接口a、错误内存收集器、用户空间内存错误报告程序、可靠内存池、可靠内存池定时器、用户空间接口b、系统中所有的进程、应用程序内存迁移定时器、用户空间接口c、总开关,用户空间接口d,其特征是:所述的Linux内存管理器是Linux操作系统中的内存管理子系统;所述的检测算法框架是用来收集各种检测算法的一个容器;所述的检测算法是指被收集在检测算法框架中,用来检测内存中是否包含错误的算法;所述的用户空间接口a是一个用来供用户选择检测算法的配置文件;所述的错误内存收集器是一个用来收集包含错误的内存的链表;所述的用户空间内存错误报告程序是一个用于向用户报告检测过程中发现的内存错误的程序;所述的可靠内存池是一个收集经过检测算法检测没有发现错误的内存,并且为应用程序分配内存的链表;所述的可靠内存池定时器是一个周期性的对可靠内存池中过期的内存进行清理的定时器;所述的用户空间接口b是一个用来供用户设置可靠内存池定时器周期和可靠内存池中内存过期期限的配置文件;所述的系统中所有的进程是指系统中所有的应用程序;所述的应用程序内存迁移定时器是一个周期性的将应用程序使用的,超过一定期限的内存中的数据和代码迁移到最近检测过的内存中的定时器;所述的用户空间接口c是一个设置内存迁移定时器周期和应用程序使用的内存的过期期限的定时器;所述的总开关是打开和关闭MEMDOG的开关;所述的用户空间接口d是一个操作MEMDOG总开关的用户空间接口。2.根据权利要求1所述的一种基于...

【专利技术属性】
技术研发人员:周庆国王小强段鸣周睿李飞
申请(专利权)人:兰州大学
类型:发明
国别省市:甘肃,62

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1