留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

高利用率集合Sporadic实时任务调度方法研究

黄姝娟 肖锋 曹子建

黄姝娟, 肖锋, 曹子建. 高利用率集合Sporadic实时任务调度方法研究[J]. 电子科技大学学报, 2021, 50(4): 572-579. doi: 10.12178/1001-0548.2020228
引用本文: 黄姝娟, 肖锋, 曹子建. 高利用率集合Sporadic实时任务调度方法研究[J]. 电子科技大学学报, 2021, 50(4): 572-579. doi: 10.12178/1001-0548.2020228
HUANG Shu-Juan, XIAO Feng, CAO Zi-jian. Research on Scheduling Method of High Utilization Rate Sets for Sporadic Real-Time Tasks[J]. Journal of University of Electronic Science and Technology of China, 2021, 50(4): 572-579. doi: 10.12178/1001-0548.2020228
Citation: HUANG Shu-Juan, XIAO Feng, CAO Zi-jian. Research on Scheduling Method of High Utilization Rate Sets for Sporadic Real-Time Tasks[J]. Journal of University of Electronic Science and Technology of China, 2021, 50(4): 572-579. doi: 10.12178/1001-0548.2020228

高利用率集合Sporadic实时任务调度方法研究

doi: 10.12178/1001-0548.2020228
基金项目: 陕西省科技厅自然科学基础研究计划 (No.2020JM-565);民用飞机专项科研项目(No. MJ-2015-D-066);新型网络与检测控制国家地方联合工程实验室基金(GSYSJ2017004)
详细信息
    作者简介:

    黄姝娟(1975-),女,博士,副教授,主要从事嵌入式与分布式计算方面的研究

    通讯作者: 肖锋,E-mail:xffriends@163.com

