[发明专利]基于代码段多副本对比机制提高程序可靠性方法无效
申请号: | 201010239426.4 | 申请日: | 2010-07-28 |
公开(公告)号: | CN101901174A | 公开(公告)日: | 2010-12-01 |
发明(设计)人: | 张兴军;董小社;雷济凯;郑豪;刘鹏飞;王恩东;胡雷钧;张东;伍卫国 | 申请(专利权)人: | 西安交通大学;浪潮(北京)电子信息产业有限公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 陆万寿 |
地址: | 710049*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 代码 副本 对比 机制 提高 程序 可靠性 方法 | ||
1.一种基于代码段多副本对比机制提高程序可靠性方法,其特征在于,包括下述步骤:
(1)在操作系统中启动一个内核线程作为初始化线程,初始化线程通过进程描述符task_struct中的内存信息描述符mm_struct提取需要保护程序的代码段信息,代码段信息包括代码段大小、起始逻辑地址、结束逻辑地址;
(2)初始化线程根据步骤(1)中提取的代码段信息,建立两份需要保护进程的代码段副本,一份称为主副本,另外一份称为次副本;
(3)初始化进程对需要保护进程的代码段进行划分,把进程代码段划分为多个代码区域,若需要保护进程的代码段大小为代码区域大小的整数倍,则划分得到的代码区域大小都相同;否则划分得到的代码区域中最后一个代码区域大小小于其他代码区域大小;
(4)初始化进程根据步骤(3)中划分的代码区域数量,生成相应数目的内核线程作为一致性维护线程;
(5)每个一致性维护线程针对自己负责的代码区域,进行代码区域一致性维护工作,一致性维护线程进行的一致性维护工作如下:
(a)初始化相应数据结构,包括待比较代码区域相关信息的载入、比较指针的设置;
(b)根据一致性维护线程执行频率设置判断一致性维护线程是否应该睡眠,如果未到达执行频率所规定的等待时间,则设置一致性维护线程状态为睡眠,睡眠时间由执行频率决定;
(c)更新比较指针,比较当前位置进程代码段和主副本的内容,如果内容一致,并且还有数据比较,则继续执行步骤(c);如果内容一致但已经完成所有比较,则转步骤(b);否则执行步骤(d);
(d)如果系统中有其他CPU,则停止其他所有CPU的执行,如果停止其他CPU失败,则向控制台发送警告信息;
(e)判断发生错误的位置:分别比较进程代码段、主副本和次副本当前位置的内容,可能的比较结果及处理方法如下:a)进程代码段和次副本一致但主副本和次副本内容不一致,转步骤(f);b)进程代码段和次副本不一致但主副本和次副本内容一致,转步骤(g);进程代码段和次副本不一致并且主副本和次副本内容不一致,转步骤(h);
(f)此时主副本发生错误,使用次副本的当前位置的内容修改主副本当前位置的内容,恢复主副本错误,如果恢复成功,则记录相关错误以及恢复信息,重新启动系统中其他CPU的执行,转步骤(c)执行;如果恢复失败,则记录相关错误以及恢复信息,杀死当前进程的执行然后结束;
(g)此时进程代码段自身发生错误,使用主副本的当前位置的内容修改进程代码段当前位置的内容,恢复进程代码段错误,如果恢复成功,则记录相关错误以及恢复信息,重新启动系统中其他CPU的执行,转步骤(c)执行;如果恢复失败,则记录相关错误以及恢复信息,杀死当前进程的执行然后结束;
(h)此时不能判断是进程代码段、主副本还是次副本发生错误,杀死当前进程的执行,并且记录相关错误信息然后结束。
2.根据权利要求1所述的基于代码段多副本对比机制提高程序可靠性方法,其特征在于,所述代码段副本,是指需要保护的进程的代码段的拷贝,生成需要保护的进程的两份代码段拷贝,分别保存在系统内存的两个互不重叠的位置,根据底层硬件拓扑结构,两份代码副本保存位置按下述方法确定:若底层硬件为单处理器系统或SMP系统,两份代码副本分别存放在的两个物理内存模块中;若底层硬件为具有多个物理内存节点的NUMA系统,两份代码副本分别保存在两个物理内存节点上。
3.根据权利要求1所述的基于代码段多副本对比机制提高程序可靠性方法,其特征在于,所述代码区域是对需要保护进程的代码段进行划分的结果,每个代码区域的默认设置为10个页面,系统用户根据需要调整代码区域的大小。
4.根据权利要求1所述的基于代码段多副本对比机制提高程序可靠性方法,其特征在于,所述的一致性维护线程,其执行频率由它所负责的代码区域的执行热度决定,代码区域的执行热度可以通过对需要保护的进程进行测试得到,代码区域执行热度越高,一致性维护线程的执行频率越高;代码区域执行热度越低,一致性维护线程的执行频率越低。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学;浪潮(北京)电子信息产业有限公司,未经西安交通大学;浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010239426.4/1.html,转载请声明来源钻瓜专利网。