发明名称 双进程冗余瞬时故障容错方法
摘要 本发明提供的是一种双进程冗余瞬时故障容错方法。由双进程冗余故障检测用户级模块、双进程冗余故障检测内核级模块、检查点设置用户级模块、检查点设置内核级模块、检查点卷回恢复用户级模块和检查点卷回恢复内核级模块六个模块组成的Linux内核模块实现。该方法将任务进程进行派生,派生出一个傀儡进程和两个任务进程(主任务进程和从任务进程),通过两个任务进程系统调用参数的比较及系统调用的执行和模拟,实现系统调用参数的瞬时故障检测;通过任务进程正常运行过程中设置的检查点实现故障后的卷回恢复。开销低,适用于基于普通硬件架构的进程级双模冗余容错方法,通用性好。
申请公布号 CN103064770B 申请公布日期 2014.09.17
申请号 CN201310006126.5 申请日期 2013.01.08
申请人 哈尔滨工程大学 发明人 门朝光;何忠政;李香;冯红斌
分类号 G06F11/16(2006.01)I 主分类号 G06F11/16(2006.01)I
代理机构 代理人
主权项 一种双进程冗余瞬时故障容错方法,由双进程冗余故障检测用户级模块、双进程冗余故障检测内核级模块、检查点设置用户级模块、检查点设置内核级模块、检查点卷回恢复用户级模块和检查点卷回恢复内核级模块六个模块组成的Linux内核模块实现,其特征是具体包括如下步骤:(1)应用程序执行时,由双进程冗余故障检测用户级模块调用变量初始化函数,对配置变量进行初始化,然后注册检查点设置信号和双进程冗余比较结果信号,实现检查点设置的响应、傀儡进程和主/从任务进程的信息通信;接着应用程序进程调用fork系统调用,派生出两个子进程,并调用execve系统调用,将自身替换为用户任务进程;最后将应用程序作为参数,传给双进程冗余故障检测内核级模块,应用程序进程本身退化为傀儡进程;所述傀儡进程用于检查点的设置及响应用户操作并将操作命令和信号分发给任务进程,返回任务进程执行结果,监控所有任务进程状态;(2)双进程冗余故障检测内核级模块实现系统调用的封装、傀儡进程和主/从任务进程的注册、系统调用参数瞬时故障检测;所述系统调用的封装的方法为:首先获取原系统调用表地址;然后将原系统调用表导入临时系统调用表中;接着将临时系统调用表中需要捕获的系统调用进行替换;最后在主函数中添加被监控进程判定、系统调用参数比较、系统调用执行和模拟、检测结果反馈的功能,并用临时系统调用替换当前系统调用;所述傀儡进程和主/从任务进程的注册的方法包括:傀儡进程注册步骤为:首先分配傀儡进程记录结构体数据空间,然后给傀儡进程的进程号、阻塞队列数据赋值,最后将傀儡进程加入傀儡进程链表;主/从任务进程注册步骤为:首先分配主/从任务进程记录结构体数据空间,这包括进程号,隶属傀儡进程、主/从任务进程标记序号数据,并为这些数据赋值;然后将主/从任务进程分别加入主/从任务进程链表;最后将主/从任务进程加入hash链表,并修改位图标记;所述系统调用参数瞬时故障检测包括捕获系统调用、系统调用参数比较、系统调用的执行和模拟、双进程冗余比较结果信号的发送;当主/从任务进程正常运行并执行系统调用时,双进程冗余瞬时故障检测内核级模块首先捕获系统调用,然后判定该进程是否是被监控进程,如果是被监控进程,则进行系统调用参数比较,如果不是被监控进程,则执行原系统调用;(3)检查点设置用户级模块实现检查点设置信号的响应,并调用检查点设置内核级模块实现检查点状态的保存;(4)检查点设置内核级模块实现检查点设置信号的处理,完成任务进程检查点状态的保存;(5)检查点卷回恢复用户级模块实现傀儡进程检查点卷回恢复的响应,并调用检查点卷回恢复内核级模块实现进程的卷回恢复;(6)检查点卷回恢复内核级模块实现故障进程卷回恢复。
地址 150001 黑龙江省哈尔滨市南岗区南通大街145号哈尔滨工程大学科技处知识产权办公室