CN105224400B - 采用线性链表记录实时任务调度过程的方法 - Google Patents
采用线性链表记录实时任务调度过程的方法 Download PDFInfo
- Publication number
- CN105224400B CN105224400B CN201510481356.6A CN201510481356A CN105224400B CN 105224400 B CN105224400 B CN 105224400B CN 201510481356 A CN201510481356 A CN 201510481356A CN 105224400 B CN105224400 B CN 105224400B
- Authority
- CN
- China
- Prior art keywords
- task
- time
- scheduling
- node
- point
- 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.)
- Expired - Fee Related
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
采用线性链表记录实时任务调度过程的方法。实时系统中的可调度性测试、确定调度起始稳定点等都需要模拟任务的调度过程,该过程的表示方法直接关系到相应算法的运行时间或效率。本发明方法包括:根据给定的调度模型,按任务实例当前优先级从高到低顺序,采用一个线性链表记录从给定的时间起点到截止时间点内所有任务实例的调度执行,任务实例开始执行时间点记录到链表结点的start字段,任务实例执行中止时间点记录到链表结点的end字段,每个链表结点表示从该结点start字段值给出的时间点到该结点end字段值给出的时间点之间一个或多个任务实例的连续调度执行。本发明用于对给定的一组实时任务的模拟或仿真或实际应用系统中。
Description
技术领域:
本发明涉及一种采用线性链表记录实时任务调度过程的方法。
背景技术:
在实时系统设计和应用过程中,对于给定的n个周期性或者不定时发生的实时任务,经典的优先抢占调度模型,简称为CP模型,其中CP即classic preemptive,CP模型的调度方式为:每当低优先级任务在运行过程中有高优先级任务到来时,低优先级任务将被剥夺执行权而高优先级任务开始执行,当高优先级任务执行完毕且没有其它高优先级任务等待执行时,该低优先级任务从被剥夺的位置处继续执行;事务处理方式的优先抢占调度模型,简称为TP模型,其中TP即transactional preemptive,例如,TP模型有基于优先级的功能反应式编程模型,简称为P-FRP模型,其中P-FRP即priority-based functional reactive programming;或者中止并重新开始模型,简称为AR模型,其中AR即abort-and-restart;或者软件事务存储器模型,简称为STM模型,STM即software transactionalmemory,STM模型包括渴望冲突检测策略和懒惰冲突检测策略,渴望冲突检测策略简称为ECD策略,其中ECD即eager conflict detection,懒惰冲突检测策略简称为LCD策略,其中LCD即lazy conflict detection;TP模型的调度方式为:每当低优先级任务在运行过程中有高优先级任务到来时,低优先级任务将被剥夺执行权而高优先级任务开始执行,该低优先级任务已执行的结果都被废弃,当高优先级任务执行完毕且没有其它高优先级任务等待执行时,该低优先级任务从其最开始位置重新执行;符号串r←s表示将变量s的值赋值给变量r;lcm(a,b)即a和b的最小公倍数;任务的一次释放称为该任务的一个任务实例(job)或者调用(invoke)或者任务实例(instance);任务实例执行中止包括执行被高优先级任务中断和执行完成。
给定调度模型为CP模型或者TP模型;系统启动时刻为时间0,在一组n个实时任务的可调度性(或可行性)区间测试(或检验或检查或检测)这组任务的可调度性。如果该组任务是可调度的,那么在调度稳定点S之后,每隔时间长度LCMn,这组任务的调度情况就出现重复,即后续调度过程实际上是一段在长度为LCMn的时间区间[S,S+LCMn)内的调度的重复;实际测试可调度性时,当已知稳定点S时在区间[S,S+LCMn)内模拟该任务集的调度,当稳定点S未知时在区间[0,S+LCMn)内模拟该任务集的调度。从普遍情况来看,可调度性测试区间长度不小于LCMn。传统方法采用从调度时间起点开始,按时间步长增量为1的方式直至截止时间点完成调度。此前没有采用线性链表记录调度过程对任务集的可调度性进行测试的方法。
发明内容:
本发明的目的是提供一种采用线性链表记录实时任务调度过程的方法,通过使用链表结点表示任务(或事件)的调度执行阶段,达到采用线性链表记录模拟的调度过程的目的;适用于实时任务或事件优先级固定的情形。
上述的目的通过以下的技术方案实现:
一种采用线性链表记录实时任务调度过程的方法,该方法包括:根据给定的调度模型,按任务实例当前优先级从高到低顺序,采用一个线性链表记录从给定的时间起点到截止时间点内所有任务实例的调度执行,任务实例开始执行时间点记录到链表结点的start字段,任务实例执行中止时间点记录到链表结点的end字段,每个链表结点表示从该结点start字段值给出的时间点到该结点end字段值给出的时间点之间一个或多个任务实例的连续调度执行。
有益效果:
1.本发明的方法不同于已有的实时任务(或事件)可调度性测试方法,本发明的方法通过用链表结点表示任务(或事件)的调度执行阶段,采用线性链表记录测试的模拟和调度过程,已有的实时任务(或事件)可调度性测试方法没有采用线性链表记录实时任务(或事件)模拟和调度过程。
.本发明的方法采用线性链表记录调度过程,使本发明的方法的时间复杂度是测试区间内总的任务实例数量的多项式时间,因此,与已有的实时任务(或事件)可调度性测试方法的指数时间相比,从普遍情况来看,提高了效率;特别是在前n-1个较高优先级任务的最小到达周期的最小公倍数LCMn-1远大于任务数时,能够显著提高效率。例如,在实施例2和3中所用链表结点数量最多为5,即调度过程中扫描链表长度最大为5,比传统方法模拟步数为区间长度LCMn-1= LCMn=24要小得多。
本发明所述的对于n≥1个实时任务或者事件的任务集{τ1,τ2,...,τn},这些任务是周期性的或者不定时发生的,需要确定该任务集的可调度性,每个任务τi,1in,被赋予一个唯一的固定优先级i,1代表最高优先级,n代表最低优先级;每个任务τi具有以下参数:最大计算时间或者最大运行时间Ci ',拷贝时间0Ci copy,装入时间0Ci restore,Ci←Ci copy+Ci '+Ci restore,对于经典的优先抢占调度CP模型,Ci copy=Ci restore=0,即Ci←Ci ';每个任务的相邻两个任务实例或者调用或者作业的最短到达时间为Ti;每个任务实例执行完成的相对最后期限为Di;0<Cimin(Di, Ti);系统启动时间t为时刻0;每个任务的第一个任务实例相对于时间时刻0的释放偏移为Φi,即任务τi的第一个任务实例从时间0开始经过时间Φi被释放,以后至少每隔时间长度Ti被释放,即任务τi的第j个任务实例的释放时间不早于为Φi+(j–1)×Ti,这里j是大于等于1的整数;对每个k,2kn,LCM1←T1,LCMk←lcm(Tk,LCMk–1);i,j,k,n都取正整数。
附图说明:
附图1是本发明在时间区间[11,11+24)之间的可调度性测试图。
附图2是本发明在时间区间[16,16+24)之间的可调度性测试图。
具体实施方式:
实施例1:
一种采用线性链表记录实时任务调度过程的方法,该方法包括:根据给定的调度模型,按任务实例当前优先级从高到低顺序,采用一个线性链表记录从给定的时间起点到截止时间点内所有任务实例的调度执行,任务实例开始执行时间点记录到链表结点的start字段,任务实例执行中止时间点记录到链表结点的end字段,每个链表结点表示从该结点start字段值给出的时间点到该结点end字段值给出的时间点之间一个或多个任务实例的连续调度执行。
实施例2:
根据实施例1所述的采用线性链表记录实时任务调度过程的方法,按CP模型进行调度。本实施例中每个任务的优先级固定,任务实例的优先级即相应任务的优先级。
给定由4个周期性任务(或事件)构成的任务集合{τ1,τ2,τ3,τ4},系统启动时刻为0,给定稳定点S=11和调整后的释放偏移及有关参数如表1所示。LCM1=6,LCM2=24,LCM3=24,LCM4=24。按给定的CP模型,采用线性链表记录调度过程,按任务优先级从高到低,任务τ1在时间区间[11,11+6)中调度结果链表中有一个结点,其start字段值为11,end字段值为13;任务τ1,τ2在时间区间[11,11+24)中调度结果链表中有5个结点,从第一个结点开始,每个结点start字段值和end字段值依次分别为11,15;17,19;20,21;23,25;28,32;任务τ1,τ2,τ3在时间区间[11,11+24)中调度结果链表中有5个结点,从第一个结点开始,每个结点start字段值和end字段值依次分别为11,15;16,19;20,22;23,26;28,33;任务τ1,τ2,τ3,τ4在时间区间[11,11+24)中调度结果链表中有1个结点,其start字段值为11,end字段值为34。
表1 给定稳定点S=11和经过调整释放偏移之后的任务参数
任务 | 计算时间C<sub>i</sub> | 周期T<sub>i</sub> | 给定稳定点S和调整释放偏移之后的偏移Φ<sub>i</sub> |
<i>τ</i><sub>1</sub> | 2 | 6 | 11 |
<i>τ</i><sub>2</sub> | 2 | 8 | 12 |
<i>τ</i><sub>3</sub> | 1 | 8 | 16 |
<i>τ</i><sub>4</sub> | 3 | 12 | 14 |
实施例3:
根据实施例1或2所述的采用线性链表记录实时任务调度过程的方法,本实施例给定的是按TP模型进行调度。本实施例中每个任务优先级固定,任务实例的优先级即相应任务的优先级。
给定由4个周期性任务(或事件)构成的任务集合{τ1,τ2,τ3,τ4},系统启动时刻为0,给定稳定点S=16和调整后的释放偏移及有关参数如表2所示。LCM1=6,LCM2=24,LCM3=24,LCM4=24。按给定的TP模型,采用线性链表记录调度过程,按任务优先级从高到低,任务τ1在时间区间[16,16+24)中调度结果链表中有4个结点,从第一个结点开始,每个结点start字段值和end字段值依次分别为18,19;24,25;30,31;36,37;任务τ1,τ2在时间区间[16,16+24)中调度结果链表中有5个结点,从第一个结点开始,每个结点start字段值和end字段值依次分别为16,19;24,27;30,31;32,34;36,37;任务τ1,τ2,τ3在时间区间[16,16+24)中调度结果链表中有4个结点,从第一个结点开始,每个结点start字段值和end字段值依次分别为16,21;24,29;30,31;32,37;任务τ1,τ2,τ3,τ4在时间区间[16,16+24)中调度结果链表中有1个结点,其start字段值为16,end字段值为40。
表2 给定稳定点S=16和经过调整释放偏移之后的任务参数
任务 | 计算时间C<sub>i</sub> | 周期T<sub>i</sub> | 给定稳定点S和调整释放偏移之后的偏移Φ<sub>i</sub> |
<i>τ</i><sub>1</sub> | 1 | 6 | 18 |
<i>τ</i><sub>2</sub> | 2 | 8 | 16 |
<i>τ</i><sub>3</sub> | 2 | 8 | 18 |
<i>τ</i><sub>4</sub> | 3 | 12 | 16 |
Claims (1)
1.一种采用线性链表记录实时任务调度过程的方法,其特征是:该方法包括:根据给定的调度模型,按任务实例当前优先级从高到低顺序,采用一个线性链表记录从给定的时间起点到截止时间点内所有任务实例的调度执行,任务实例开始执行时间点记录到链表结点的start字段,任务实例执行中止时间点记录到链表结点的end字段,每个链表结点表示从该结点start字段值给出的时间点到该结点end字段值给出的时间点之间一个或多个任务实例的连续调度执行,采用线性链表记录调度过程,时间复杂度是测试区间内总的任务实例数量的多项式时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510481356.6A CN105224400B (zh) | 2015-08-07 | 2015-08-07 | 采用线性链表记录实时任务调度过程的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510481356.6A CN105224400B (zh) | 2015-08-07 | 2015-08-07 | 采用线性链表记录实时任务调度过程的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105224400A CN105224400A (zh) | 2016-01-06 |
CN105224400B true CN105224400B (zh) | 2019-03-22 |
Family
ID=54993390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510481356.6A Expired - Fee Related CN105224400B (zh) | 2015-08-07 | 2015-08-07 | 采用线性链表记录实时任务调度过程的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105224400B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833478A (zh) * | 2010-05-28 | 2010-09-15 | 浙江大学 | 一种基于Alarm的调度表实现方法 |
CN102831046A (zh) * | 2011-06-16 | 2012-12-19 | 中兴通讯股份有限公司 | 通讯系统中一种软件性能采集的方法及装置 |
CN103106222A (zh) * | 2011-11-15 | 2013-05-15 | 阿里巴巴集团控股有限公司 | 定时器的处理方法及装置 |
CN103699455A (zh) * | 2013-12-27 | 2014-04-02 | 重庆大学 | 一种多核实时容错系统中获取准确的最晚截止时间的方法 |
CN104156266A (zh) * | 2014-08-14 | 2014-11-19 | 黑龙江大学 | 确定实时任务或事件可调度性测试最小区间的方法 |
-
2015
- 2015-08-07 CN CN201510481356.6A patent/CN105224400B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833478A (zh) * | 2010-05-28 | 2010-09-15 | 浙江大学 | 一种基于Alarm的调度表实现方法 |
CN102831046A (zh) * | 2011-06-16 | 2012-12-19 | 中兴通讯股份有限公司 | 通讯系统中一种软件性能采集的方法及装置 |
CN103106222A (zh) * | 2011-11-15 | 2013-05-15 | 阿里巴巴集团控股有限公司 | 定时器的处理方法及装置 |
CN103699455A (zh) * | 2013-12-27 | 2014-04-02 | 重庆大学 | 一种多核实时容错系统中获取准确的最晚截止时间的方法 |
CN104156266A (zh) * | 2014-08-14 | 2014-11-19 | 黑龙江大学 | 确定实时任务或事件可调度性测试最小区间的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105224400A (zh) | 2016-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Nidagundi et al. | Introducing lean canvas model adaptation in the scrum software testing | |
CN104156266B (zh) | 确定实时任务或事件可调度性测试最小区间的方法 | |
ATE496336T1 (de) | Vorrichtung und verfahren für einen einzelnullpunktfehler-lastenverteiler | |
DE602005014691D1 (de) | Verfahren und system bezüglich netzverwaltung | |
CN102270156A (zh) | 一种实时嵌入式系统定时器管理方法 | |
CN108459966A (zh) | 测试组件的调度方法、装置、设备和计算机可读存储介质 | |
CN105260497B (zh) | 基于线性链表的实时任务可调度性测试半直接模拟方法 | |
CN105224400B (zh) | 采用线性链表记录实时任务调度过程的方法 | |
Pollack-Johnson et al. | Project planning under uncertainty using scenario analysis | |
CN105138401B (zh) | 基于线性链表的实时任务可调度性测试直接模拟方法 | |
CN105045678B (zh) | 数据库恢复方法及装置 | |
CN109902403A (zh) | 一种基于Petri网和启发式值的综合调度方法 | |
Alonso et al. | Assessment of timing properties of family products | |
CN105183640B (zh) | 基于线性链表的实时任务可调度性测试拷贝模拟方法 | |
CN106980463A (zh) | 存储系统的服务质量控制方法和装置 | |
US10198290B2 (en) | Method for composing and executing a real-time task sequence plan | |
CN113656165B (zh) | 用于jira系统的任务管理方法及装置 | |
Eren | Human and machine effects in a just‐in‐time scheduling problem | |
Yung et al. | Implementing TOAST, a Tool for Agile Software Project Management in Cloud Computing Environments. | |
CN112835773B (zh) | 一种操作系统中任务运行实时性的评估方法及装置 | |
CN106547696B (zh) | 一种面向工作流系统的测试用例生成方法及装置 | |
Zou et al. | A non-work-conserving model for P-FRP fixed priority scheduling | |
C̆apkovic̆ | Modelling, Control and Performance Evaluation of a Combined Robotic Cell by Petri Nets | |
CN116911393B (zh) | 一种量子芯片设计系统、方法、电子设备和存储介质 | |
Padilla et al. | An industrial application of simulation-based multi-objective scheduling |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190322 Termination date: 20210807 |