-
当前嵌入式多核平台对具有严格时间限制的复杂应用提供了强有力的计算执行能力[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)的调度方法,旨在提高系统效率的同时,减少分割任务的数量和不必要的迁移和任务切换开销。
-
将具有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所示。这两种算法中的迁移任务都会按照一定的比例将不同数量的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)$ 被分配到处理器P1和P2上,分配的job比例为1∶1;那么调度时就会将奇数项job配到P1,偶数项job分配到P2。${\tau _3}(5,6)$ 在P2和P3分配的job的比例为4∶1,那么5个job中就有一个job被分配到P3处理器上。${\tau _5}(1,2)$ 在P3和P4处理器上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算法被分割的任务为
$ {{\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] $$ 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所示。 -
本文测试的环境是在一个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
算法1 0.899 0.921 0.942 12.21 12.20 11.62 2 0.878 0.903 0.948 12.41 12.39 11.85 3 0.881 0.912 0.941 12.33 12.31 11.80 4 0.892 0.917 0.940 12.25 12.26 11.69 5 0.883 0.913 0.939 12.31 12.30 11.79 6 0.865 0.901 0.937 12.68 12.66 11.88 7 0.887 0.916 0.943 12.28 12.25 11.77 8 0.903 0.921 0.944 12.03 12.03 11.60 9 0.894 0.918 0.941 12.22 12.21 11.65 10 0.879 0.910 0.939 12.38 12.35 11.83 另外,选择对应这10个任务集的平均任务迁移度和任务分割度两个方面进行性能对比。从表1、图8和图9可以看出,EDF-算法和EDF-MSTL算法在系统吞吐率、任务切换job数、任务迁移度和任务分割度方面,后者算法明显占据优势。
Research on Scheduling Method of High Utilization Rate Sets for Sporadic Real-Time Tasks
-
摘要: 该文提出一种基于最少迁移度和分割度的任务调度方法。该方法将各个实时周期任务分比例执行在不同处理器核上,并规定任务调度时的优先顺序,然后根据相应的实时调度流程对实时周期任务进行调度。并与已有的高利用率集合调度的准划分调度算法EDF-os、EDF-fm进行对比。结果表明该方法在保证系统利用率的同时,减少了任务分割和迁移的数量和不必要的任务切换开销。Abstract: This paper proposes a new scheduling algorithm which can reduce the unnecessary migration and context switching overhead. In this method, each real-time cycle task is proportionally executed on different processor cores, and the priority of task scheduling is specified, and then the real-time cycle tasks are scheduled according to the corresponding real-time scheduling process. By comparing with EDF-os and EDF-fm, which have been considered as set scheduling algorithms of high utilization rate, the experiments show this method not only can ensure high utilization rate but also reduce the times of migrating tasks and context switching overhead.
-
Key words:
- embedded system /
- multi-core /
- scheduling algorithm /
- scheduling model /
- real-time tasks
-
表 1 3种算法的系统利用率和丢失时限任务数所占总任务的比例
随机抽取的
任务集系统吞吐率 任务切换job数量占总job
数的比例/%EDF-fm
算法EDF-os
算法EDF-MSTL
算法EDF-fm
算法EDF-os
算法EDF-MSTL
算法1 0.899 0.921 0.942 12.21 12.20 11.62 2 0.878 0.903 0.948 12.41 12.39 11.85 3 0.881 0.912 0.941 12.33 12.31 11.80 4 0.892 0.917 0.940 12.25 12.26 11.69 5 0.883 0.913 0.939 12.31 12.30 11.79 6 0.865 0.901 0.937 12.68 12.66 11.88 7 0.887 0.916 0.943 12.28 12.25 11.77 8 0.903 0.921 0.944 12.03 12.03 11.60 9 0.894 0.918 0.941 12.22 12.21 11.65 10 0.879 0.910 0.939 12.38 12.35 11.83 -
[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