CN103377096B - 颗粒度可调的任务调度验证方法 - Google Patents
颗粒度可调的任务调度验证方法 Download PDFInfo
- Publication number
- CN103377096B CN103377096B CN201210118345.8A CN201210118345A CN103377096B CN 103377096 B CN103377096 B CN 103377096B CN 201210118345 A CN201210118345 A CN 201210118345A CN 103377096 B CN103377096 B CN 103377096B
- Authority
- CN
- China
- Prior art keywords
- task
- value
- program
- granularity
- way function
- 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.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种颗粒度可调的任务调度验证方法,包括以下步骤:首先对系统中的所有不同层次的任务进行编号,并设定一个全局变量来存放程序所使用的条件值和所执行的任务编号,每个任务都以任务编号,条件变量值和前一个强单向函数值为输入计算本任务的单向函数值;根据需要设定检查执行任务的颗粒度;在周期程序执行结束前,根据全局变量的存储结果计算校验值,并与程序最终值进行比较,以判断任务调度执行的结果是否正确。本发明对任务调度的验证颗粒度可以控制,适合不同的场景。单向函数运算速度快,效率高。不需要预先处理任务调度算法的结果,能够根据记录的执行路径,计算并检查任务调度执行的结果,灵活性强。
Description
技术领域
本发明涉及软件算法领域,用于检测任务调度的执行状况。
背景技术
在工业控制系统和安全信号系统(应用于航空电子、铁路信号、核电等行业)中,软件中所有任务的有序无误地执行,对于保证系统的安全可靠有着极其重要的作用。为了确保所有任务的正确执行,必须对已经执行的任务和次序进行检查。当有异常发现时,要启动故障管理机制,及时采取安全措施以避免更为严重的事故发生。
现有的相关技术大多集中在任务调度算法的设计上,而对任务调度的验证算法较少。
美国专利申请第20070265942号,描述了一种基于传感器的组装任务验证系统和方法。其每一个传感器代表一个位置和相关的工具,检测传感器的运行状况来判断组装工作的完成情况。
发明内容
本发明所要解决的技术问题是提供一种颗粒度可调的任务调度验证方法,它可以对任务调度的验证颗粒度可以控制,适合不同的场景。
为了解决以上技术问题,本发明提供了一种颗粒度可调的任务调度验证方法,包括以下步骤:
首先对系统中的所有不同层次的任务进行编号,并设定一个全局变量来存放程序所使用的条件值和所执行的任务编号,每个任务都以任务编号,条件变量值和前一个强单向函数值为输入计算本任务的单向函数值;
根据需要设定检查执行任务的颗粒度;
在周期程序执行结束前,根据全局变量的存储结果计算校验值,并与程序最终值进行比较,以判断任务调度执行的结果是否正确。
本发明的有益效果在于:对任务调度的验证颗粒度可以控制,适合不同的场景。单向函数运算速度快,效率高。不需要预先处理任务调度算法的结果,能够根据记录的执行路径,计算并检查任务调度执行的结果,灵活性强。
优选的,可以使用任务的分层编号机制,设定全局变量存储条件值和任务编号的方法,并使用循环嵌套的强单向函数来计算校验值。
优选的,包括以下步骤:
步骤一、对系统中的所有任务进行编号并且所有任务的编号都是唯一的,编号的规则应能体现不同层次的任务以及任务的执行路径;
步骤二、设定一个全局变量来存放程序所使用的条件变量值和所执行的任务编号;
步骤三、以任务编号,条件变量值和前一个强单向函数值为输入,计算执行本任务的单向函数值;
步骤四、检查执行任务的颗粒度可以根据需要设定。
步骤五、当程序执行完毕后,根据全局变量的存储结果计算校验值,并与程序最终值进行比较,当两者一致时,认为程序执行完整和正确;否则认为程序执行错误。
优选的,所述步骤三中,强单向函数可以采用SHA-1,MD5等算法,执行本任务的单向函数值Hi可以表示为:Hi=HASH(IDi,Vi,Hi-1),其中本任务编号为IDi,条件变量值为Vi,前一个单向函数值为Hi-1,单向函数为HASH(.);依次计算所有执行的任务的单向函数值,直到得到最终的结果;H0的值是预先设定的种子值,条件变量值为Vi是在执行任何分支时条件变量的值。
优选的,所述步骤五中,程序执行完毕后,会得到一个存储了执行过程的全局数组和一个最后的程序校验值,此全局数组中包含条件变量值和所执行的任务编码。
优选的,当程序执行完毕后,根据全局数组的存储结果计算任务校验值,并与程序最终值进行比较,当两者一致时,认为程序执行完整和正确;否则认为程序执行错误。
优选的,可以通过检查全局数组中存储的条件变量值和所执行的任务是否匹配,是否有遗漏、重复或者次序颠倒来检查出任务执行遗漏、重复执行或者任务执行次序错误。
优选的,还包括以下步骤:如果任务调度验证出错,会产生故障信息报告,并启动故障管理模块进行处理。
本发明还提供了一种颗粒度可调的任务调度验证方法,包括以下步骤:事先计算并分配好每个任务的校验字,然后在周期执行结束前根据程序执行的结果检查每个任务的校验字是否正确。
优选的,包括以下步骤:
初始化阶段首先为每一个任务分配一个唯一的序列号,并通过特定的算法计算每个任务的校验字,存储这些校核字;
周期运行阶段执行某个任务的时候也同时生成该任务的校验字;此时校核字的生成是以任务执行的序号为参数,任务的序号是严格累加计数或者存储在任务程序中;如果某个任务没有执行或者多次执行,此时生成的校验字就会与标准的校核字有差异。
在每个周期结束前进行任务执行的验证;任何没有执行、执行次序错误或者多次执行的任务都会被发现,并产生故障报告;系统根据故障报告的类型进行相应的处理。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细说明。
图1方法一的处理流程图;
图2任务编码示意图;
图3方法二的处理流程图。
具体实施方式
本发明公开了一种在安全关键系统中检测任务调度执行状况的方法。系统主程序可以由多个任务依次组成。在一个周期内,所有任务必须按照特定的顺序执行完毕,而且不能出现任务执行的重复和丢失。本方法可以检测到任务执行的顺序错误、重复或者遗漏。此外,本方法还可以根据需要进行任务检查颗粒度的设定,从而完成不同深度任务调度的验证。本发明可应用于监控周期内所有任务的执行状况,特别适合安全关键系统中软件任务的监控,如铁路信号系统的任务执行状态监控。
本发明提供一种颗粒度可调的任务调度检测方法,该算法能够应用于包括但并不局限于安全信号系统、工业控制系统等领域。
本发明描述了两种方法,第一种是确定的颗粒度可调的任务调度验证方法,但需要离线的数据生成;第二种是颗粒度可调的颗粒度可调的任务调度验证方法,不需要离线生成数据,但是需要记录任务执行的路径并进行检查。
如图1所示,方法一:
1)初始化阶段首先为每一个任务分配一个唯一的序列号。序列号可以是连续选取,例如1,2,3,4等等,也可以跳跃选取,如1,3,5,7等,但是要保证序列号是唯一的。选取特定的算法,并将这些任务的序号和特定的种子作为输入,计算每个任务的校验字。创建一个全局数组,利用此数组存储这些校验字。
2)周期运行阶段执行某个任务的时候,也同时生成该任务的校验字。此时校验字的生成是以任务执行的序号为参数,任务的序号是可以是严格累加计数,也可以存储在任务程序之中。任务校验字的计算结果依次存储在另外一个全局数组中。计算如果某个任务没有执行或者多次执行,此时全局数组存储的校验字与标准的校验字就会产生差异。
3)在每个周期结束前进行任务执行的验证。程序运行而计算出的校验字与在初始化阶段生成的校验字逐条比较。任何没有执行、执行次序错误或者多次执行的任务都会被发现,并产生故障报告。系统会根据故障报告的类型进行相应的处理。
如图3所示,方法二:
1)对系统中的所有任务进行编号并且所有任务的编号都是唯一的。编号的规则应能体现不同层次的任务以及任务的执行路径。这些任务的编号示例见图2。编码的形式可以是多种多样的,总体原则是使编号清晰易懂,并且对于后续的单向函数计算强度足够。
2)设定一个全局数组来存放程序所使用的条件变量值和所执行的任务编号。例如采用一个二位数组,分别存放条件变量值和任务编号。这个全局数组可以用来判断程序所走的路经是否正确。
3)在每个需要验证的任务内部,以任务编号,条件变量值和前一个强单向函数值为输入,计算执行本任务的单向函数值。此处的强单向函数可以采用SHA-1,MD5等算法。假设本任务编号为IDi,条件变量值为Vi,前一个单向函数值为Hi-i,单向函数为HASH(.),则执行本任务的单向函数值Hi可以表示为:
Hi=HASH(IDi,Vi,Hi-1)
依次计算所有执行的任务的单向函数值,直到得到最终的结果。H0的值是预先设定的种子值。条件变量值为Vi是在执行任何分支时条件变量的值。例如,‘0’、‘1’或者其它的值。
4)检查执行任务的颗粒度可以根据需要设定。检查的任务颗粒度越细,计算的工作量越大,程序执行的效率会受到影响,但是安全程度提高。通常检查任务的颗粒度和程序效率要综合考虑,以期达到最佳效果。假设任务颗粒度检查为3,则应检查到任务的编号总长度为3,如a.1.1,其中a代表最上层的任务。对于编号长度为4的子任务,如a.1.1.1则不会计算其任务的校验值,全局数组中也不会保存。
5)程序执行完毕后,会得到一个存储了执行过程的全局数组和一个最后的程序校验值。此全局数组中包含条件变量值和所执行的任务编码。
6)当程序执行完毕后,根据全局数组的存储结果计算任务校验值,并与程序最终值进行比较。当两者一致时,认为程序执行完整和正确;否则认为程序执行错误。此外,本方法能检查出任务执行遗漏、重复执行或者任务执行次序错误。这种检测可以通过检查全局数组中存储的条件变量值和所执行的任务是否匹配,是否有遗漏、重复或者次序颠倒来实现。
7)如果任务调度验证出错,会产生故障信息报告,并启动故障管理模块进行处理。
本发明并不限于上文讨论的实施方式。以上对具体实施方式的描述旨在于为了描述和说明本发明涉及的技术方案。基于本发明启示的显而易见的变换或替代也应当被认为落入本发明的保护范围。以上的具体实施方式用来揭示本发明的最佳实施方法,以使得本领域的普通技术人员能够应用本发明的多种实施方式以及多种替代方式来达到本发明的目的。
Claims (10)
1.一种颗粒度可调的任务调度验证方法,其特征在于,包括以下步骤:
首先对系统中的所有不同层次的任务进行编号,并设定一个全局变量来存放程序所使用的条件值和所执行的任务编号,每个任务都以任务编号,条件变量值和前一个强单向函数值为输入计算本任务的单向函数值;
根据需要设定检查执行任务的颗粒度;
在周期程序执行结束前,根据全局变量的存储结果计算校验值,并与程序最终值进行比较,以判断任务调度执行的结果是否正确。
2.根据权利要求1所述的颗粒度可调的任务调度验证方法,其特征在于:可以使用任务的分层编号机制,设定全局变量存储条件值和任务编号的方法,并使用循环嵌套的强单向函数来计算校验值。
3.根据权利要求2所述的颗粒度可调的任务调度验证方法,其特征在于:包括以下步骤:
步骤一、对系统中的所有任务进行编号并且所有任务的编号都是唯一的,编号的规则应能体现不同层次的任务以及任务的执行路径;
步骤二、设定一个全局变量来存放程序所使用的条件变量值和所执行的任务编号;
步骤三、以任务编号,条件变量值和前一个强单向函数值为输入,计算执行本任务的单向函数值;
步骤四、检查执行任务的颗粒度可以根据需要设定;
步骤五、当程序执行完毕后,根据全局变量的存储结果计算校验值,并与程序最终值进行比较,当两者一致时,认为程序执行完整和正确;否则认为程序执行错误。
4.根据权利要求3所述的颗粒度可调的任务调度验证方法,其特征在于:所述步骤三中,强单向函数可以采用SHA-1、MD5算法,执行本任务的单向函数值Hi可以表示为:Hi=HASH(IDi,Vi,Hi-1),其中本任务编号为IDi,条件变量值为Vi,前一个单向函数值为Hi-1,单向函数为HASH(.);依次计算所有执行的任务的单向函数值,直到得到最终的结果;H0的值是预先设定的种子值,条件变量值为Vi是在执行任何分支时条件变量的值。
5.根据权利要求3所述的颗粒度可调的任务调度验证方法,其特征在于:所述步骤五中,程序执行完毕后,会得到一个存储了执行过程的全局数组和一个最后的程序校验值,此全局数组中包含条件变量值和所执行的任务编码。
6.根据权利要求5所述的颗粒度可调的任务调度验证方法,其特征在于:当程序执行完毕后,根据全局数组的存储结果计算任务校验值,并与程序最终值进行比较,当两者一致时,认为程序执行完整和正确;否则认为程序执行错误。
7.根据权利要求6所述的颗粒度可调的任务调度验证方法,其特征在于:可以通过检查全局数组中存储的条件变量值和所执行的任务是否匹配,是否有遗漏、重复或者次序颠倒来检查出任务执行遗漏、重复执行或者任务执行次序错误。
8.根据权利要求3所述的颗粒度可调的任务调度验证方法,其特征在于:还包括以下步骤:如果任务调度验证出错,会产生故障信息报告,并启动故障管理模块进行处理。
9.根据权利要求8所述的颗粒度可调的任务调度验证方法,其特征在于,包括以下步骤:事先计算并分配好每个任务的校验字,然后在周期执行结束前根据程序执行的结果检查每个任务的校验字是否正确。
10.根据权利要求9所述的颗粒度可调的任务调度验证方法,其特征在于:包括以下步骤:
初始化阶段首先为每一个任务分配一个唯一的序列号,并通过特定的算法计算每个任务的校验字,存储这些校核字;
周期运行阶段执行某个任务的时候也同时生成该任务的校验字;此时校核字的生成是以任务执行的序号为参数,任务的序号是严格累加计数或者存储在任务程序中;如果某个任务没有执行或者多次执行,此时生成的校验字就会与标准的校核字有差异;
在每个周期结束前进行任务执行的验证;任何没有执行、执行次序错误或者多次执行的任务都会被发现,并产生故障报告;系统根据故障报告的类型进行相应的处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210118345.8A CN103377096B (zh) | 2012-04-20 | 2012-04-20 | 颗粒度可调的任务调度验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210118345.8A CN103377096B (zh) | 2012-04-20 | 2012-04-20 | 颗粒度可调的任务调度验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103377096A CN103377096A (zh) | 2013-10-30 |
CN103377096B true CN103377096B (zh) | 2016-03-23 |
Family
ID=49462253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210118345.8A Active CN103377096B (zh) | 2012-04-20 | 2012-04-20 | 颗粒度可调的任务调度验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103377096B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108231A (zh) * | 2016-11-24 | 2018-06-01 | 阿里巴巴集团控股有限公司 | 用户请求的生成、处理方法、装置、系统及电子设备 |
CN109254898B (zh) * | 2018-09-18 | 2021-09-24 | 南京科远智慧科技集团股份有限公司 | 一种软件模块执行顺序监视方法及监视系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360310A (zh) * | 2011-09-28 | 2012-02-22 | 中国电子科技集团公司第二十八研究所 | 一种分布式系统环境下的多任务进程监视方法和监视系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01226033A (ja) * | 1988-03-07 | 1989-09-08 | Toshiba Corp | タスクの優先度制御方式 |
-
2012
- 2012-04-20 CN CN201210118345.8A patent/CN103377096B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360310A (zh) * | 2011-09-28 | 2012-02-22 | 中国电子科技集团公司第二十八研究所 | 一种分布式系统环境下的多任务进程监视方法和监视系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103377096A (zh) | 2013-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Smarsly et al. | Decentralized fault detection and isolation in wireless structural health monitoring systems using analytical redundancy | |
Yin et al. | Data-driven design of robust fault detection system for wind turbines | |
CN109581871B (zh) | 免疫对抗样本的工业控制系统入侵检测方法 | |
Huang et al. | Bayesian combination of weighted principal-component analysis for diagnosing sensor faults in structural monitoring systems | |
CN115099684B (zh) | 企业安全生产管理系统及其管理方法 | |
CN104573224A (zh) | 一种基于模型检测技术的复杂机电系统可靠性评估方法 | |
CN103377096B (zh) | 颗粒度可调的任务调度验证方法 | |
CN103869804A (zh) | 程序流监控方法 | |
US20170286841A1 (en) | Monitoring device and monitoring method thereof, monitoring system, and recording medium in which computer program is stored | |
Etigowni et al. | Crystal (ball) i look at physics and predict control flow! just-ahead-of-time controller recovery | |
CN109766626B (zh) | 一种间断应力下考虑有效冲击的退化建模与寿命预测方法 | |
Weng et al. | On safety testing, validation, and characterization with scenario-sampling: A case study of legged robots | |
CN108932197A (zh) | 基于参数Bootstrap重抽样的软件失效时间预测方法 | |
Wang et al. | Reliability analysis for flight control systems using probabilistic model checking | |
Zhang et al. | Hierarchical hybrid testability modeling and evaluation method based on information fusion | |
CN104879295A (zh) | 一种基于多层流模型和故障树最小割集的大型复杂系统故障诊断方法 | |
Yusupova et al. | Cyber-physical systems and reliability issues | |
CN102662848A (zh) | 一种贝叶斯软件可靠性验证测试方法及其计算机辅助工具 | |
CN105320574A (zh) | 具有与监视对象运转状况对应的错误纠正功能的控制装置 | |
Abdelwahed et al. | Practical considerations in systems diagnosis using timed failure propagation graph models | |
Hsu et al. | Detecting artifact anomalies in temporal structured workflow as reusable assets | |
CN105450146A (zh) | 基于多维信息监测的伺服驱动系统故障预测以及诊断方法 | |
KR20120067815A (ko) | 사이버 물리 시스템을 위한 사이버 센서 장치 및 방법 | |
Mendonça et al. | Enhancing the Reliability of Perception Systems using N-version Programming and Rejuvenation | |
Ayyalasomayajula et al. | A Tool-kit for Rotorcraft Regime Recognition Codes Validation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |