CN103970603A - 一种基于多级反馈队列的事件注入引擎的任务调度方法 - Google Patents

一种基于多级反馈队列的事件注入引擎的任务调度方法 Download PDF

Info

Publication number
CN103970603A
CN103970603A CN201410216140.2A CN201410216140A CN103970603A CN 103970603 A CN103970603 A CN 103970603A CN 201410216140 A CN201410216140 A CN 201410216140A CN 103970603 A CN103970603 A CN 103970603A
Authority
CN
China
Prior art keywords
event
queue
engine
scheduling
injection
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.)
Granted
Application number
CN201410216140.2A
Other languages
English (en)
Other versions
CN103970603B (zh
Inventor
王慧强
何占博
冯光升
吕宏武
郭方方
林俊宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Engineering University
Original Assignee
Harbin Engineering University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Harbin Engineering University filed Critical Harbin Engineering University
Priority to CN201410216140.2A priority Critical patent/CN103970603B/zh
Publication of CN103970603A publication Critical patent/CN103970603A/zh
Application granted granted Critical
Publication of CN103970603B publication Critical patent/CN103970603B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Injection Moulding Of Plastics Or The Like (AREA)
  • General Factory Administration (AREA)

Abstract

本发明属于计算机系统的事件注入技术领域,特别涉及一种基于多级反馈队列的事件注入引擎的任务调度方法。本发明包括:扫描器根据用户指令或系统控制信号扫描目标系统,返回包括目标系统所有脆弱点类型的扫描结果;根据所有脆弱点或用户需求分析扫描结果,确定需要注入的批量型事件的类型;扫描器将需要注入的批量型事件类型信息发送到事件模型库;事件模型库接收扫描器发送来的批量型事件类型信息,并根据批量型事件的类型选取相应的事件等。本发明具有适用范围广、反馈开销小、兼容性好、事件注入引擎利用率高,更加灵活、高效、合理的实现批量型事件注入等优点。

Description

一种基于多级反馈队列的事件注入引擎的任务调度方法
技术领域
本发明属于计算机系统的事件注入技术领域,特别涉及一种基于多级反馈队列的事件注入引擎的任务调度方法。
背景技术
事件注入技术是指通过向目标系统注入事件,同时观测和回收系统对所注入事件的反应信息并对回收的信息进行分析,进而向测试者提供相关结果的过程。在计算机系统可用性评测中,事件注入技术不但可以评测系统的某些特定指标,还可以评测系统运行时非故障类和人为因素对系统的影响。目前,事件注入技术的研究主要集中在由事件注入引擎向目标系统简单依序注入单个事件或离散地逐个注入事件的方式,导致效率较低、开销较大,无法实现高效的批量型事件注入。因此,适应批量型事件注入引擎设计便成为一个亟待解决的问题。
目前,关于事件注入的研究仍较少。现有专利主要包括:1)“基于事件注入的计算机网络可信性评测装置(200620020624.0)”。该专利针对不同级别容错机制,向目标系统注入各种网络事件,主要关心网络安全方面的问题。主要适用于向目标系统逐个注入网络相关类型事件,没有考虑注入批量性事件时事件注入引擎的优化调度问题。2)“一种脚本注入事件处理方法和系统(200710303986.X)”。该专利通过接收脚本注入检测系统输出的脚本事件,检测是否存在XSS(Cross Site Scripting)攻击并以量化形式输出结果,与本发明专利应用范围、采用方法均不同。3)“智能全自动单粒子事件故障注入器(200510111494.1)”针对的是在HDL仿真时模拟空间辐射环境等情形。此外,“Event-controlled error injectionsystem(5008885)”、“Single-event transient injection simulation method forhigh-frequency circuits(CN2013113637620130418)”均与本发明专利采用方法或应用范围不同。现有文献主要涉及基于事件注入的可信性、可靠性、安全性等问题,均是先提出事件模型或评测模型,针对不同目标系统选择相应事件类型,最终评测目标系统或软件的相关指标。均没有考虑批量型事件注入的情形,更没有提出适应批量型事件注入引擎的任务调度方法(包括“刘宇楠.基于事件注入的可靠性评测方法的设计与实现[D].哈尔滨工业大学2009”、“黄永平,常鹏飞,郭凯,金玉善.基于事件注入机制的软件调试方法与实现[J].吉林大学学报(工学版).2012(09)”等)。
从以上分析可知,现阶段事件注入研究的不足主要是:大多采用由事件注入引擎向目标系统简单依序注入单个事件或离散地逐个注入事件的方式,导致效率较低、开销较大,无法实现高效的批量型事件注入。因此,提出一种适应批量型事件注入的事件注入引擎的优化任务调度方法是非常必要的,其好处是可以更加灵活、高效、合理的实现批量型事件注入的任务调度。
发明内容
本发明的目的在于提供一种更加适用于批量型事件注入的事件,反馈开销小、兼容性好、事件注入引擎利用率高,能够更加灵活、高效、合理的实现批量型事件注入的注入引擎优化任务调度方法。
本发明的目的是这样实现的:
(1)扫描器根据用户指令或系统控制信号扫描目标系统,返回包括目标系统所有脆弱点类型的扫描结果;
(2)根据所有脆弱点或用户需求分析扫描结果,确定需要注入的批量型事件的类型;
(3)扫描器将需要注入的批量型事件类型信息发送到事件模型库;
(4)事件模型库接收扫描器发送来的批量型事件类型信息,并根据批量型事件的类型选取相应的事件;
(5)事件模型库为每个事件设置一个事件控制块ECB,ECB作为每个事件在事件注入引擎的任务调度过程中存在的标志,保存事件注入器对事件进行管理和调度所需的全部信息,包括事件标识、事件参数、事件状态、事件优先级、事件注入标准时间和事件注入失败计数器;
(6)当步骤(4)执行完成后,事件模型库将生成的批量型事件序列发送给排队器;
(7)排队器将从事件模型库获取的批量型事件序列按照每个事件的ECB中优先级的大小排序,生成以优先级最高的事件为队首、优先级最低的事件为队尾的事件后备队列,事件后备队列长度为m;
(8)排队器将事件后备队列发送到后备队列寄存器,事件注入器中的就绪调度引擎可最快找到并调度优先级最高的事件到事件就绪队列中;
(9)批量型事件由就绪调度引擎调度进入事件注入器:
(9.1)当事件就绪队列S1未满,队列长度小于n,且事件后备队列不为空时,就绪调度引擎首先向阻塞调度引擎发送调度信号,阻塞调度引擎接收到就绪调度引擎发送来的调度信号后检查注入失败阻塞队列是否为空;若注入失败阻塞队列为空,跳转到(9.2);若不空,即注入失败阻塞队列中存在已注入失败且等待再次调度的事件,跳转到(9.3);
(9.2)就绪调度引擎在接收到阻塞调度引擎发送来的反馈信号后,按照FCFS算法从事件注入器外的事件后备队列队首取下一个事件,入队到事件就绪队列S1队尾,并将其ECB中的事件状态设置为就绪状态,直到S1队满或事件后备队列空为止;
(9.3)就绪调度引擎在接收到阻塞调度引擎发送来的反馈信号后优先调度注入失败阻塞队列中的事件,阻塞调度引擎根据事件ECB中的注入失败计数器判断进一步调度方式,若注入失败阻塞队列队首事件注入失败次数小于正整数j次,跳转到(9.4),若队首事件注入失败次数大于等于j次,则跳转到(9.5);
(9.4)阻塞调度引擎取下该事件并调度给就绪调度引擎,就绪调度引擎将该事件入队到S1队尾,并将其ECB中的事件状态设置为就绪状态,直到S1队满或注入失败阻塞队列空为止;
(9.5)阻塞调度引擎根据其ECB中的事件标识直接给事件模型库发送重新获取该事件及其ECB的信号,阻塞调度引擎从注入失败阻塞队列取下并删除该事件,直到注入失败阻塞队列空为止,就绪调度引擎对该事件重新执行(9.1)完整调度过程。
(10)事件注入器内事件注入的任务调度:
(10.1)多级反馈调度引擎按照FCFS算法取下事件就绪队列Si队首事件并发送到事件注入引擎;
(10.2)事件注入引擎将事件ECB中的事件状态设置为注入状态,并根据事件参数对相应目标实施注入;
(10.3)事件注入引擎监视注入过程,包括注入耗时和注入成功与否:若事件根据ECB在对应的时间片内成功完成注入,跳转到(10.4);若事件根据ECB中在对应的时间片内未成功完成注入,跳转到(10.5);若事件在注入过程中注入失败,不能继续注入,则跳转到(10.6);
(10.4)事件注入引擎将事件ECB中事件状态设置为完成状态,将事件撤离事件注入器,恢复事件注入引擎自身现场状态,准备注入下一事件;
(10.5)事件注入引擎向多级反馈调度引擎发送注入未完成信号,并将事件退还给多级反馈队列引擎,恢复自身现场状态准备注入下一事件,多级反馈队列引擎收到注入未完成信号后,接收退回的事件,从事件就绪队列Si调度下一事件给事件注入引擎,再将被退回的事件调度到事件就绪队列Si+1的队尾;
(10.6)事件注入引擎无需等待时间片结束,直接将失败事件调度到注入失败阻塞队列队尾,将ECB中的事件状态设置为阻塞状态,注入失败计数器加1;当事件处在注入失败阻塞队列队首,且就绪调度引擎向阻塞调度引擎发送调度信号时,阻塞调度引擎根据事件ECB中的注入失败次数判断进一步调度方式。
时间片设置及调度方法是:当事件在队列Si,i是正整数,i∈[1,k)中时,根据TSi+1=2TSi,TS1为ECB中的一个标准时间片,若事件注入引擎对事件在对应时间片内未成功完成注入,则将事件放入队列Si+1队尾,当一个事件依次降到Sk队列时,则事件注入引擎便采取2k-1倍的标准时间片轮转方式持续实施注入,直到事件完成注入。
在步骤(10.5)中:当S1~Si-1队列均空时,多级反馈调度引擎才调度Si队列中的事件给事件注入引擎,当事件注入引擎在对队列Si中事件实施注入时,若有新的事件进入优先权更高的队列,则新事件将经由多级反馈调度引擎向事件注入引擎发送抢占信号,事件注入引擎接收到抢占信号后暂停注入,向多级反馈调度引擎发送注入未完成信号,将事件退还给多级反馈队列引擎,并恢复自身现场状态,再为高优先权事件实施注入,多级反馈调度引擎将原事件放回原队列Si的末尾,而不是下一级队列的末尾。
本发明的有益效果是:
将多级反馈队列与多层次调度模型机制相融合,实现了反馈开销小、兼容性好、事件注入引擎利用率高,更加灵活、高效、合理的批量型事件注入。为批量型事件中的每个事件均设置事件控制块ECB,ECB中包括事件的标识、参数、状态、优先级、注入标准时间和失败次数计数器等,强化了对事件的管理和调度,实现了按照优先级原则进行事件注入的优化任务调度方式。同时,将大部分待注入事件存放在资源紧俏的事件注入器外,减小了事件注入器资源的占用和运行负载,精简了事件注入器的设计。因此,本发明具有适用范围广、反馈开销小、兼容性好、事件注入引擎利用率高,更加灵活、高效、合理的实现批量型事件注入等优点。可广泛应用于国防工业和国民经济的各种关键任务系统中的事件注入技术领域,特别是对批量型事件实施事件注入等情形。
附图说明
图1基于多级反馈队列的事件注入引擎的任务调度示意图;
图2批量型事件由就绪调度引擎调度进入事件注入器流程图;
图3事件注入器内事件注入的任务调度流程图。
具体实施方式
下面结合附图对本发明做进一步描述。
本发明的基于多级反馈队列的事件注入引擎的任务调度方法,将多级反馈队列与多层次调度模型机制相融合,设计事件注入引擎的任务调度方法。本方法反馈开销小、兼容性好、事件注入引擎利用率高,能够更加灵活、高效、合理的实现批量型事件注入。
本方法在事件注入引擎的任务调度流程中涉及的组件包括:事件注入器、扫描器、事件模型库、排队器和后备队列寄存器。基于多级反馈队列的事件注入引擎的任务调度示意图见附图1。其中各器件的工作原理和调度流程说明如下:
1、扫描器
1)扫描器根据用户指令或系统控制信号扫描目标系统,返回包括目标系统所有脆弱点类型的扫描结果;
2)根据所有脆弱点或用户需求分析扫描结果,确定需要注入的批量型事件的类型;
3)最后,扫描器将需要注入的批量型事件类型信息发送到事件模型库。
2、事件模型库
1)事件模型库接收扫描器发送来的批量型事件类型信息,并根据批量型事件的类型选取相应的事件;
2)事件模型库为每个事件设置了一个事件控制块(ECB),ECB作为每个事件在事件注入引擎的任务调度过程中存在的标志,其中保存了事件注入器对事件进行管理和调度所需的全部信息,包括事件标识、事件参数、事件状态(包括就绪、注入、完成、阻塞四种状态)、事件优先级(利用0~255中某一整数表示,其中“0”表示最高优先权,数值越大,优先权越低)、事件注入标准时间和事件注入失败计数器;
3)当1)执行完成后,事件模型库将生成的批量型事件序列(其中每个事件均设置有ECB)发送给排队器。
3、排队器和后备队列寄存器
1)排队器将从事件模型库获取的批量型事件序列按照每个事件的ECB中优先级的大小排序,生成以优先级最高的事件为队首、优先级最低的事件为队尾的事件后备队列。其中,事件后备队列长度为m(m是正整数);
2)排队器将事件后备队列发送到后备队列寄存器。由此,事件注入器中的就绪调度引擎可最快找到并调度优先级最高的事件到事件就绪队列中。
4、事件注入器及其任务调度流程
事件注入器包括事件注入引擎、就绪调度引擎、多级反馈队列引擎、阻塞调度引擎、事件就绪队列集合和注入失败阻塞队列。
其中,事件就绪队列集合包括事件就绪队列S1,事件就绪队列S2,…,事件就绪队列Sk,事件就绪队列长度均为n,调度优先级为S1>S2>S3>…>Sk,时间片设置规则为TSi+1=2TSi(i∈[1,k)),TS1为事件注入引擎在注入每个事件时根据其ECB获得的标准时间片,注入失败阻塞队列长度为p。以上k、n、i、p均是正整数。此外,当注入失败阻塞队列和事件后备队列同时存在待调度事件时,就绪调度引擎优先调度注入失败阻塞队列中的事件。
本发明的事件注入的任务调度流程分4.1、4.2两个层次,流程分别如下:
4.1批量型事件由就绪调度引擎调度进入事件注入器流程(见附图2)
1)当事件就绪队列S1未满(队列长度小于n)且事件后备队列不为空时,就绪调度引擎首先向阻塞调度引擎发送调度信号,阻塞调度引擎接收到就绪调度引擎发送来的调度信号后检查注入失败阻塞队列是否为空。若注入失败阻塞队列为空,跳转到2)。若不空,即注入失败阻塞队列中存在已注入失败且等待再次调度的事件,跳转到3);
2)就绪调度引擎在接收到阻塞调度引擎发送来的反馈信号后,按照FCFS(先来先调度)算法从事件注入器外的事件后备队列队首取下一个事件,入队到事件就绪队列S1队尾,并将其ECB中的事件状态设置为就绪状态,直到S1队满或事件后备队列空为止;
3)此时,就绪调度引擎在接收到阻塞调度引擎发送来的反馈信号后优先调度注入失败阻塞队列中的事件。其中,阻塞调度引擎根据事件ECB中的注入失败计数器判断进一步调度方式。若注入失败阻塞队列队首事件注入失败次数小于j(j为正整数)次,跳转到4)。若队首事件注入失败次数大于等于j次,则跳转到5);
4)阻塞调度引擎取下该事件并调度给就绪调度引擎,就绪调度引擎将该事件入队到S1队尾,并将其ECB中的事件状态设置为就绪状态,直到S1队满或注入失败阻塞队列空为止;
5)阻塞调度引擎根据其ECB中的事件标识直接给事件模型库发送重新获取该事件及其ECB的信号,然后,阻塞调度引擎从注入失败阻塞队列取下并删除该事件,直到注入失败阻塞队列空为止。就绪调度引擎对该事件重新执行4.1完整调度过程。
4.2事件注入器内事件注入的任务调度流程(见附图3)
1)多级反馈调度引擎按照FCFS(先来先调度)算法取下事件就绪队列Si队首事件并发送到事件注入引擎;
2)事件注入引擎将事件ECB中的事件状态设置为注入状态,并根据事件参数对相应目标实施注入;
3)事件注入引擎监视注入过程,包括注入耗时和注入成功与否。若该事件根据其ECB在对应的时间片内成功完成注入,跳转到4);若该事件根据其ECB中在对应的时间片内未成功完成注入,跳转到5);若该事件在其注入过程中注入失败,不能继续注入,则跳转到6);
4)事件注入引擎将该事件ECB中事件状态设置为完成状态,将其撤离事件注入器,恢复事件注入引擎自身现场状态,准备注入下一事件;
5)事件注入引擎向多级反馈调度引擎发送注入未完成信号,并将该事件退还给多级反馈队列引擎,恢复自身现场状态准备注入下一事件。多级反馈队列引擎收到注入未完成信号后,接收退回的事件,从事件就绪队列Si调度下一事件给事件注入引擎,再将被退回的事件调度到事件就绪队列Si+1的队尾;
6)此时,事件注入引擎无需等待时间片结束,直接将失败事件调度到注入失败阻塞队列队尾,同时将其ECB中的事件状态设置为阻塞状态,注入失败计数器加1。当事件处在注入失败阻塞队列队首,且就绪调度引擎向阻塞调度引擎发送调度信号时,阻塞调度引擎根据事件ECB中的注入失败次数判断进一步调度方式,如4.1所述。
本发明的涉及4.2中过程5)的时间片设置及调度方法是:当事件在队列Si(i是正整数,i∈[1,k))中时,根据TSi+1=2TSi(TS1为ECB中的一个标准时间片),若事件注入引擎对其在对应时间片内未成功完成注入,则将该事件放入队列Si+1队尾。当一个事件依次降到Sk队列时,则事件注入引擎便采取2k-1倍的标准时间片轮转方式持续实施注入,直到该事件完成注入。
本发明的涉及4.2中过程5)的优先权抢占方法是:当S1~Si-1队列均空时,多级反馈调度引擎才调度Si队列中的事件给事件注入引擎。当事件注入引擎在对队列Si中事件实施注入时,若有新的事件进入优先权更高的队列,则新事件将经由多级反馈调度引擎向事件注入引擎发送抢占信号,事件注入引擎接收到抢占信号后暂停注入,向多级反馈调度引擎发送注入未完成信号,将该事件退还给多级反馈队列引擎,并恢复自身现场状态,再为高优先权事件实施注入。此时,多级反馈调度引擎将原事件放回原队列Si的末尾,而不是下一级队列的末尾。
本发明将多级反馈队列与多层次调度模型机制相融合,实现了更加适用于批量型事件注入的基于多级反馈队列的事件注入引擎的任务调度方法。下面结合三个具体实施例详细阐述使用本发明方法对批量型事件序列实施注入时事件注入引擎的任务调度流程。由此可延伸到更大的批量型事件的事件注入应用中。
本方法在事件注入引擎的任务调度流程中涉及的组件包括:事件注入器、扫描器、事件模型库、排队器和后备队列寄存器。
1、扫描器
1)扫描器根据用户指令或系统控制信号扫描目标系统,返回包括目标系统所有脆弱点类型的扫描结果;
2)根据所有脆弱点或用户需求分析扫描结果,确定需要注入的批量型事件的类型包括针对CPU利用率型和针对内存利用率型两种;
3)最后,扫描器将针对CPU利用率型和针对内存利用率型两种类型信息发送到事件模型库。
2、事件模型库
1)事件模型库接收扫描器发送来的针对CPU、内存利用率型两种类型信息,并根据这两种类型选取事件A1、事件A2;
2)事件模型库为事件A1、A2分别设置了一个事件控制块(ECB),对应事件标识、事件参数、事件状态、事件优先级、事件注入标准时间和事件注入失败计数器顺序,A1的ECB信息为:A1、a1、无状态、0、1s、0;A2的ECB信息为:A2、a2、无状态、1、1s、0。另外,设定事件B已经注入失败一次,处于注入失败阻塞队列队首,B的ECB信息为:B、b、阻塞状态、2、2s、1。
3)当1)执行完成后,事件模型库将生成的批量型事件序列A1、A2(均设置有ECB)发送给排队器。
3、排队器和后备队列寄存器
1)排队器将从事件模型库获取的批量型事件序列A1、A2按照ECB中优先级的大小排序,因A1的优先级为0、A2的优先级为1,故生成以A1队首、A2为队尾的事件后备队列。其中,事件后备队列长度m=5;
2)排队器将事件后备队列发送到后备队列寄存器。由此,事件注入器中的就绪调度引擎可按优先级依次调度A1、A2到事件就绪队列中。
4、事件注入器及其任务调度流程
事件注入器包括事件注入引擎、就绪调度引擎、多级反馈队列引擎、阻塞调度引擎、事件就绪队列集合和注入失败阻塞队列。
其中,事件就绪队列集合包括事件就绪队列S1,事件就绪队列S2,…,事件就绪队列Sk,事件就绪队列长度均为n=5,调度优先级为S1>S2>S3>…>Sk,时间片设置规则为TSi+1=2TSi(i∈[1,k)),TS1为事件注入引擎在注入每个事件时根据其ECB获得的标准时间片,注入失败阻塞队列长度p=5。以上k、n、i、p均是正整数。此外,当注入失败阻塞队列和事件后备队列同时存在待调度事件时,就绪调度引擎优先调度注入失败阻塞队列中的事件。
本发明的事件注入的任务调度流程分4.1、4.2两个层次,流程分别如下:
4.1批量型事件由就绪调度引擎调度进入事件注入器流程
1)此时,事件就绪队列S1为空且事件后备队列存在事件A1、A2。就绪调度引擎首先向阻塞调度引擎发送调度信号,阻塞调度引擎接收到就绪调度引擎发送来的信号后检查发现注入失败阻塞队列存在事件B,故跳转到3);
2)就绪调度引擎在接收到阻塞调度引擎发送来的注入失败阻塞队列已为空反馈信号后,按照FCFS(先来先调度)算法从事件注入器外的事件后备队列队首依次取下事件A1、A2,入队到事件就绪队列S1队尾,并将A1、A2的ECB中事件状态设置为就绪状态。此时,事件后备队列和注入失败阻塞队列均为空,就绪调度引擎暂时停止调度;
3)就绪调度引擎在接收到阻塞调度引擎发送来的反馈信号后优先调度注入失败阻塞队列中的事件B。阻塞调度引擎根据事件ECB中的注入失败次数与j的关系判断进一步调度方式,设定j=2。由于事件B的注入失败次数为1,故跳转到4);当事件B再次注入失败,即注入失败次数变为2时,跳转到5);
4)阻塞调度引擎取下事件B并调度给就绪调度引擎,就绪调度引擎将事件B入队到S1中,并将其ECB中的事件状态由阻塞状态更改为就绪状态。此时,由于事件就绪队列S1未满且事件后备队列存在事件A1、A2,故跳转到2);
5)阻塞调度引擎根据事件B的ECB中事件标识给事件模型库发送重新获取事件B及其ECB的信号,然后,阻塞调度引擎从注入失败阻塞队列取下并删除事件B,直到注入失败阻塞队列空为止。就绪调度引擎对该事件重新执行4.1完整调度过程。
4.2事件注入器内事件注入的任务调度流程
1)多级反馈调度引擎按照FCFS(先来先调度)算法取下事件就绪队列S1队首事件B并发送到事件注入引擎;
2)事件注入引擎将事件B的ECB中事件状态设置为注入状态,并根据事件B的参数b对相应目标实施注入;
3)事件注入引擎监视注入过程,包括注入耗时和注入成功与否。事件B在其注入过程中再次注入失败,不能继续注入,故跳转到6);事件A1在其注入标准时间1s内成功完成注入,跳转到4);事件A2在其注入标准时间1s未成功完成注入,跳转到5);
4)事件注入引擎将事件A1的ECB中事件状态设置为完成状态,将其撤离事件注入器,即事件A1注入完成。事件注入引擎恢复自身现场状态,准备注入下一事件;
5)事件注入引擎向多级反馈调度引擎发送注入未完成信号,并将事件A2退还给多级反馈队列引擎,恢复自身现场状态准备注入下一事件。多级反馈队列引擎收到注入未完成信号后,接收事件A2,此时事件B已再次进入S1,则多级反馈队列再次将事件B调度给事件注入引擎,然后,将事件A2调度到事件就绪队列S2的队尾。此时,事件B在其注入标准时间2s内成功完成,则事件注入引擎将事件B的ECB中事件状态设置为完成状态,将其撤离事件注入器,即事件B注入完成。当S1空时,多级反馈调度引擎再次调度S2中的事件A2给事件注入引擎,根据时间片设置规则,事件注入引擎在其注入标准时间的2倍,即4s内成功完成,则事件注入引擎将事件A2的ECB中事件状态设置为完成状态,将其撤离事件注入器,即事件A2注入完成;
6)此时,事件注入引擎无需等待时间片结束,直接将事件B调度到注入失败阻塞队列中,同时将其ECB中的事件状态设置为阻塞状态,注入失败次数为2。首先,由于j=2,当就绪调度引擎向阻塞调度引擎发送调度信号时,阻塞调度引擎根据事件B的事件标识B直接给事件模型库发送重新获取事件B及其ECB的信号,其次,阻塞调度引擎从注入失败阻塞队列取下并删除事件B,直到注入失败阻塞队列空为止。之后,事件B由事件模型库重新生成,此时其ECB信息为:B、b、无状态、2、2s、0,并经由排队器、后备队列寄存器后,如前述4.1的调度流程,经就绪调度引擎再次调度进入事件就绪队列S1队尾。
本发明所提出的一种基于多级反馈队列的事件注入引擎的任务调度方法,将多级反馈队列与多层次调度模型机制相融合,为批量型事件中的每个事件均设置事件控制块ECB,强化了对事件的管理和调度,实现了按照优先级原则进行事件注入的优化任务调度方式。具有适用范围广、反馈开销小、兼容性好、事件注入引擎利用率高,更加灵活、高效、合理的实现批量型事件注入等优点。可广泛应用于国防工业和国民经济的各种关键任务系统中的事件注入技术领域,特别是对批量型事件实施事件注入等情形。

Claims (3)

1.一种基于多级反馈队列的事件注入引擎的任务调度方法,其特征在于:
(1)扫描器根据用户指令或系统控制信号扫描目标系统,返回包括目标系统所有脆弱点类型的扫描结果;
(2)根据所有脆弱点或用户需求分析扫描结果,确定需要注入的批量型事件的类型;
(3)扫描器将需要注入的批量型事件类型信息发送到事件模型库;
(4)事件模型库接收扫描器发送来的批量型事件类型信息,并根据批量型事件的类型选取相应的事件;
(5)事件模型库为每个事件设置一个事件控制块ECB,ECB作为每个事件在事件注入引擎的任务调度过程中存在的标志,保存事件注入器对事件进行管理和调度所需的全部信息,包括事件标识、事件参数、事件状态、事件优先级、事件注入标准时间和事件注入失败计数器;
(6)当步骤(4)执行完成后,事件模型库将生成的批量型事件序列发送给排队器;
(7)排队器将从事件模型库获取的批量型事件序列按照每个事件的ECB中优先级的大小排序,生成以优先级最高的事件为队首、优先级最低的事件为队尾的事件后备队列,事件后备队列长度为m;
(8)排队器将事件后备队列发送到后备队列寄存器,事件注入器中的就绪调度引擎可最快找到并调度优先级最高的事件到事件就绪队列中;
(9)批量型事件由就绪调度引擎调度进入事件注入器:
(9.1)当事件就绪队列S1未满,队列长度小于n,且事件后备队列不为空时,就绪调度引擎首先向阻塞调度引擎发送调度信号,阻塞调度引擎接收到就绪调度引擎发送来的调度信号后检查注入失败阻塞队列是否为空;若注入失败阻塞队列为空,跳转到(9.2);若不空,即注入失败阻塞队列中存在已注入失败且等待再次调度的事件,跳转到(9.3);
(9.2)就绪调度引擎在接收到阻塞调度引擎发送来的反馈信号后,按照FCFS算法从事件注入器外的事件后备队列队首取下一个事件,入队到事件就绪队列S1队尾,并将其ECB中的事件状态设置为就绪状态,直到S1队满或事件后备队列空为止;
(9.3)就绪调度引擎在接收到阻塞调度引擎发送来的反馈信号后优先调度注入失败阻塞队列中的事件,阻塞调度引擎根据事件ECB中的注入失败计数器判断进一步调度方式,若注入失败阻塞队列队首事件注入失败次数小于正整数j次,跳转到(9.4),若队首事件注入失败次数大于等于j次,则跳转到(9.5);
(9.4)阻塞调度引擎取下该事件并调度给就绪调度引擎,就绪调度引擎将该事件入队到S1队尾,并将其ECB中的事件状态设置为就绪状态,直到S1队满或注入失败阻塞队列空为止;
(9.5)阻塞调度引擎根据其ECB中的事件标识直接给事件模型库发送重新获取该事件及其ECB的信号,阻塞调度引擎从注入失败阻塞队列取下并删除该事件,直到注入失败阻塞队列空为止,就绪调度引擎对该事件重新执行(9.1)完整调度过程。
(10)事件注入器内事件注入的任务调度:
(10.1)多级反馈调度引擎按照FCFS算法取下事件就绪队列Si队首事件并发送到事件注入引擎;
(10.2)事件注入引擎将事件ECB中的事件状态设置为注入状态,并根据事件参数对相应目标实施注入;
(10.3)事件注入引擎监视注入过程,包括注入耗时和注入成功与否:若事件根据ECB在对应的时间片内成功完成注入,跳转到(10.4);若事件根据ECB中在对应的时间片内未成功完成注入,跳转到(10.5);若事件在注入过程中注入失败,不能继续注入,则跳转到(10.6);
(10.4)事件注入引擎将事件ECB中事件状态设置为完成状态,将事件撤离事件注入器,恢复事件注入引擎自身现场状态,准备注入下一事件;
(10.5)事件注入引擎向多级反馈调度引擎发送注入未完成信号,并将事件退还给多级反馈队列引擎,恢复自身现场状态准备注入下一事件,多级反馈队列引擎收到注入未完成信号后,接收退回的事件,从事件就绪队列Si调度下一事件给事件注入引擎,再将被退回的事件调度到事件就绪队列Si+1的队尾;
(10.6)事件注入引擎无需等待时间片结束,直接将失败事件调度到注入失败阻塞队列队尾,将ECB中的事件状态设置为阻塞状态,注入失败计数器加1;当事件处在注入失败阻塞队列队首,且就绪调度引擎向阻塞调度引擎发送调度信号时,阻塞调度引擎根据事件ECB中的注入失败次数判断进一步调度方式。
2.根据权利要求1所述的一种基于多级反馈队列的事件注入引擎的任务调度方法,其特征在于,时间片设置及调度方法是:当事件在队列Si,i是正整数,i∈[1,k)中时,根据TSi+1=2TSi,TS1为ECB中的一个标准时间片,若事件注入引擎对事件在对应时间片内未成功完成注入,则将事件放入队列Si+1队尾,当一个事件依次降到Sk队列时,则事件注入引擎便采取2k-1倍的标准时间片轮转方式持续实施注入,直到事件完成注入。
3.根据权利要求1所述的一种基于多级反馈队列的事件注入引擎的任务调度方法,其特征在于,在步骤(10.5)中:当S1~Si-1队列均空时,多级反馈调度引擎才调度Si队列中的事件给事件注入引擎,当事件注入引擎在对队列Si中事件实施注入时,若有新的事件进入优先权更高的队列,则新事件将经由多级反馈调度引擎向事件注入引擎发送抢占信号,事件注入引擎接收到抢占信号后暂停注入,向多级反馈调度引擎发送注入未完成信号,将事件退还给多级反馈队列引擎,并恢复自身现场状态,再为高优先权事件实施注入,多级反馈调度引擎将原事件放回原队列Si的末尾,而不是下一级队列的末尾。
CN201410216140.2A 2014-05-21 2014-05-21 一种基于多级反馈队列的事件注入引擎的任务调度方法 Expired - Fee Related CN103970603B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410216140.2A CN103970603B (zh) 2014-05-21 2014-05-21 一种基于多级反馈队列的事件注入引擎的任务调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410216140.2A CN103970603B (zh) 2014-05-21 2014-05-21 一种基于多级反馈队列的事件注入引擎的任务调度方法

Publications (2)

Publication Number Publication Date
CN103970603A true CN103970603A (zh) 2014-08-06
CN103970603B CN103970603B (zh) 2017-05-24

Family

ID=51240138

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410216140.2A Expired - Fee Related CN103970603B (zh) 2014-05-21 2014-05-21 一种基于多级反馈队列的事件注入引擎的任务调度方法

Country Status (1)

Country Link
CN (1) CN103970603B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105204933A (zh) * 2015-09-18 2015-12-30 上海斐讯数据通信技术有限公司 基于单进程的多任务切换执行方法、系统及处理器
CN105630455A (zh) * 2016-01-29 2016-06-01 山东鲁能智能技术有限公司 多数据源的数据队列存储有序控制方法及系统
CN105656801A (zh) * 2015-12-31 2016-06-08 迈普通信技术股份有限公司 一种并发控制方法及装置
CN105763584A (zh) * 2014-12-17 2016-07-13 金蝶软件(中国)有限公司 消息处理方法和装置
CN106201689A (zh) * 2016-07-07 2016-12-07 哈尔滨工程大学 一种具有时序控制的多队列事件注入装置和方法
CN106445651A (zh) * 2015-08-07 2017-02-22 北京京东尚科信息技术有限公司 执行任务的方法及系统
CN107391248A (zh) * 2017-07-28 2017-11-24 四川华泰电气股份有限公司 用于stm32系统的多级反馈队列调度方法
CN108009015A (zh) * 2018-01-10 2018-05-08 烟台大学文经学院 实时嵌入式操作系统的事件处理方法
CN110430223A (zh) * 2019-09-12 2019-11-08 北京京航计算通讯研究所 基于多级反馈队列的车辆控制系统网络安全检测系统
CN110445810A (zh) * 2019-09-12 2019-11-12 北京京航计算通讯研究所 基于多级反馈队列的车辆控制系统网络安全检测方法
CN110570075A (zh) * 2019-07-18 2019-12-13 北京邮电大学 一种电力业务边缘计算任务分配方法及装置
CN112650687A (zh) * 2020-12-30 2021-04-13 绿盟科技集团股份有限公司 引擎调度动作执行优先级的测试方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983286A (zh) * 2005-12-14 2007-06-20 上海微小卫星工程中心 智能全自动单粒子事件故障注入器
US20090158259A1 (en) * 2007-12-17 2009-06-18 International Business Machines Corporation Deterministic pseudo-random fault event recordation and injection tool
CN101471781A (zh) * 2007-12-24 2009-07-01 北京启明星辰信息技术股份有限公司 一种脚本注入事件处理方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983286A (zh) * 2005-12-14 2007-06-20 上海微小卫星工程中心 智能全自动单粒子事件故障注入器
US20090158259A1 (en) * 2007-12-17 2009-06-18 International Business Machines Corporation Deterministic pseudo-random fault event recordation and injection tool
CN101471781A (zh) * 2007-12-24 2009-07-01 北京启明星辰信息技术股份有限公司 一种脚本注入事件处理方法和系统

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105763584A (zh) * 2014-12-17 2016-07-13 金蝶软件(中国)有限公司 消息处理方法和装置
CN106445651A (zh) * 2015-08-07 2017-02-22 北京京东尚科信息技术有限公司 执行任务的方法及系统
CN105204933A (zh) * 2015-09-18 2015-12-30 上海斐讯数据通信技术有限公司 基于单进程的多任务切换执行方法、系统及处理器
CN105656801A (zh) * 2015-12-31 2016-06-08 迈普通信技术股份有限公司 一种并发控制方法及装置
CN105656801B (zh) * 2015-12-31 2018-10-30 迈普通信技术股份有限公司 一种并发控制方法及装置
CN105630455B (zh) * 2016-01-29 2018-10-02 山东鲁能智能技术有限公司 多数据源的数据队列存储有序控制方法及系统
CN105630455A (zh) * 2016-01-29 2016-06-01 山东鲁能智能技术有限公司 多数据源的数据队列存储有序控制方法及系统
CN106201689B (zh) * 2016-07-07 2019-10-18 哈尔滨工程大学 一种具有时序控制的多队列事件注入装置和方法
CN106201689A (zh) * 2016-07-07 2016-12-07 哈尔滨工程大学 一种具有时序控制的多队列事件注入装置和方法
CN107391248A (zh) * 2017-07-28 2017-11-24 四川华泰电气股份有限公司 用于stm32系统的多级反馈队列调度方法
CN107391248B (zh) * 2017-07-28 2019-10-25 四川华泰电气股份有限公司 用于stm32系统的多级反馈队列调度方法
CN108009015A (zh) * 2018-01-10 2018-05-08 烟台大学文经学院 实时嵌入式操作系统的事件处理方法
CN110570075A (zh) * 2019-07-18 2019-12-13 北京邮电大学 一种电力业务边缘计算任务分配方法及装置
CN110570075B (zh) * 2019-07-18 2022-04-05 北京邮电大学 一种电力业务边缘计算任务分配方法及装置
CN110430223A (zh) * 2019-09-12 2019-11-08 北京京航计算通讯研究所 基于多级反馈队列的车辆控制系统网络安全检测系统
CN110445810A (zh) * 2019-09-12 2019-11-12 北京京航计算通讯研究所 基于多级反馈队列的车辆控制系统网络安全检测方法
CN110430223B (zh) * 2019-09-12 2021-07-02 北京京航计算通讯研究所 基于多级反馈队列的车辆控制系统网络安全检测系统
CN110445810B (zh) * 2019-09-12 2021-07-02 北京京航计算通讯研究所 基于多级反馈队列的车辆控制系统网络安全检测方法
CN112650687A (zh) * 2020-12-30 2021-04-13 绿盟科技集团股份有限公司 引擎调度动作执行优先级的测试方法、装置、设备及介质
CN112650687B (zh) * 2020-12-30 2024-03-19 绿盟科技集团股份有限公司 引擎调度动作执行优先级的测试方法、装置、设备及介质

