-
时间或事件触发作为操作系统设计的主流思想在很多领域中得到了广泛应用[1],然而在航空、航天等领域,由于系统的高可靠性与硬实时性要求,单纯的事件触发方式无论在设计,还是维护方面都存在较大困难[2]。而时间触发方式在某种程度上会降低系统的灵活性,难以满足系统需求。尤其在安全关键系统中,为了保证安全关键任务执行的可靠性和确定性,以及整个系统的资源利用率,需要在完成时间触发任务的同时,支持事件触发任务[3]。
-
安全关键系统中的任务具有4个重要属性:发布时间、时限、关键级别和最坏执行时间。其中最坏执行时间是1个多维向量,向量值与任务的关键级别相关,各元素表示任务在各个级别下的最坏执行时间[10]。下面对多关键级别的安全关键任务模型进行形式化的定义。
定义1 在1个有K个关键级别的安全关键系统中,关键级别最低为1,最高为K,任务表示为${{J}_{i}} $,则有${{J}_{i}}=({{X}_{i}}, {{A}_{i}}, {{D}_{i}}, {{\mathit{\boldsymbol{C}}}_{i}}) $。其中,Xi表示任务Ji的关键级别;Ai表示任务的发布时间;Di表示任务的时限;Ci表示任务的最坏执行时间,Ci是一个向量,$ {{\mathit{\boldsymbol{C}}}_{i}}=({{C}_{i}}(1), {{C}_{i}}(2), \cdots, {{C}_{i}}(K))$,Ci(1) 表示任务Ji在关键级别为1时的最坏执行时间,Ci(2) 表示任务Ji在关键级别为2时的最坏执行时间,Ci(K) 表示任务Ji在关键级别为K时的最坏执行时间。若K>Xi时,有${{C}_{i}}(K)={{C}_{i}}({{X}_{i}})$。本文的研究的方法是基于状态切换的,研究的对象只限定在两个关键级别的系统中,即任务只具有一高一低两种安全关键级别。在一个具有2个关键级别的系统中,低关键级别为1,高关键级别为2,任务表示为${{J}_{i}}=({{X}_{i}}, {{A}_{i}}, {{D}_{i}}, {{C}_{i}}(1), {{C}_{i}}(2)) $。
设想系统中有两个任务,其中J1的关键级别为1,J2的关键级别为2。当系统处于1级关键级别而J2未能在C2(1) 时间内执行完时,系统会提升至2级关键级别,以保证J2在C2(2) 时间内能完成执行,这时J1的执行情况则不再重要。因此,对于低关键级别的任务J1来说,系统不会允许它的执行时间超过C1(1)。
由上述分析,可以得出两点结论:
1) 对于所有的任务Ji,都有$ {{C}_{i}}(2)\ge {{C}_{i}}(1)$;
2) 如果任务Ji的$ {{X}_{i}}=1$,那么$ {{C}_{i}}(2)={{C}_{i}}(1)$.。
对于两级安全关键任务的系统I,需要设计关键级别不同的两张调度表,低关键级别状态下的S1和高关键级别状态下的S2。两张调度表的时间均从第一个任务的发布时间开始,到最后一个任务的时限结束,即$[{{\min }_{{{J}_{i}}\in I}}\{{{A}_{i}}\}, {{\max }_{{{J}_{i}}\in I}}\{{{D}_{i}}\}] $。对于任意时刻$ t\in [{{\min }_{{{J}_{i}}\in I}}\{{{A}_{i}}\}, {{\max }_{{{J}_{i}}\in I}}\{{{D}_{i}}\}]$,S1(t) 和S2(t) 分别表示调度表中t时刻应该运行的任务。在系统运行过程中,对任务的调度执行遵循下列规则:
1) 系统当前所处的关键级别用Γ表示,而系统刚开始运行时,Γ=1。
2) 当Γ=1时,在每一时刻t,任务Si(t) 执行。
如果当前运行的任务Ji在Ci(1) 时刻还未结束,那么系统在低关键级别下的调度表已经无法按计划完成了,这时系统需要提升关键级别,令Γ=2,也就是说此时将进行状态切换。
3) 当Γ=2时,在每一时刻t,任务S2(t) 执行。
如果对于两级安全关键任务系统I,能设计出满足上述规则的两张调度表S1和S2,则说I是时间触发可调度的 (TT schedulable)[11]。
现有一个两级混合关键系统I,系统中有3个任务,其相关属性如表 1所示。
表 1 示例任务属性表
任务 Xi Ai Di Ci(1) Ci(2) J1 2 0 4 2 2 J2 2 1 2 1 2 J3 1 2 3 1 1 对于这个安全关键系统来说,图 2为一种可行的任务调度表。开始系统处于低关键级别,根据调度表S1来进行任务调度:时刻0,任务J1到达,即可触发调度器进行调度;时刻1,任务J2触发,此时任务J1尚未执行完毕即被J2抢占,J2开始执行;时刻2,任务J3触发,如果J2完成执行 (即J2运行时间小于等于C2(1)),那么J3即可按时执行;到时刻3,当J3执行完时,此时系统处于空闲,可恢复之前因被抢占而挂起的任务J1。所有任务均正常执行,没有超过时限。
这是系统运行顺利情况下的任务调度。如果到时刻2,J2运行时间已等于低关键级别的最坏执行时间C2(1),仍未执行完时,系统会将关键级别从1提升至2,并进行状态切换,调度器使用的调度表由S1切换到S2。J2会保持运行直到时刻3。在系统处于高关键级别时,不再对低关键级别的任务J3提供任何保障。到时刻3,J2运行时间达到高关键级别下最坏执行时间C2(2),完成运行后,系统恢复之前因被抢占而挂起的任务J1。
-
本文研究的是时间/事件触发的安全关键任务的调度,时间触发要求系统确定性好,使用资源预留的方法提前创建调度表,有利于提高系统的确定性。而事件触发则希望调度过程可以发生任务抢占,以此来保证高关键级别任务和紧急任务。为此,本文研究的调度方法,将时间预留和优先级抢占方法结合起来。创建调度表的时候首先根据任务在该级别下的最坏执行时间,为各个任务分配好时间槽;然后再给各个任务分配优先级,允许高优先级任务对低优先级任务进行抢占。
OCBP算法[12]的思想是如果调度可以顺利进行,每次找出剩余任务中优先级最低的任务,当所有任务都被指派优先级或者剩余的任务在当前的优先级都不能被调度时,算法终止。该算法的缺陷有两个:一是任务分配过程中主要考虑任务的关键级别,与任务优先级无关;二是如果找不到最低优先级任务时,该算法就失败了。而本文提出的CDBP算法则全面考虑了任务的关键级别和紧急程度,且调度表的创建不会因为找不到最低优先级任务而终止。
定义2 相对关键度$ {{\rho }_{i}}$,是指在具有n个任务的系统I中,任务Ji相对于其他任务的关键级别的重要程度。用$ {{\rho }_{i}}=\frac{{{x}_{i}}}{\sum\limits_{j=1}^{n}{{{x}_{j}}}}$来表示,其中xi和xj是各任务在系统某个统一时刻的关键级别[13]。
假设系统中有4个任务,关键级别分别为1,2,1,2,则${{\rho }_{i}} $分别为$\frac{1}{6}, \frac{1}{3}, \frac{1}{6}, \frac{1}{3}$。
定义3 关键额度${{\delta }_{i}} $,是指在具有K个关键级别的系统I中,Ji当前所处级别在当前系统的关键级别k下所具有的关键份数。用$ {{\delta }_{i}}=\frac{{{x}_{i}}}{k}$来表示,其中xi是任务的当前关键级别。假设系统中有两个任务J1和J2,其中X1=1,X2=2,则K=2。当系统关键级别k=1时,任务J1和J2的当前关键级别x1和x2也都是1,则$ {{\delta }_{1}}={{\delta }_{2}}=1$;当系统关键级别k=2时,x1=1和x2=2,则$ {{\delta }_{1}}=\frac{1}{2}, {{\delta }_{2}}=1$。
定义4 时限紧急度di是指任务时限的先后对任务的紧急程度的影响,用$ {{d}_{i}}=\frac{1}{D_{i}^{2}}$来表示。在同等情况下,时限更早到来的任务应该具有更高的优先级。
定义5 K关键级别下的关键度$ \theta _{i}^{k}$是指在K关键级别下,任务Ji的一次执行相对于其他任务的一次执行在所处关键级别的重要程度以及利用率的一种度量。用$\theta _{i}^{k}={{\rho }_{i}}{{\delta }_{i}}{{d}_{i}} $来表示。
从关键度$ \theta _{i}^{k}$的定义可以看出,它充分体现了任务Ji的关键级别相对于其他任务的重要程度和它在系统处于某一关键级别时在整个系统中的关键程度,以及该任务的时限对紧急程度的影响。以它为基础来为系统处于某一关键级别时的各任务分配优先级,能充分体现出任务优先级的特点,在系统处于低关键级别时,也减少了不必要的任务切换,提高了系统利用率。
根据CDBP算法为任务分配优先级的流程如图 3所示。
在CDBP的算法中,在K关键级别下关键度越大的任务具有的优先级越高。在两个任务关键度相同的情况下,若系统处于低关键级别或者两个任务的关键级别相同时,时限越早的任务优先级越高;若两个任务关键级别不同且系统处于高关键级别,则关键级别高的任务优先级高。
Study on Scheduling Mechanism in Time-Triggered and Event-Triggered Safety Critical System
-
摘要: 针对大多数实时操作系统只支持事件触发的机制,该文提出了一种时间和事件双重触发的任务调度机制,并在μC/OS-Ⅱ的内核中进行了实现。在该调度机制中,针对安全关键任务模型,提出了一种简单、易操作的基于关键度(criticalitydegree based priority,CDBP)的调度算法,该算法不仅保证了系统处于高级别时,高关键级别任务的执行,而且还保证了系统处于低级别时紧急任务的执行,同时减少了不必要的任务切换开销。实验结果表明,该算法在提高系统效率方面优于OCBP(owncriticality based priority)算法。Abstract: For most real-time operating systems, only the event-triggered mechanism is supported. This paper proposes a scheduling mechanism which can support not only time-triggered but also event-triggered tasks in μC/OS-Ⅱ. For safety critical tasks in this embedded system, a simple and easy scheduling algorithm is also presented based on criticality degree based priority (CDBP). This algorithm ensures the execution of the emergency tasks at a low level and the execution of the higher critical tasks at the high level while reducing the unnecessary task switching overhead. Experimental results show that the proposed algorithm is better than own criticality based priority (OCBP) algorithm in improving the system efficiency and provides better support for the criticality tasks and emergency tasks.
-
Key words:
- embedded system /
- event-triggered /
- mixed-criticality /
- scheduling algorithm /
- time-triggered
-
表 1 示例任务属性表
任务 Xi Ai Di Ci(1) Ci(2) J1 2 0 4 2 2 J2 2 1 2 1 2 J3 1 2 3 1 1 -
[1] HEEMELS W, DONKERS M C F, TEEL A R. Periodic event-triggered control for linear systems[J]. IEEE Journal of Transactions on Automatic Control, 2013, 58(4): 847-861. doi: 10.1109/TAC.2012.2220443 [2] KOPETZ H. The complexity challenge in embedded system design[C]//The 2008 IEEE 11th International Symposium on Object OrientedReal-Time Distributed Computing (ISORC). Orlando: IEEE Computer Society, 2008, 5: 3-12. [3] MARTIJN M H P, BRIL R J, LUKKIEN J J, et al. RTOS support for mixed time-triggered and event-triggered task sets[C]//The 2012 IEEE 15th International Conference on Computational Science and Engineering. Washington, USA: IEEE Computer Society, 2012, 12: 578-585. [4] BARUAH S K, BURNS A, DAVIS R I. Response-time analysis for mixed criticality systems[C]//The 2011 IEEE 32nd Real-Time Systems Symposium (RTSS). Vienna: IEEE Computer Society, 2011, 11: 34-43. [5] THEIS J, FOHLER G. Transformation of sporadic tasks for off-line scheduling with utilization and response time trade-offs[C]//The 19th Conference on Real-Time and Network Systems. Nantes, France: [s.n.], 2011, 9: 119-128. [6] NAHAS M. Employing two 'sandwich delay' mechanisms to enhance predict-ability of embedded systems which use time-triggered co-operative architectures[J]. Journal of Software Engineering and Applications, 2011, 4(7): 411-417. doi: 10.4236/jsea.2011.47047 [7] PONT M J, KURIAN S, BAUTISTA Q R. Meeting realtime constraints using "Sandwich Delays"[M]. Lecture Notes in Computer Science, 2009(5770): 94-102. [8] 苏罗辉, 牛萌, 刘坤.时间触发系统体系结构研究[J].计算机工程与设计, 2014, 35(6): 1956-1961. http://www.cnki.com.cn/Article/CJFDTOTAL-SJSJ201406016.htm SU Luo-hui, NIU Meng, LIU Kun. Study on time-triggered system architecture[J]. Computer Engineering and Design, 2014, 35(6): 1956-1961. http://www.cnki.com.cn/Article/CJFDTOTAL-SJSJ201406016.htm [9] 陈曦, 吕伟杰, 刘鲁源.事件/时间触发嵌入式操作系统内核的设计[J].计算机工程与应用, 2009, 44(16): 87-89. doi: 10.3778/j.issn.1002-8331.2009.16.024 CHEN Xi, LÜ Wei-jie, LIU Lu-yuan. Design of eventtriggered and time-triggered embedded operating system kernel[J]. Computer Engineer and Appllications, 2009, 44(16): 87-89. doi: 10.3778/j.issn.1002-8331.2009.16.024 [10] VESTAL S. Preemptive scheduling of multi-criticality systems with varying degrees of execution time assurance[C]//The IEEE 28th International on Real-Time Systems Symposium (RTSS). Washington, USA: IEEE Computer Society, 2007, 12: 239-243. [11] BARUAH S, FOHLER G. Certification-cognizant timetriggered scheduling of mixed-criticality systems[C]//The 2011 IEEE 32nd Real-Time Systems Symposium (RTSS). Vinenna:IEEE Computer Society, 2011, 11: 3-12. [12] GU C, GUAN N, DENG Q, et al. Improving OCBP-based scheduling for mixed-criticality sporadic task systems[C]// The 2013 IEEE 19th International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA). Seoul: IEEE Computer Society, 2013, 10: 247-256. [13] 朱怡安, 黄姝娟, 段俊花, 等.新的混合关键任务调度算法的研究[J].电子科技大学学报, 2014, 43(2): 268-271. http://www.juestc.uestc.edu.cn/CN/abstract/abstract400.shtml ZHU Yi-an, HUANG Shu-juan, DUAN Jun-hua, et al. New scheduling algorithm for mixed-criticality real-time task sets[J]. Journal of University of Electronic Science and Technology of China, 2014, 43(2): 268-271. http://www.juestc.uestc.edu.cn/CN/abstract/abstract400.shtml