[发明专利]面向硬件不可恢复内存故障的内核代码软容错方法有效
申请号: | 201110341733.8 | 申请日: | 2011-11-03 |
公开(公告)号: | CN102508742A | 公开(公告)日: | 2012-06-20 |
发明(设计)人: | 秦莹;刘晓建;戴华东;吴庆波;孔金珠;颜跃进 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F11/14 | 分类号: | G06F11/14 |
代理公司: | 湖南兆弘专利事务所 43008 | 代理人: | 赵洪;谭武艺 |
地址: | 410073 湖南省长沙市砚瓦池正*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 硬件 不可 恢复 内存 故障 内核 代码 容错 方法 | ||
1.一种面向硬件不可恢复内存故障的内核代码软容错方法,其特征在于其实施步骤如下:
1)在操作系统将内核代码加载至物理内存时,将所述内核代码标记为主代码,为每段所述内核代码设置多份代码副本并将代码副本加载至物理内存中;
2)在操作系统运行时,如果内核代码所在的内存遇到内存异常则定位当前主代码的出错内核页,将出错内核页的代码与当前主代码对应的代码副本进行比较,如果确定为出错内核页的代码发生错误,则暂停计算机运行,修改所述出错内核页的内核代码页表,从当前主代码对应的代码副本中选择一份正常的代码副本代替当前主代码,然后继续运行计算机。
2.根据权利要求1所述的面向硬件不可恢复内存故障的内核代码软容错方法,其特征在于,所述步骤2)中定位当前主代码的出错内核页的具体步骤包括:首先检测内存异常类型,如果内存异常类型为同步感知故障,则直接根据异常错误信息包含的内存硬件地址信息定位出错内核页;如果内存异常类型为异步感知故障,则在当前执行栈中通过检查调用指令进行迭代栈回退定位出错内核页。
3.根据权利要求2所述的面向硬件不可恢复内存故障的内核代码软容错方法,其特征在于,所述在当前执行栈中通过检查调用指令进行迭代栈回退定位出错内核页的具体步骤包括:
A)将迭代次数清零;
B)检查当前执行栈,如果当前执行栈中子例程的入口地址包括当前主代码的内存地址,则将所述内存地址处的主代码和相应的代码副本进行特征比较,如果匹配则定位出错内核页成功;如果均不匹配则检查栈历史中已执行的代码是否包含I/O指令或者写指令,如果存在I/O指令或者写指令则转入步骤D),如果不存在I/O指令或者写指令则转入步骤C);
C)检查迭代次数,如果迭代次数没有到达迭代上限则回退到上一级栈帧,迭代次数增加一次并继续跳转执行步骤B);否则如果迭代次数到达上限,跳转执行步骤D);
D)停止故障处理过程并结束查找。
4.根据权利要求1所述的面向硬件不可恢复内存故障的内核代码软容错方法,其特征在于:所述步骤1)中将代码副本加载至物理内存中时,所述加载的代码副本数量N为N=2f+1,其中f为大于0的整数。
5.根据权利要求4所述的面向硬件不可恢复内存故障的内核代码软容错方法,其特征在于:所述步骤1)中将代码副本加载至物理内存中时,所述加载至物理内存中的代码副本分别分散存储于物理内存中。
6.根据权利要求1所述的面向硬件不可恢复内存故障的内核代码软容错方法,其特征在于,所述步骤2)中在操作系统运行时还包括内核代码检查维护的步骤,所述内核代码检查维护的步骤包括:在操作系统空闲状态时启动内核代码比较线程,将各内核模块的主代码和与其对应的代码副本进行比较,根据所述比较结果对当前主代码对应的代码副本进行检查维护,且根据所述比较结果对当前主代码的状态进行判断,如果主代码发生错误,则暂停计算机运行,选择一份正常的代码副本替代操作系统的主代码,然后继续运行计算机。
7.根据权利要求6所述的面向硬件不可恢复内存故障的内核代码软容错方法,其特征在于,所述将内核模块的各主代码和与其对应的各代码副本进行比较的具体步骤包括:
Ⅰ)选定一个代码副本作为主代码副本,遍历查找比较主代码和主代码副本之间的差异;
Ⅱ)如果主代码和主代码副本之间无差异,则判定主代码正常,比较结束;如果主代码和主代码副本之间有差异,则将其他的代码副本作为从代码副本依次与主代码进行比较、将主代码副本依次与各从代码副本进行比较,如果主代码和主代码副本、各从代码副本均不一致,则判定主代码出错;如果所述主代码副本与主代码、各从代码副本均不一致,则判定主代码副本出错。
8.根据权利要求7所述的面向硬件不可恢复内存故障的内核代码软容错方法,其特征在于,所述根据所述比较结果对当前主代码对应的代码副本进行检查维护具体包括:如果所述比较结果得出主代码副本出错,则选择一份正常的从代码副本替代作为当前的主代码副本。
9.根据权利要求1~8中任意一项所述的面向硬件不可恢复内存故障的内核代码软容错方法,其特征在于,所述步骤2)中在操作系统运行时还包括内核代码定期替换的步骤,所述内核代码定期替换具体是指:在内核代码的当前主代码运行正常的情况下,定时暂停计算机运行,对当前主代码对应的代码副本进行检查维护,从当前主代码对应的代码副本中轮流选择一份正常的代码副本代替当前主代码,然后继续运行计算机。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110341733.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种提高瓦楞原纸环压强度的方法
- 下一篇:梳齿式破碎机锤头