Also Published As

Publication number Publication date
CN103970603B (zh) 2017-05-24

Similar Documents

Publication Publication Date Title
CN103970603A (zh) 一种基于多级反馈队列的事件注入引擎的任务调度方法
Armando et al. Bounded model checking of software using SMT solvers instead of SAT solvers
Naumovich et al. Data flow analysis for checking properties of concurrent Java programs
CN102541942B (zh) 一种数据批量转移系统及其方法
CN105302717A (zh) 一种大数据平台的检测方法及装置
EP2565790A1 (en) Method and system for injecting simulated errors
Ciardo et al. Structural symbolic CTL model checking of asynchronous systems
CN108875381A (zh) 一种支持内核模块隔离的消息服务模块的设计方案
CN107124335A (zh) 一种基于云海操作系统平台测试方法及系统
Miedl et al. Frequency scaling as a security threat on multicore systems
CN112767155B (zh) 智能合约安全交易序列生成方法、装置、介质和设备
CN103944778B (zh) 一种基于组合测试集的分布式事件注入装置
CN105550028A (zh) 一种基于缓存锁的多任务时序执行方法及系统
Zhang et al. Test case prioritization technique based on error probability and severity of UML models
Chouali et al. Assembling components using sysml with non-functional requirements
Han et al. A heuristic model-based test prioritization method for regression testing
Arons et al. Deductive verification of UML models in TLPVS
Yasukata et al. Pairwise reachability analysis for higher order concurrent programs by higher-order model checking
CN112214287A (zh) 应用软件的业务控制方法及装置、电子设备
Huang et al. Proof slicing with application to model checking web services
Davtyan et al. Brief announcement: Decentralized network supercomputing in the presence of malicious and crash-prone workers
Hong et al. Research on workflow process structure verification
CN112463578B (zh) 一种基于组件合约的逐级求解的系统测试用例生成方法
Chung et al. A new approach to deterministic execution testing for concurrent programs
Bondavalli et al. Analytical Modelling and Evaluation of the GUARDS instances: example for Space Applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170524