Research on Scheduling Method of High Utilization Rate Sets for Sporadic Real-Time Tasks

  • 摘要: 该文提出一种基于最少迁移度和分割度的任务调度方法。该方法将各个实时周期任务分比例执行在不同处理器核上,并规定任务调度时的优先顺序,然后根据相应的实时调度流程对实时周期任务进行调度。并与已有的高利用率集合调度的准划分调度算法EDF-os、EDF-fm进行对比。结果表明该方法在保证系统利用率的同时,减少了任务分割和迁移的数量和不必要的任务切换开销。
  • 图  1  GEDF算法执行12个时间片结果

    图  2  EDF-fm算法任务分配的份额

    图  3  EDF-os算法任务分配的份额

    图  4  EDF-fm算法执行12个时间片结果

    图  5  EDF-os算法执行12个时间片结果

    图  6  EDF-MSTL算法执行12个时间片结果

    图  7  EDF-MSTL计算任务份额的流程图

    图  8  3种算法任务迁移度

    图  9  3种算法的任务分割度

    表  1  3种算法的系统利用率和丢失时限任务数所占总任务的比例

    随机抽取的
    任务集
    系统吞吐率 任务切换job数量占总job
    数的比例/%
    EDF-fm
    算法
    EDF-os
    算法
    EDF-MSTL
    算法
    EDF-fm
    算法
    EDF-os
    算法
    EDF-MSTL
    算法
    10.8990.9210.942 12.2112.2011.62
    20.8780.9030.948 12.4112.3911.85
    30.8810.9120.941 12.3312.3111.80
    40.8920.9170.940 12.2512.2611.69
    50.8830.9130.939 12.3112.3011.79
    60.8650.9010.937 12.6812.6611.88
    70.8870.9160.943 12.2812.2511.77
    80.9030.9210.944 12.0312.0311.60
    90.8940.9180.941 12.2212.2111.65
    100.8790.9100.939 12.3812.3511.83
    下载: 导出CSV
  • [1] CLÁUDIO M, PATRICK M Y, LUÍS N, et al. Real-time semi-partitioned scheduling of fork-join tasks using work-stealing[J]. EURASIP Journal on Embedded Systems, 2017, 1(31): 1-14.
    [2] MAGDICH A, KACEM Y H, MICKAEL K, et al. A design pattern-based approach for automatic choice of semi-partitioned and global scheduling algorithms[J]. Information and Software Technology, 2018, 97: 83-98. doi:  10.1016/j.infsof.2018.01.002
    [3] HAN Jian-jun, CAI Wen, ZHU Da-kai. Resource-aware partitioned scheduling for heterogeneous multicore real-time systems[C]//Proceedings of the 2018 55th ACM/ESDA/IEEE Design Automation Conference (DAC). San Francisco: IEEE, 2018: 1-6.
    [4] GANG Y, PELLIZZONI R, BAK S. Global real-time memory-centric scheduling for multicore systems[J]. IEEE Transactions on Computers, 2016, 65(9): 2739-2751. doi:  10.1109/TC.2015.2500572
    [5] XIAO J, ALTMEYER S, PIMENTEL A D. Schedulability analysis of global scheduling for multicore systems with shared caches[J]. IEEE Transions on Computers, 2020, DOI:  10.1109/TC.2020.2974224.
    [6] VORONOV S, ANDERSON J H. An optimal semi-partitioned scheduler assuming arbitrary affinity masks[C]//Processing of 2018 IEEE Real-Time Systems Symposium (2018RTSS). [S.l.]: IEEE, 2018: 408-420.
    [7] BONIFACI V, D’ANGELO G, MARCHETTI-SPACCAMELA A. Algorithms for hierarchical and semi-partitioned parallel scheduling[C]//Processing of 2017 IEEE International Parallel and Distributed Processing Symposium(IPDPS). Orlando, USA: IEEE, 2017.
    [8] ANDERSON J H, ERICKSON J P, DEVI U C, et al. Optimal semi-partitioned scheduling in soft real-time systems[J]. Journal of Signal Processing Systems, 2016, 84(1): 3-23. doi:  10.1007/s11265-015-0983-7
    [9] ZENG Li-ning, LEI Yuan, LI Yan-xing. A semi-partition algorithm for mixed-criticality tasks in multiprocessor platform[C]//Proceedings of the 2019 IEEE 10th International Conference on Software Engineering and Service Science (ICSESS). Beijing: IEEE, 2019: 694-697.
    [10] RAMANATHAN S, EASWARAN A. Mixed-criticality scheduling on multiprocessors with service guarantees[C]//Processing of the 21st IEEE International Symposium on Real-Time Distributed Computing in Singapore. [S.l.]: IEEE, 2018: 29-31.
    [11] XU H, BURNS A. A semi-partitioned model for mixed criticality systems[J]. Journal of Systems and Software, 2019, 150(4): 51-63.
    [12] NAIR P P, DEVARAJ R, SEN A, et al. DES based modeling and fault diagnosis in safety-critical semi-partitioned real-time systems[J]. International Federation of Automatic Control, 2017, 1(50): 5029-5034.
    [13] ANDERSON J H, ERICKSON J P, DEVI U C, et al. Optimal semi-partitioned scheduling in soft real-time systems[C]//Proceedings of the 2014 IEEE 20th International Conference on Embedded and Real-Time Computing Systems and Applications. Chongqing: IEEE, 2014: 1-10.
    [14] SANATI B, CHENG A M K. Poster abstract: Online semi-partitioned multiprocessor scheduling of soft real-time periodic tasks for QOS optimization[C]//Proceedings of the 2016 IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS). Vienna: IEEE, 2016: 1-14.
    [15] 黄姝娟, 朱怡安, 李兵哲, 等. 基于利用率和负载均衡的多核实时调度算法研究[J]. 西北工业大学学报, 2012, 30(1): 117-123. doi:  10.3969/j.issn.1000-2758.2012.01.021

    HUANG Shu-juan, ZHU Yi-an, LI Bing-zhe, et al. An efficient BUWBP (based on utilization and workload balance partition) algorithm for multiprocessor real-time system[J]. Journal of Northwestern Polytechnical University, 2012, 30(1): 117-123. doi:  10.3969/j.issn.1000-2758.2012.01.021
  • [1] 白焱, 孙万录, 宋平, 李伟.  基于时间触发光纤通道网络的交换调度算法 . 电子科技大学学报, 2022, 51(3): 392-396. doi: 10.12178/1001-0548.2021275
    [2] 谢盈, 陈建英, 吴尽昭, 丁旭阳.  一种能耗约束的多核系统任务调度算法 . 电子科技大学学报, 2019, 48(2): 247-252. doi: 10.3969/j.issn.1001-0548.2019.02.014
    [3] 陈爱国, 王玲, 任金胜, 罗光春.  基于资源分组的多约束云工作流调度算法 . 电子科技大学学报, 2017, 46(3): 562-568. doi: 10.3969/j.issn.1001-0548.2017.03.014
    [4] 黄姝娟, 刘白林, 张雅, 茹媛.  时间/事件触发的安全关键系统调度研究 . 电子科技大学学报, 2017, 46(3): 631-635. doi: 10.3969/j.issn.1001-0548.2017.03.025
    [5] 曹永立, 杨茂林, 廖勇.  基于MPCP协议的任务最坏阻塞时间分析 . 电子科技大学学报, 2016, 45(6): 1002-1007. doi: 10.3969/j.issn.1001-0548.2016.06.022
    [6] 桑楠, 赵丽, 郭文生.  多核平台嵌入式浏览器并行机制的研究与设计 . 电子科技大学学报, 2014, 43(3): 400-404. doi: 10.3969/j.issn.1001-0548.2014.03.014
    [7] 刘啸滨, 郭兵, 沈艳, 朱建, 王继禾, 伍元胜.  基于ARM处理器的嵌入式软件能耗统计模型 . 电子科技大学学报, 2012, 41(5): 770-774. doi: 10.3969/j.issn.1001-0548.2012.05.024
    [8] 任立勇, 雷明, 张磊.  P2P应用层数据流量优化 . 电子科技大学学报, 2011, 40(1): 111-115. doi: 10.3969/j.issn.1001-0548.2011.01.021
    [9] 孙强.  峰值功耗优化的力引导调度算法 . 电子科技大学学报, 2010, 39(1): 137-140,148. doi: 10.3969/j.issn.1001-0548.2010.01.031
    [10] 王俊芳, 张思东.  通用高速分组交换调度算法 . 电子科技大学学报, 2010, 39(1): 69-73. doi: 10.3969/j.issn.1001-0548.2010.01.017
    [11] 郭宁.  嵌入式系统基于RMS对象存储机制的设计与实现 . 电子科技大学学报, 2008, 37(1): 105-108.
    [12] 吴琦, 熊光泽, 廖勇.  DVS系统硬实时周期任务动态调度算法 . 电子科技大学学报, 2007, 36(5): 842-845.
    [13] 李向蔚, 桑楠, 熊光泽.  基于软件复用的嵌入式操作系统的定制 . 电子科技大学学报, 2007, 36(3): 559-562.
    [14] 张海涛, 艾云峰.  一种分布式实时嵌入式系统的调度分析算法 . 电子科技大学学报, 2007, 36(3): 489-492.
    [15] 曹玲芝, 庞宏, 崔光照, 石军.  基于S3C2410的电话远程家电智能控制系统 . 电子科技大学学报, 2006, 35(3): 359-362.
    [16] 杨仕平, 桑楠, 熊光泽, 刘校矢.  高可信赖实时操作系统的防危调度机制 . 电子科技大学学报, 2006, 35(1): 111-114.
    [17] 杨照宇, 涂晓东, 李乐民.  OBS网络中基于SNMP的嵌入式代理的实现 . 电子科技大学学报, 2004, 33(6): 667-670.
    [18] 温立, 涂晓东, 王凯.  基于Crossbar的高性能输入排队调度算法对比分析 . 电子科技大学学报, 2004, 33(6): 718-721.
    [19] 詹瑾瑜, 熊光泽, 孙明.  一种嵌入式GUI软件结构实现方案 . 电子科技大学学报, 2003, 32(1): 89-93.
    [20] 雷剑, 罗克露.  嵌入式系统仿真开发环境的体系结构 . 电子科技大学学报, 2003, 32(6): 669-672,678.
  • 加载中
图(9) / 表(1)
计量
  • 文章访问数:  3881
  • HTML全文浏览量:  1324
  • PDF下载量:  25
  • 被引次数: 0
出版历程
  • 收稿日期:  2020-05-18
  • 修回日期:  2021-04-13
  • 网络出版日期:  2021-07-23
  • 刊出日期:  2021-06-28

高利用率集合Sporadic实时任务调度方法研究

doi: 10.12178/1001-0548.2020228
    基金项目:  陕西省科技厅自然科学基础研究计划 (No.2020JM-565);民用飞机专项科研项目(No. MJ-2015-D-066);新型网络与检测控制国家地方联合工程实验室基金(GSYSJ2017004)
    作者简介:

    黄姝娟(1975-),女,博士,副教授,主要从事嵌入式与分布式计算方面的研究

    通讯作者: 肖锋,E-mail:xffriends@163.com

摘要: 该文提出一种基于最少迁移度和分割度的任务调度方法。该方法将各个实时周期任务分比例执行在不同处理器核上,并规定任务调度时的优先顺序,然后根据相应的实时调度流程对实时周期任务进行调度。并与已有的高利用率集合调度的准划分调度算法EDF-os、EDF-fm进行对比。结果表明该方法在保证系统利用率的同时,减少了任务分割和迁移的数量和不必要的任务切换开销。

