CN102521082A - 一种星载实时操作系统中的检查点恢复容错方法及系统 - Google Patents
一种星载实时操作系统中的检查点恢复容错方法及系统 Download PDFInfo
- Publication number
- CN102521082A CN102521082A CN2011104072537A CN201110407253A CN102521082A CN 102521082 A CN102521082 A CN 102521082A CN 2011104072537 A CN2011104072537 A CN 2011104072537A CN 201110407253 A CN201110407253 A CN 201110407253A CN 102521082 A CN102521082 A CN 102521082A
- Authority
- CN
- China
- Prior art keywords
- checkpoint
- task
- operating system
- time operating
- real time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Retry When Errors Occur (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开一种星载实时操作系统中的检查点恢复容错方法及系统,该方法包括如下步骤:对关键任务冗余执行,对非关键任务进行分布处理;根据执行结果保存检查点;以及根据保存的检查点进行检查点恢复;本发明通过在文件系统的基础上采用自行设计的检查点保存和检查点恢复方法,达到提高星载计算机可靠性的目的。
Description
技术领域
本发明涉及软件容错领域,特别是涉及一种星载实时操作系统中的检查点恢复容错方法及系统。
背景技术
星载计算机工作于辐射环境复杂的外太空,受宇宙射线、范艾伦带等空间例子辐射影响较大,这些因素都会导致航天器发生故障和出现错误的几率成倍增长,因此,从软件上对星载计算机进行加固是提高星载计算机的可靠性的重要方法。
μC/OS-II自2.52版本之后就通过了美国航空航天局(FAA)的安全认证,采用μC/OS-II作为星载实时操作系统,可以应用于航天器等对安全要求极为苛刻的系统中。相比其他操作系统,μC/OS-II具有公开源码的优势,结构小巧,具有RTOS微型核结构。
通常采用的软件容错技术有检查点恢复技术和冗余技术,检查点恢复技术是指系统发生故障后回卷到检查点状态重新执行。然而,由于嵌入式环境下资源等因素的限制,检查点的保存规模和方式都必须进行不同于通用环境的考虑。因此可以看出,如何在μC/OS-II嵌入式系统中设置检查点和并进行恢复,是提高星载操作系统可靠性必须要考虑的问题。目前国内外公开文档中尚无这种技术的报道。
综上所述,可知先前技术中存在无法在μC/OS-II嵌入式系统中设置检查点并进行恢复的问题,因此实有必要提出改进的技术手段,来解决此一问题。
发明内容
为克服上述现有技术存在的不足,本发明的主要目的在于提供一种星载实时操作系统中的检查点恢复容错方法及系统,其通过在文件系统的基础上采用自行设计的检查点保存和检查点恢复方法,达到提高星载计算机可靠性的目的。
为达上述及其它目的,本发明提供一种星载实时操作系统中的检查点恢复容错方法,包括如下步骤:
对关键任务冗余执行,对非关键任务进行分布处理;
根据执行结果保存检查点;以及
根据保存的检查点进行检查点恢复。
进一步地,该方法应用于三模冗余系统中。
进一步地,该关键任务比该非关键任务具有较高优先级。
进一步地,对该关键任务冗余执行包括如下步骤:
该关键任务完成其主要内容;
调用表决函数,利用通信函数对三个结点的中间结果进行表决;
判断是否表决成功;
若表决不成功,则发送消息至消息邮箱;若表决成功,则比较当前任务优先级是否与预留优先级相同;
若相同,则把当前任务优先级改为原优先级;若不相同,则挂起该关键任务。
进一步地,在该非关键任务结束时,把其当前任务优先级与预留优先级比较;若相同,则把当前任务优先级改为原优先级。
进一步地,该检查点保存的步骤包括如下步骤:
获得前一个任务的任务控制块指针;
禁止任务调度,对任务调度加锁;
判断该任务是否是检查点恢复任务,若不是则向下执行;
获得该任务的栈顶指针;
把栈中保存的寄存器值写入检查点文件;
执行堆栈检查函数,获得堆栈实际使用的长度;
把栈中实际使用的项值写入检查点文件中;
恢复被保存的任务状态;
开启任务调度,对任务调度开锁;以及
挂起该任务。
进一步地,该检查点恢复步骤包括如下步骤:
获得消息邮箱信息;
若获得非零信息则向下执行,否则任务一直处于挂起状态;
把待恢复任务放入准备队列;
读取该检查点文件来恢复任务堆栈内容;以及
恢复任务寄存器值。
进一步地,该关键任务与该非关键任务的次序预先写定。
进一步地,该星载实时操作系统为μC/OS-II嵌入式系统。
为达到上述及其他目的,本发明提供一种星载实时操作系统中的检查点恢复容错系统,至少包括:
文件系统;
检查点记录模块,用于记录并保存检查点;
检查点恢复模块,用于根据保存的检查点执行检查点恢复任务;
表决模块,包含表决函数,用于利用该表决函数对三个节点的中间结果进行表决;以及
通信模块,利用通信函数进行通信。
与现有技术相比,本发明一种星载实时操作系统中的检查点恢复容错方法及系统通过在文件系统的基础上采用自行设计的检查点保存和检查点恢复方法,达到了提高星载计算机可靠性的目的。
附图说明
图1为本发明一种星载实时操作系统中的检查点恢复容错系统所应用之系统逻辑框图;
图2为本发明一种星载实时操作系统中的检查点恢复容错方法之步骤流程图;
图3为本发明一种星载实时操作系统中的检查点恢复容错方法之较佳实施例中执行关键任务的流程图;
图4为本发明一种星载实时操作系统中的检查点恢复容错方法之较佳实施例中检查点保存步骤的流程图;
图5为本发明一种星载实时操作系统中的检查点恢复容错方法之较佳实施例中检查点恢复步骤的流程图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
图1为本发明一种星载实时操作系统中的检查点恢复容错系统所应用之系统逻辑框图。本发明之星载实时操作系统中的检查点恢复容错系统应用于一套三模冗余(TMR,triple modular redundancy)系统中,在文件系统的基础上采用自行设计的检查点保存和检查点恢复方法,以达到提高可靠性的目的。该星载实时操作系统中的检查点恢复容错系统所应用的系统包括硬件层(Hardware)、移植接口层(Porting interface)、操作系统层(OS)、容错软件层(FT Software)以及应用层(Application),其中本发明之容错系统工作于容错软件层,其工作于硬件层的嵌入式软核上,即CPU包含三个嵌入式软核,在本发明较佳实施例中,硬件层的嵌入式软核以Xilinx公司的MicroBlaze嵌入式软核为例,三个结点各有一个microblaze嵌入式软核,硬件层的其他的硬件包括计时器(Timer)、中断控制器(Interrupt controller)、通信总线(Communication bus)和闪存(flash)等;移植接口层(Porting interface)是要根据处理器类型修改一些处理器相关代码,使操作系统(OS)能运行于microblaze嵌入式软核上;操作系统(OS)层包括了操作系统必须要包含的功能,在此,为了达到精简的目的,本发明根据需求对内核进行了裁剪,保留了一些相关功能;容错软件层(FT Software)即包括本发明之星载实时操作系统中的检查点恢复容错系统,用于对本节点的应用任务进行监测,其至少包括:检查点记录模块11、检查点恢复模块12、表决模块13、文件系统14和通信模块15
其中检查点记录模块11用于记录并保存检查点;检查点恢复模块12用于根据保存的检查点执行检查点恢复任务;表决模块13包含表决函数,用于对三个节点的中间结果进行表决;通信模块15,利用通信函数进行通信。
图2为本发明一种星载实时操作系统中的检查点恢复容错方法之步骤流程图。在本发明较佳实施例中,星载实时操作系统为uC/OS-II操作系统,任务分为关键任务及非关键任务,该星载实时操作系统中的检查点恢复容错方法包括如下步骤:
步骤201,对关键任务冗余执行,对非关键任务进行分布处理,其中关键任务具有较高优先级,关键任务与非关键任务的次序是已写定的;
步骤202,检查点保存;以及
步骤203,检查点恢复。
图3为本发明一种星载实时操作系统中的检查点恢复容错方法之较佳实施例中执行关键任务的流程图。在步骤300,任务完成其主要内容;在步骤301,调用表决函数,利用通信函数对三个结点的中间结果进行表决;在步骤302,判断是否表决成功,若成功则转到步骤304,若不成功则转到步骤303;在步骤303,发送消息到消息邮箱;在步骤304,比较当前任务优先级是否与预留优先级相同,若相同则说明经历了检查点保存对优先级的修改,则需要转到步骤305,把优先级修改为原优先级;若不相同则转到步骤306;在步骤206,挂起该任务,任务进入挂起状态。
而对于非关键任务的分布处理,在本发明较佳实施例中,则是在其任务结束时,把当前任务优先级与预留优先级比较,若相同,则说明历了检查点保存对优先级的修改,则把优先级改为原优先级。
图4为本发明一种星载实时操作系统中的检查点恢复容错方法之较佳实施例中检查点保存步骤的流程图。在本发明较佳实施例中,μC/OS-II的任务上下文保存在任务控制块TCB(Task Control Block)当中,其中,任务的上下文包括任务的执行点(程序计数器)、cpu寄存器、临时变量、和任务栈、任务选项、任务延时等内容;单个任务卷回的情况下,利用任务TCB可以获得任务栈顶指针;每隔一定时间,检查点保存任务剥夺掉当前任务,当前任务现场被保存在自身的TCB中,检查点保存函数通过栈顶指针获得任务的执行信息,如寄存器值、堆栈内容等;将对应的堆栈内容写入检查点文件;恢复前一被抢占的任务状态,为保证这一过程的进行,需要把被抢占任务优先级设为“预留优先级”,通过提高其优先级来保证任务的执行顺序。更具体地说,如图4所示,在步骤400,获得前一个任务的OS_TCB指针。在步骤401,禁止任务调度,对任务调度加锁;在步骤402,判断该任务是否是检查点恢复任务,若不是则向下执行;在步骤403中,获得该任务的栈顶指针;在步骤404中,把栈中保存的寄存器值写入检查点文件;在步骤405中,执行堆栈检查函数,获得堆栈实际使用的长度,这一步骤是为了节省现场保存规模;在步骤406中,把栈中实际使用的项值写入检查点文件中;在步骤407中,恢复被保存的任务状态;在步骤408中,开启任务调度,对任务调度开锁;在步骤409中,挂起该任务。
图5为本发明一种星载实时操作系统中的检查点恢复容错方法之较佳实施例中检查点恢复步骤的流程图。在步骤500中,获得消息邮箱信息,若获得非零信息则向下执行,否则任务一直处于挂起状态;在步骤501中,把待恢复任务放入准备(ready)队列;在步骤502中,读检查点文件来恢复任务堆栈内容;在步骤503中,恢复任务寄存器值。
可见,本发明一种星载实时操作系统中的检查点恢复容错方法及系统通过在文件系统的基础上采用自行设计的检查点保存和检查点恢复方法,达到了提高星载计算机可靠性的目的。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。
Claims (10)
1.一种星载实时操作系统中的检查点恢复容错方法,包括如下步骤:
对关键任务冗余执行,对非关键任务进行分布处理;
根据执行结果保存检查点;以及
根据保存的检查点进行检查点恢复。
2.如权利要求1所述的星载实时操作系统中的检查点恢复容错方法,其特征在于:该方法应用于三模冗余系统中。
3.如权利要求2所述的星载实时操作系统中的检查点恢复容错方法,其特征在于:该关键任务比该非关键任务具有较高优先级。
4.如权利要求3所述的星载实时操作系统中的检查点恢复容错方法,其特征在于,对该关键任务冗余执行包括如下步骤:
该关键任务完成其主要内容;
调用表决函数,利用通信函数对三个结点的中间结果进行表决;
判断是否表决成功;
若表决不成功,则发送消息至消息邮箱;若表决成功,则比较当前任务优先级是否与预留优先级相同;
若相同,则把当前任务优先级改为原优先级;若不相同,则挂起该关键任务。
5.如权利要求4所述的星载实时操作系统中的检查点恢复容错方法,其特征在于:在该非关键任务结束时,把其当前任务优先级与预留优先级比较;若相同,则把当前任务优先级改为原优先级。
6.如权利要求5所述的星载实时操作系统中的检查点恢复容错方法,其特征在于,该检查点保存的步骤包括如下步骤:
获得前一个任务的任务控制块指针;
禁止任务调度,对任务调度加锁;
判断该任务是否是检查点恢复任务,若不是则向下执行;
获得该任务的栈顶指针;
把栈中保存的寄存器值写入检查点文件;
执行堆栈检查函数,获得堆栈实际使用的长度;
把栈中实际使用的项值写入检查点文件中;
恢复被保存的任务状态;
开启任务调度,对任务调度开锁;以及
挂起该任务。
7.如权利要求6所述的星载实时操作系统中的检查点恢复容错方法,其特征在于,该检查点恢复步骤包括如下步骤:
获得消息邮箱信息;
若获得非零信息则向下执行,否则任务一直处于挂起状态;
把待恢复任务放入准备队列;
读取该检查点文件来恢复任务堆栈内容;以及
恢复任务寄存器值。
8.如权利要求1所述的星载实时操作系统中的检查点恢复容错方法,其特征在于:该关键任务与该非关键任务的次序预先写定。
9.如权利要求1所述的星载实时操作系统中的检查点恢复容错方法,其特征在于:该星载实时操作系统为μC/OS-II嵌入式系统。
10.一种星载实时操作系统中的检查点恢复容错系统,至少包括:
文件系统;
检查点记录模块,用于记录并保存检查点;
检查点恢复模块,用于根据保存的检查点执行检查点恢复任务;
表决模块,包含表决函数,用于利用该表决函数对三个节点的中间结果进行表决;以及
通信模块,利用通信函数进行通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104072537A CN102521082A (zh) | 2011-12-08 | 2011-12-08 | 一种星载实时操作系统中的检查点恢复容错方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104072537A CN102521082A (zh) | 2011-12-08 | 2011-12-08 | 一种星载实时操作系统中的检查点恢复容错方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102521082A true CN102521082A (zh) | 2012-06-27 |
Family
ID=46292015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104072537A Pending CN102521082A (zh) | 2011-12-08 | 2011-12-08 | 一种星载实时操作系统中的检查点恢复容错方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102521082A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055426A (zh) * | 2016-05-21 | 2016-10-26 | 大连理工大学 | 基于演化硬件的实时容错系统设计方法 |
CN106371951A (zh) * | 2016-08-30 | 2017-02-01 | 中国科学院空间应用工程与技术中心 | 一种实施三模冗余的方法 |
CN109947543A (zh) * | 2019-03-06 | 2019-06-28 | 华侨大学 | 一种基于单检查点机制的容错能耗优化方法 |
CN110489230A (zh) * | 2019-08-05 | 2019-11-22 | 上海航天计算机技术研究所 | 安全关键和时间关键的资源调度方法及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060020858A1 (en) * | 2004-07-20 | 2006-01-26 | Softricity, Inc. | Method and system for minimizing loss in a computer application |
CN101256526A (zh) * | 2008-03-10 | 2008-09-03 | 清华大学 | 检查点容错技术中文件状态一致性维护的实现方法 |
-
2011
- 2011-12-08 CN CN2011104072537A patent/CN102521082A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060020858A1 (en) * | 2004-07-20 | 2006-01-26 | Softricity, Inc. | Method and system for minimizing loss in a computer application |
CN101256526A (zh) * | 2008-03-10 | 2008-09-03 | 清华大学 | 检查点容错技术中文件状态一致性维护的实现方法 |
Non-Patent Citations (1)
Title |
---|
YINZHU LIU, JIANG JIANG, TING LIU: "CHECKPOINTING DESIGN AND ANALYSIS FOR UC/OS-Ⅱ", 《INTERNATIONAL CONFERENCE ON COMPUTER;25-27,NOVEMBER 2011, CHENGDU,CHINA》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055426A (zh) * | 2016-05-21 | 2016-10-26 | 大连理工大学 | 基于演化硬件的实时容错系统设计方法 |
CN106055426B (zh) * | 2016-05-21 | 2019-02-01 | 大连理工大学 | 基于演化硬件的实时容错系统设计方法 |
CN106371951A (zh) * | 2016-08-30 | 2017-02-01 | 中国科学院空间应用工程与技术中心 | 一种实施三模冗余的方法 |
CN106371951B (zh) * | 2016-08-30 | 2020-01-31 | 中国科学院空间应用工程与技术中心 | 一种实施三模冗余的方法 |
CN109947543A (zh) * | 2019-03-06 | 2019-06-28 | 华侨大学 | 一种基于单检查点机制的容错能耗优化方法 |
CN109947543B (zh) * | 2019-03-06 | 2022-11-01 | 华侨大学 | 一种基于单检查点机制的容错能耗优化方法 |
CN110489230A (zh) * | 2019-08-05 | 2019-11-22 | 上海航天计算机技术研究所 | 安全关键和时间关键的资源调度方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Avizienis | Toward systematic design of fault-tolerant systems | |
EP2539820B1 (en) | System and method for failing over cluster unaware applications in a clustered system | |
US20190316908A1 (en) | Master control system for satellite image processing | |
CN106445673B (zh) | 一种面向混合关键性实时系统的容错性任务调度方法 | |
Villalpando et al. | Reliable multicore processors for NASA space missions | |
Wensley | Sift: software implemented fault tolerance | |
Mikhail et al. | Increasing SCADA system availability by fault tolerance techniques | |
CN103064770B (zh) | 双进程冗余瞬时故障容错方法 | |
CN102521082A (zh) | 一种星载实时操作系统中的检查点恢复容错方法及系统 | |
CN102708028A (zh) | 一种可信冗余容错计算机系统 | |
Fayyaz et al. | Fault-tolerant distributed approach to satellite on-board computer design | |
Hudson et al. | Fault control using triple modular redundancy (TMR) | |
Taskeen Zaidi | Modeling for fault tolerance in cloud computing environment | |
US9280383B2 (en) | Checkpointing for a hybrid computing node | |
EP3314819A2 (en) | System for event dissemination | |
Rambo et al. | Replica-aware co-scheduling for mixed-criticality | |
Rathore | Checkpointing: fault tolerance mechanism | |
Thekkilakattil et al. | Mixed criticality systems: Beyond transient faults | |
CN108052420B (zh) | 基于Zynq-7000的双核ARM处理器抗单粒子翻转防护方法 | |
Resch et al. | Software composability and mixed criticality for triple modular redundant architectures | |
Ertugrul et al. | Fault tolerance in real-time systems: A review | |
Van Der Wijngaart et al. | Fenix A Portable Flexible Fault Tolerance Programming Framework for MPI Applications. | |
CN102902603A (zh) | 一种面向数据并行计算的容错方法 | |
Tian et al. | Design and implementation of a low-cost fault-tolerant on-board computer for micro-satellite | |
Hihara et al. | CRAFT: an experimental fault tolerant computer system for SERVIS-2 satellite |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120627 |