English Abstract

黄姝娟, 肖锋, 曹子建. 高利用率集合Sporadic实时任务调度方法研究[J]. 电子科技大学学报, 2021, 50(4): 572-579. doi: 10.12178/1001-0548.2020228
引用本文: 黄姝娟, 肖锋, 曹子建. 高利用率集合Sporadic实时任务调度方法研究[J]. 电子科技大学学报, 2021, 50(4): 572-579. doi: 10.12178/1001-0548.2020228
HUANG Shu-Juan, XIAO Feng, CAO Zi-jian. Research on Scheduling Method of High Utilization Rate Sets for Sporadic Real-Time Tasks[J]. Journal of University of Electronic Science and Technology of China, 2021, 50(4): 572-579. doi: 10.12178/1001-0548.2020228
Citation: HUANG Shu-Juan, XIAO Feng, CAO Zi-jian. Research on Scheduling Method of High Utilization Rate Sets for Sporadic Real-Time Tasks[J]. Journal of University of Electronic Science and Technology of China, 2021, 50(4): 572-579. doi: 10.12178/1001-0548.2020228
  • 当前嵌入式多核平台对具有严格时间限制的复杂应用提供了强有力的计算执行能力[1]。然而随着嵌入式系统复杂性的攀升,实时调度也更具挑战性[2]。在嵌入式多核平台下,大部分算法基于Partitioned[3]或Global[4-5]调度方法,近年来Semi-partitioned[6-7]调度方法逐渐获得大家的重视。该类调度算法吸取了前两者的优点,即在Partitioned调度算法的基础上允许少部分任务迁移,被建议用在支持暗含时限的软实时Sporadic任务系统中[8]。此后,还被应用于混合关键系统中[9-12]。然而,无论哪种应用,该类调度算法始终要求在一定的时限延迟的基础上进行讨论,而且任务迁移仅在job的边界上进行,否则系统开销太大。但随着当前多核能力的提高,嵌入式系统的集成度越来越高,导致高利用率的任务也越来越集中,系统运行的负荷增大,因此Semi-partitioned调度算法划分方案的精确性以及减少迁移和系统运行开销就成为研究热点。

    目前针对高利率集合的semi-partitioned调度算法,如EDF-fm[13] (earliest-deadline- first-based fixed and migrating)和EDF-os[14](earliest-deadline-first-based optimal semi-partitioned),都存在迁移次数较多和上下文切换开销较大的问题。本文在这两种调度算法的基础上,提出一种基于最少迁移度和分割度(earliest-deadline-first-based migrating and splitting tasks least, EDF-MSTL)的调度方法,旨在提高系统效率的同时,减少分割任务的数量和不必要的迁移和任务切换开销。

    • 假设一个实时系统$ \tau $n个周期性任务组成,记为$\tau = \left\{ {{\tau _1},{\tau _2}, \cdots ,{\tau _n}} \right\}$。每个周期任务都包含4个参数。即$ {\tau _i}\left( {{r_i},{e_i},{p_i},{d_i}} \right)(1 \leqslant i \leqslant n)$,其中$ r_i$表示发布时刻(release time),即处理器核响应的时刻,$ e_i$表示任务$ T_i$最坏情况下的执行时间(worst-case execution time, WCET),$ p_i$$ {\tau _i}$的周期时间,$ d_i$表示时限(deadline),$ {e_i} \leqslant {d_i} \leqslant {p_i}$。若$ {d_i} = {p_i}$,称该系统为隐含时限系统(implicit deadlines),将其任务称为隐含时限任务。如果$ {d_i} < {p_i}$,称该系统为包含时限系统(constrained deadline system),将其任务称为包含时限任务。如果两者没有强制性的约束条件则称为任意时限系统(arbitrary deadline system)。用$ {\tau _i}\left( {{r_i},{e_i},{p_i},{d_i}} \right)$表示包含或任意时限系统,$ {\tau _i}\left( {{r_i},{e_i},{p_i} } \right)$表示暗含时限系统。$ {\tau _i}$的第$ j\left( {j \geqslant 1} \right)$个job,用$ {J_{i,j}}$表示。一个任务的第一个job可以在任何时刻被发布。将$ {J_{i,j}}$的发布时间记为$ {r_{i,j}}$,将其绝对时限$ {d_{i,j}}$定义为$ {r_{i,j}} + {d_i}$$ {J_{i,j}}$的执行时间记为$ {e_{i,j}}$

      Sporadic任务模型指$ n$个重复发生的任务$\tau = $$ \left\{ {{\tau _1},{\tau _2} ,\cdots ,{\tau _n}} \right\}$,每个$ {{\tau _i}}$具有3个参数特征:$ {e_i}$($ {{e_i} \geqslant 0} $)指示WCET;周期$ {p_i} > {e_i}$,指示一个$ {\tau _i}$连续两次job之间的最小间隔。时限$ {d_i} \geqslant {e_i}$,指示$ {\tau _i}$的每个job在它发布之后到其完成时的最大时间间隔。$ {\tau _i}$是顺序执行的,在同一个时间只有一个job在执行。Sporadic任务模型与周期模型不同之处在于两个连续job发布的时间间隔不固定,其中最小的时间间隔成为该任务的周期。周期型任务模型可以视为Sporadic任务模型的一个特殊情况,即该任务中连续job发布是由固定$ {p _i}$时间单元分割的。本文着重讨论隐含时限的周期任务和Sporadic任务都存在的系统。

      多核模型:$ P = \left\{ {{P_1},{P_2} , \cdots ,{P_M}} \right\}$为含有M个具有相同处理能力的处理器集合。在某个时间段内,分配到某个处理器$ P_m$上的任务$ {\tau _i}$的第$ j$次job被激活,那么在该处理器上执行该任务的第$ j$次job的时间片段记为$ {T_{i,j,m}}$

      由以上可知,实时系统中的周期任务具有4个重要属性:发布时间$ {r_i}$、时限$ {d_i}$、最坏执行时间$ {e_i}$和周期$ {p_i}$

    • 定义1 对于一个隐含时限的实时系统$ \tau$,如果该系统的所有任务都从0时刻发布,那么该任务可以表示为${\tau _i}({e_i},{p_i})$。该任务的利用率因子${u_i}$定义为$U{\rm{(}}{\tau _i}{\rm{) = }}{u_i}{\rm{ = }}\dfrac{{{e_i}}}{{{p_i}}}$,该系统任务的总利用率$U(\tau )\mathop = \limits^{{\rm{def}}} $$ \displaystyle\sum\limits_{{\tau _i} \in \tau } {U({\tau _i})} $

      定义2 对于任一周期任务$ {\tau _i}$,如果$ U\left( {{\tau _i}} \right) \geqslant \dfrac{1}{2}$,则称该周期任务为高利用率任务集合,用SH表示;如果$ U\left( {{\tau _i}} \right) < \dfrac{1}{2}$,则称该周期任务为低利用率任务集合,用SL表示。显然,任何一个周期任务要么属于SH要么属于SL[15]

      定义3 在一个具有n个实时周期任务$\tau {\rm{ = }} \{ {\tau _1},{\tau _2}, $$ \cdots ,{\tau _{{n}}}\}$的系统中,当所有实时周期任务都属于$ S^H$,即$ U\left( {{\tau _i}} \right) \geqslant \dfrac{1}{2}$$ i \in \{ 1,2, \cdots ,n\} $,则称该系统为高利用率任务系统,即$ S^H$系统。

      定义4 假定某个处理器核$ P_m$,已经分配了实时周期任务${\rm{\{ }}{\tau _1},{\tau _2},\cdots ,{\tau _{{k}}}\} $$\displaystyle\sum\limits_{i = 1}^k {U({\tau _i})} \leqslant 1$,则定义该处理器核所能继续分配任务的剩余利用率因子为${U_{{\rm{res}}}} = 1 - \displaystyle\sum\limits_{i = 1}^k {U({\tau _i})} $

      定理1 对于高利用率任务系统,如果该系统所有任务利用率因子之和为处理器数量M,则该系统可以被调度的必要条件是一定存在需要迁移的任务。

      证明:假设一个$ S^H$系统中有n个实时周期任务$ \tau = \left\{ {{\tau _1},{\tau _2}, \cdots ,{\tau _n}} \right\}$,该系统有M个处理器,且系统任务利用率总和$U(\tau ) = \displaystyle\sum\limits_{{\tau _i} \in \tau } {U({\tau _i})} = M$。因为该系统为高利用率系统,其中任何一个任务$ {{\tau _i}}$的利用率因子均满足$ 1 > U\left( {{\tau _i}} \right) > \dfrac{1}{2}$,那么会出现该任务和任何一个任务的利用率因子之和均大于1的情况,这种情况下,如果该任务能够被系统调度,则该任务只能独享或和多个任务共享一个处理器,否则会出现丢失时限现象。如果独享一个处理器,就会出现其他任务的利用率之和大于M−1的情况,即$ U(\tau ){=} $$ {\displaystyle \sum \limits_{{\tau }_{j}\in \tau (j\ne i)}U({\tau }_{j})}>M-1$,使得其他任务组成的系统成为无法调度的系统。因此,该系统如果能够被调度,就必须让该任务和其他任务共享多个处理器,即为迁移任务。

      定义5 如果存在高利用率系统$ S^H$,在某种调度算法S下,定义该系统迁移度$ {\rm{migrat}}\_{\lambda _s}$为所有任务需要迁移的次数之和与所有任务利用率因子总和的比值。迁移度越小说明需要迁移的次数也越少,系统迁移开销也就越少。定义该系统任务的分割度$ {\rm{split}}\_{\lambda _s}$为被分割的任务数量与系统任务总数量的比值。任务分割度越少,说明需要被迁移的任务数量越少,系统的执行效率就越好。

    • 将具有6个暗含时限的实时周期任务${\tau _1}(4,6)$${\tau _2}(2,3)$${\tau _3}(5,6)$${\tau _4}(2,3)$${\tau _5}(1,2)$${\tau _6}(2,3)$分配到4个处理器上,从0时刻发布,按照GEDF调度方法会得到调度图序列如图1所示。可以看出,${\tau _2}$${\tau _4}$在3个处理器上来回迁移,${\tau _5}$也在两个处理器上迁移,${\tau _3}$${\tau _6}$仍然有丢失时限发生。可以看出这种调度迁移开销太大且仍有时限丢失现象。而semi-partitioned算法将调度过程分为两个阶段:离线分配阶段和执行阶段。在分配阶段只允许少部分任务为迁移任务,其他任务不允许迁移。EDF-fm算法、EDF-os算法和EDF-MSTL算法区别在于离线分配阶段:EDF-fm算法类似深度优先分配,即将一个处理器份额全部占用完之后再分配下一个处理器,如图2所示,所以任务最多在两个处理器上迁移。EDF-os算法类似广度优先遍历,先将任务按照利用率从高到低降序排列,然后将和处理器数量相同的任务依次分配到处理器上作为非迁移任务,再从第一个处理器上依次分配该处理器的剩余份额,如图3所示。

      图  1  GEDF算法执行12个时间片结果

      图  2  EDF-fm算法任务分配的份额

      图  3  EDF-os算法任务分配的份额

      这两种算法中的迁移任务都会按照一定的比例将不同数量的job分配到指定的处理器上,比例计算方法为:

      $$ {f_{i,j}} = \frac{{{s_{i,j}}}}{{{u_i}}} $$ (1)

      式中,${f_{i,j}}$为第i个任务分配到第j个处理上job数量的比例;${s_{i,j}}$为该第i个任务在第j个处理器上获得的份额。本例中EDF-fm算法分配给任务对应的份额矩阵为:

      $${{s}}{\rm{ = }}\left[ {\begin{array}{*{20}{c}} {\dfrac{2}{3}}&0&0&0 \\ {\dfrac{1}{3}}&{\dfrac{1}{3}}&0&0 \\ 0&{\dfrac{2}{3}}&{\dfrac{1}{6}}&0 \\ 0&0&{\dfrac{2}{3}}&0 \\ 0&0&{\dfrac{1}{6}}&{\dfrac{1}{3}} \\ 0&0&0&{\dfrac{2}{3}} \end{array}} \right]$$

      EDF-fm算法任务对应的job比例矩阵为:

      $$ {{f}} = \left[ {\begin{array}{*{20}{c}} 1&0&0&0\\ {\dfrac{1}{2}}&{\dfrac{1}{2}}&0&0\\ 0&{\dfrac{4}{5}}&{\dfrac{1}{5}}&0\\ 0&0&1&0\\ 0&0&{\dfrac{1}{3}}&{\dfrac{2}{3}}\\ 0&0&0&1 \end{array}} \right] $$

      从这里可以看到${\tau _2}(2,3)$被分配到处理器P1P2上,分配的job比例为1∶1;那么调度时就会将奇数项job配到P1,偶数项job分配到P2${\tau _3}(5,6)$P2P3分配的job的比例为4∶1,那么5个job中就有一个job被分配到P3处理器上。${\tau _5}(1,2)$P3P4处理器上job分配的比例为1∶2。同理,可以得到EDF-os算法的分配份额和任务job的执行比例。

      这两种算法在执行阶段,迁移任务要比非迁移任务优先级高,而当某处理器执行两个迁移任务时,该处理器为非第一次分配处理器的迁移任务优先级最高。

      EDF-os算法分配给任务对应的份额矩阵为:

      $$ {{s}} = \left[ {\begin{array}{*{20}{c}} 0&{\dfrac{2}{3}}&0&0\\ 0&0&{\dfrac{2}{3}}&0\\ {\dfrac{5}{6}}&0&0&0\\ 0&0&0&{\dfrac{2}{3}}\\ 0&0&{\dfrac{1}{6}}&{\dfrac{1}{3}}\\ {\dfrac{1}{6}}&{\dfrac{1}{3}}&{\dfrac{1}{6}}&0 \end{array}} \right] $$

      EDF-os算法任务对应的job比例矩阵为:

      $$ {{f}} = \left[ {\begin{array}{*{20}{c}} 0&1&0&0\\ 0&0&1&0\\ 1&0&0&0\\ 0&0&0&1\\ 0&0&{\dfrac{1}{3}}&{\dfrac{2}{3}}\\ {\dfrac{1}{4}}&{\dfrac{1}{2}}&{\dfrac{1}{4}}&0 \end{array}} \right] $$

      EDF-fm和EDF-os具体执行结果如图4图5所示。

      图  4  EDF-fm算法执行12个时间片结果

      图  5  EDF-os算法执行12个时间片结果

      EDF-fm算法被分割的任务为$ {{\tau _2}}$$ {{\tau _3}}$$ {{\tau _5}}$,这3个任务分别被迁移了1次,故该调度算法下的迁移度$ {\rm{migrat}}\_{\lambda _s} = \dfrac{3}{4} = 0.75$,任务分割度$ {\rm{split}}\_{\lambda _s} = \dfrac{3}{6} = 0.5$

      EDF-os算法被分割的任务为$ {{\tau _5}}$$ {{\tau _6}}$,这两个任务分别被迁移了2次和1次,故该调度算法下的迁移度$ {\rm{migrat}}\_{\lambda _s} = \dfrac{3}{4} = 0.75$,任务分割度$ {\rm{split}}\_{\lambda _s} = \dfrac{2}{6} = \dfrac{1}{3}$

      EDF-MSTL算法分配给任务对应的份额矩阵为:

      $$ {{s}} = \left[ {\begin{array}{*{20}{c}} {\dfrac{2}{3}}&0&0&0\\ 0&{\dfrac{2}{3}}&0&0\\ 0&0&{\dfrac{5}{6}}&0\\ 0&0&0&{\dfrac{2}{3}}\\ {\dfrac{1}{3}}&0&{\dfrac{1}{6}}&0\\ 0&{\dfrac{1}{3}}&0&{\dfrac{1}{3}} \end{array}} \right] $$

      图  6  EDF-MSTL算法执行12个时间片结果

      EDF-MSTL算法任务对应的job比例矩阵为:

      $$ {{f}} = \left[ {\begin{array}{*{20}{c}} 1&0&0&0\\ 0&1&0&0\\ 0&0&1&0\\ 0&0&0&1\\ {\dfrac{2}{3}}&0&{\dfrac{1}{3}}&0\\ 0&{\dfrac{1}{2}}&0&{\dfrac{1}{2}} \end{array}} \right] $$

      对应的该调度算法下的迁移度$ {\rm{migrat}}\_{\lambda _s} = \dfrac{2}{4} = $$ 0.5$,任务分割度$ {\rm{split}}\_{\lambda _s} = \dfrac{2}{6} = \dfrac{1}{3}$。系统总体的迁移度和任务分割度是最少的,调度结果如图6所示。

    • EDF-MSTL调度方法描述如下:

      1) 首先将n个任务的利用率因子按照从大到小顺序排列放入集合$ S^H$m个处理器顺序放入集合P中,初始化矩阵${{{s}}_{n,n}}$${s_{i,i}} = {u_i}$,其他值为0。

      图  7  EDF-MSTL计算任务份额的流程图

      2) 找到具有最小利用率因子的任务${u_n}$,将其拆分为两部分${u_n} = {u_i} + {u_j}$,其中${u_i}$与第一个具有最大利用率因子任务的利用率之和为1,即${u_i} + {u_1} = 1$,设置${s_{n,k}} = {u_i}$${s_{n,n}} = {u_j}$,并将这两个利用率因子从集合$ S^H$中删除,如果${u_j}$为0,则也将其从$ S^H$中删除,将处理器k从集合P中删除。

      3) 在剩下的$ S^H$集合中继续重复步骤1)的工作,直到处理器集合为空为止。得到${s_{n,m}}$即为所分配份额。根据该份额通过式(1)计算${f_{n,m}}$。利用${f_{n,m}}$中的值,在调度执行过程中进行按比例分配相应的任务job,可以得到相依的执行序列。具体计算任务份额的算法流程图如图7所示。

    • 本文测试的环境是在一个Intel®Core™2 Quad Q8400多核平台上。分别采用EDF-fm,EDF-os,EDF-MSTL这3种调度方法进行比较。测试方法随机产生1000个任务集,每个任务集中产生50个参数不等的Sporadic软实时周期任务,所有周期任务都满足利用率大于0.5,执行时间小于时限,时限小于或等于周期。在整个仿真实验过程中,为了描述算法之间的性能差异,采用多次模拟求平均值的方法得到某时间段内的系统吞吐率以及任务切换job数量所占总job数的比例,如表1所示。

      表 1  3种算法的系统利用率和丢失时限任务数所占总任务的比例

      随机抽取的
      任务集
      系统吞吐率 任务切换job数量占总job
      数的比例/%
      EDF-fm
      算法
      EDF-os
      算法
      EDF-MSTL
      算法
      EDF-fm
      算法
      EDF-os
      算法
      EDF-MSTL
      算法
      10.8990.9210.942 12.2112.2011.62
      20.8780.9030.948 12.4112.3911.85
      30.8810.9120.941 12.3312.3111.80
      40.8920.9170.940 12.2512.2611.69
      50.8830.9130.939 12.3112.3011.79
      60.8650.9010.937 12.6812.6611.88
      70.8870.9160.943 12.2812.2511.77
      80.9030.9210.944 12.0312.0311.60
      90.8940.9180.941 12.2212.2111.65
      100.8790.9100.939 12.3812.3511.83

      另外,选择对应这10个任务集的平均任务迁移度和任务分割度两个方面进行性能对比。从表1图8图9可以看出,EDF-算法和EDF-MSTL算法在系统吞吐率、任务切换job数、任务迁移度和任务分割度方面,后者算法明显占据优势。

      图  8  3种算法任务迁移度

      图  9  3种算法的任务分割度

    • 本文的目的是为了解决在嵌入式多核平台下,任务全部属于高利用率因子集合的软实时系统中的实时周期任务的调度问题。在EDF-fm和EDF-os算法的基础上,提供一种基于最少迁移度的多核实时调度方法,减少了现有技术中存在由于迁移带来的过多开销以及上下文切换次数,在任务量很大的情况下可以大大提高系统的整体效率。

参考文献 (15)

目录

    /

    返回文章
    返回