CN101145112A - 一种实时系统任务调度方法 - Google Patents
一种实时系统任务调度方法 Download PDFInfo
- Publication number
- CN101145112A CN101145112A CNA2007101767044A CN200710176704A CN101145112A CN 101145112 A CN101145112 A CN 101145112A CN A2007101767044 A CNA2007101767044 A CN A2007101767044A CN 200710176704 A CN200710176704 A CN 200710176704A CN 101145112 A CN101145112 A CN 101145112A
- Authority
- CN
- China
- Prior art keywords
- task
- resource
- scheduling
- tasks
- current
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000015572 biosynthetic process Effects 0.000 claims description 25
- 238000011084 recovery Methods 0.000 claims description 5
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 238000013468 resource allocation Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Abstract
本发明公开了一种实时系统中的任务调度方法,包括:A.根据时限和运算量对待调度任务进行顺序排列;B.有空闲资源时,按排列顺序为一个或一个以上待调度任务分配资源,其中,为一个以上待调度任务分配资源时,所分配资源的多个任务间最大时延最小。采用本发明能实现对多资源多任务的最优调度,提高资源利用率和时限内到达任务比例。
Description
技术领域
本发明涉及任务调度,特别是涉及一种实时系统中的任务调度方法。
背景技术
实时系统是随着计算机应用于实时控制和实时信息处理领域中而发展起来的,它要求计算机对于外来信息能以足够快的速度进行处理,并在被控制对象允许的时间范围内做出快速响应,其响应时间要求在秒级、毫秒级甚至微秒级或更小。实时系统的主要特征之一是响应的即时性,所谓响应的即时性是指要在时间约束之内完成运算。其中,时间约束是指截止时间或称时限,是实时系统给出处理结果的最迟可以接受的时间。
在实时系统中,任务调度方法是直接影响实时系统响应即时性的关键因素,因而对任务调度方法的研究具有十分重要的意义。目前,实时系统中使用最普遍的是最早时限优先算法(EDF,Earliest Deadline First),EDF算法是广泛使用的最具代表性的一种实时调度算法。
具体来说,EDF调度的基本工作原理是:优先处理最紧迫任务,每当有资源空闲下来时,调度程序就选择具有最早时限的任务,并赋给所选任务所需的资源,使所选任务获得运行权。EDF调度已被证明对基于时限标准的单资源分配来说是最优的,但是,针对多个相同资源的分配问题,EDF调度却无法实现整体最优化。例如,一个多CPU多任务调度系统,各CPU的主频不同,各任务的运算量不同,如果采用EDF调度算法,则很有可能为具有最早时限但运算量大的任务分配一个最先空闲下来的低主频CPU;而下一个拥有最早时限的任务,尽管运算量小,却被分配一个高主频CPU。因此,EDF调度并不能实现多资源多任务实时系统的最优调度。
发明内容
有鉴于此,本发明的主要目的在于提供一种实时系统任务调度方法,能实现对多资源多任务的最优调度,提高资源利用率和时限内到达任务比例。
为达到上述目的,本发明的技术方案是这样实现的:
一种实时系统中的任务调度方法,包括:
A、根据时限和运算量对待调度任务进行顺序排列;
B、有空闲资源时,按排列顺序为一个或一个以上待调度任务分配资源,其中,为一个以上待调度任务分配资源时,所分配资源的多个任务间最大时延最小。
其中,步骤A中,先根据待调度任务的时限先后,将时限早的任务排在任务调度队列前边;对存在的多个时限相同的任务,再按任务运算量大小,将运算量大的任务排在任务调度队列前边;对多个时限和运算量均相同的任务,将所述任务随机排列。
上述方案中,步骤B所述为待调度任务分配资源具体包括:
B1、初始化任务调度队列;
B2、确定当前要调度的一个或一个以上任务;
B4、根据当前资源分配情况及资源恢复空闲情况,更新空闲资源集合;
B5、根据当前的任务调度情况,更新任务调度队列;
B6、判断是否调度完所有任务,如果调度完,则结束当前任务调度流程;如果未调度完,则返回步骤B2。
其中,所述每个任务调度队列与每个可分配资源一一对应。
其中,步骤B4中所述更新空闲资源集合具体为:从空闲资源集合中删除当前被占用的资源,并将当前恢复空闲的资源加入空闲资源集合中。步骤B5所述更新任务调度队列为:将当前所分配的任务Uk添加到任务调度队列中。步骤B6中所述判断是否调度完所有任务为:判断未调度任务队列是否为空,如果为空,则调度完所有任务;否则,未调度完。
本发明所提供的实时系统任务调度方法,将所有需调度任务按时限先后顺序排列,同时,对多个时限相同的任务,按任务运算量大小排列,运算量大的排在任务调度队列前面;这样,在有空闲资源时,按任务调度队列的排序分配资源,且在对多个任务进行资源分配时采用聚类时延最小策略,如此,不仅能保证多个同时调度的任务的最大时延最小化;而且打破了单资源分配最优的局限性,进而提高了资源利用率和时限内到达任务比例等性能指标,为实时系统任务调度提供了一种可实现整体最优化的方法。
具体实施方式
本发明的任务调度方法首先对实时系统中的任务进行排队,之后再对经过排队的任务进行调度。具体的,所述对实时系统中的任务进行排队一般采用如下策略:根据待调度任务的时限先后,时限早的任务排在任务调度队列前边;若存在多个任务时限相同,则按照任务运算量大小,运算量大的任务排在任务调度队列前边;若多个任务的时限和运算量均相同,则将这些任务随机排列。
本发明中,用Ui表示某一个任务,其中j为任务号;M表示全部任务集合,或称全部任务队列;M0表示尚未调度的任务集合,又称尚未调度任务队列;初始状态下全部任务均处于待调度状态,即M0=M=(U1,U2,…Ui)。并且,用Ci表示某一资源,其中i为资源号;N表示全部资源集合;N0表示某时刻空闲资源集合;初始状态下全部资源处于空闲状态,即N0=N={Ci| 1≤i≤n}。那么,本发明的任务调度方法具体包括以下步骤:
步骤1:初始化任务调度队列;
每个资源Ci在实时系统的调度过程中,可能会先后分配给多个任务,这些任务形成一个任务调度队列,又称任务调度集合,用Qi表示,Qi与资源Ci一一对应。初始状态下,所有资源均未分配任何一个任务,处于空闲状态,因此与资源对应的任何一个任务调度队列均初始化为空集Φ,即Qi-Φ,(1≤i≤n)。
步骤2:确定当前要调度的一个或一个以上任务;
当M0≠Φ且N0≠Φ时,分别计算M0和N0的大小,即M0和N0分别所含元素的多少,其中,较小的用n′表示,即n′=min(|M0|,|N0|),则尚未调度任务队列M0=(Uj,…Um),1≤j≤m中,前n′个任务Uj,…,Uj+n′-1被确定为当前被调度的任务。于是,尚未调度任务队列变为M0=(Uj+n′,…Um),n′<j+n′≤m,或者M0为空。
步骤3:为确定的当前要调度任务Uj,…Uj+n-1分配资源,且采用聚类时延最小策略进行资源分配;
所谓聚类时延最小策略是指所分配资源的多个任务间最大时延最小,具体来说就是,为每个Uk(j≤k≤j+n′-1)分别确定一个资源 目标是使得,n′个当前调度任务Uj,…,Uj+n′-1的最大时延最小,即其中,Uk就是当前调度的任务,就是确定要分配的资源。
在任意时刻,一个实时系统拥有空闲资源的数目可以有三种情况:没有空闲资源、有一个空闲资源、有多个空闲资源。相应的资源分配原则是:
第一种情况,没有空闲资源时,不为任务分配资源,不进行调度;
第二种情况,有一个空闲资源时,如果任务调度队列中没有任务,则不进行调度;如果任务调度队列中有一个或一个以上任务,则不进行计算,直接为任务调度队列中的第一个任务分配资源;
第三种情况,有n个(n>1)空闲资源时,如果任务调度队列中没有任务,则不进行调度;如果任务调度队列中有一个或一个以上任务,则具体按以下步骤执行任务调度:
a.先确定任务调度队列中有多少个任务等待调度,假设有m个任务;
b.再判断空闲资源数n是否大于待调度任务m,如果n>m,说明任务调度队列中待调度任务少于空闲资源的数目,则选择任务调度队列中全部m个任务,根据步骤3中的最大时延最小公式,为所选m个任务中的每个任务分配一个空闲资源;
c.如果n≤m,说明任务调度队列中待调度任务多于或等于空闲资源的数目,则选择任务调度队列中前n个任务,根据步骤3中的最大时延最小公式,为所选n个任务中的每个任务分配一个空闲资源。
为减少资源空闲时间,提高资源利用率,若M0不为空,则只要存在空闲资源,就为M0前边的n′个当前调度任务分配资源。
步骤4:根据当前资源分配情况及资源恢复空闲情况,更新空闲资源集合;
在完成对当前调度任务的资源分配后,一方面,应从空闲资源集合中将当前被占用的资源删除,即 另一方面,应根据执行任务Uk占用的时延对当前被占用的资源是否恢复空闲进行判断,以便将恢复空闲的资源回补到空闲资源集合N0中再利用。此时,空闲资源集合变为
步骤5:根据当前的任务调度情况,更新任务调度队列;
步骤6:判断是否调度完所有任务,如果调度完,则结束当前任务调度流程;如果未调度完,则返回步骤2。
本步骤中,判断是否调度完所有任务就是:判断未调度任务队列M0是否为空,如果为空,则调度完所有任务;否则,未调度完。
下面通过具体应用实例的数据,如网络利用率(nuf)和时限内到达的任务数比例(upnr),对本发明任务调度方法的性能和EDF调度的性能进行比较、评价。
假设,基于matlab平台对本发明任务调度方法和EDF调度进行仿真测试,实时系统的任务和资源配置情况如表一和表二所示,其中,表一为任务配置情况,每个任务的时限均为0.25s,表二为资源配置情况;评价结果数据如表三至表六,其中,表三为本发明任务调度方法的nuf数据,表四为EDF调度方法的nuf数据,表五为本发明任务调度方法的upnr数据,表六为EDF调度方法的upnr数据。
配置方案 | 任务类型 | 任务数目 | 任务大小均值(kbyte) | 任务变化范围(kbyte) |
配置1 | 视频音频 | 25002500 | 10.268 | [0.5,1.5]0.268 |
配置2 | 视频音频 | 25002500 | 20.268 | [1.0,3.0]0 268 |
配置3 | 视频音频 | 25002500 | 40.268 | [2.0,6.0]0 268 |
表一
配置方案 | 信道数目 | 信道容量(Mbps) | |||
总计 | 信道C1 | 信道C2 | 信道C3 | ||
配置1配置2配置3配置4 | 2 | 1.21.62.02.5 | 0.61.01.01.5 | 0.60.61.01.0 | |
配置5配置6配置7配置8 | 3 | 1.21.62.03.1 | 0.40.61.01.5 | 0.40.60.61.0 | 0.40 40.40.6 |
表二
表三
表四
表五
表六
由表三至表六的数据可以看出,本发明的实时系统任务调度方法与EDF调度相比,在网络利用率和时限内到达的任务数比例上均有明显提高。当系统任务量进一步增加时,本发明任务调度方法的优势将更加明显。
上述实例主要是多媒体应用环境下,针对音频和视频任务的调度,实际应用中,本发明的方法可以适用于各种应用环境。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (7)
1.一种实时系统中的任务调度方法,其特征在于,该方法包括:
A、根据时限和运算量对待调度任务进行顺序排列;
B、有空闲资源时,按排列顺序为一个或一个以上待调度任务分配资源,其中,为一个以上待调度任务分配资源时,所分配资源的多个任务间最大时延最小。
2.根据权利要求1所述的方法,其特征在于,步骤A中,先根据待调度任务的时限先后,将时限早的任务排在任务调度队列前边;对存在的多个时限相同的任务,再按任务运算量大小,将运算量大的任务排在任务调度队列前边;对多个时限和运算量均相同的任务,将所述任务随机排列。
3.根据权利要求1或2所述的方法,其特征在于,步骤B所述为待调度任务分配资源具体包括:
B1、初始化任务调度队列;
B2、确定当前要调度的一个或一个以上任务;
B3、为步骤B2所确定的当前要调度任务分配资源,且所分配资源的多个任务间满足 其中,Uk为当前调度的任务,Cik为确定要分配的资源;
B4、根据当前资源分配情况及资源恢复空闲情况,更新空闲资源集合;
B5、根据当前的任务调度情况,更新任务调度队列;
B6、判断是否调度完所有任务,如果调度完,则结束当前任务调度流程;如果未调度完,则返回步骤B2。
4.根据权利要求3所述的方法,其特征在于,所述每个任务调度队列与每个可分配资源一一对应。
5.根据权利要求3所述的方法,其特征在于,步骤B4中所述更新空闲资源集合具体为:从空闲资源集合中删除当前被占用的资源,并将当前恢复空闲的资源加入空闲资源集合中。
6.根据权利要求3所述的方法,其特征在于,步骤B5所述更新任务调度队列为:将当前所分配的任务Uk添加到任务调度队列中。
7.根据权利要求3所述的方法,其特征在于,步骤B6中所述判断是否调度完所有任务为:判断未调度任务队列是否为空,如果为空,则调度完所有任务;否则,未调度完。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101767044A CN100485625C (zh) | 2007-11-01 | 2007-11-01 | 一种实时系统任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101767044A CN100485625C (zh) | 2007-11-01 | 2007-11-01 | 一种实时系统任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101145112A true CN101145112A (zh) | 2008-03-19 |
CN100485625C CN100485625C (zh) | 2009-05-06 |
Family
ID=39207650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101767044A Expired - Fee Related CN100485625C (zh) | 2007-11-01 | 2007-11-01 | 一种实时系统任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100485625C (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101968750A (zh) * | 2010-10-15 | 2011-02-09 | 珠海举天软件科技有限公司 | 计算机系统及其工作方法 |
CN102158906A (zh) * | 2011-05-19 | 2011-08-17 | 北京工业大学 | 一种服务质量敏感系统及其任务调度方法 |
CN102654843A (zh) * | 2011-03-04 | 2012-09-05 | 北京国科环宇空间技术有限公司 | 嵌入式处理器中非抢占式容错调度方法及嵌入式处理器 |
CN103163870A (zh) * | 2013-04-07 | 2013-06-19 | 沈阳化工大学 | 一种极大容忍时延无线网络化控制系统调度的方法 |
CN103207807A (zh) * | 2012-01-12 | 2013-07-17 | 阿里巴巴集团控股有限公司 | 任务调度方法和装置 |
CN103309750A (zh) * | 2013-07-10 | 2013-09-18 | 国睿集团有限公司 | 面向硬实时服务的主机资源可满足性检测方法 |
CN103324525A (zh) * | 2013-07-03 | 2013-09-25 | 东南大学 | 一种云计算环境下的任务调度方法 |
CN104035818A (zh) * | 2013-03-04 | 2014-09-10 | 腾讯科技(深圳)有限公司 | 多任务调度的方法及装置 |
CN104636200A (zh) * | 2013-11-14 | 2015-05-20 | 上海计算机软件技术开发中心 | 一种计算机多进程公平调度的方法 |
CN106156115A (zh) * | 2015-04-07 | 2016-11-23 | 中国移动通信集团云南有限公司 | 一种资源调度方法及装置 |
CN106709628A (zh) * | 2016-11-24 | 2017-05-24 | 广州赛意信息科技股份有限公司 | 一种生产排程方法及系统 |
CN107229519A (zh) * | 2016-03-25 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 任务调度方法和装置 |
CN109992382A (zh) * | 2017-12-29 | 2019-07-09 | 浙江宇视科技有限公司 | 任务调度方法、装置及任务调度器 |
CN111445213A (zh) * | 2020-03-31 | 2020-07-24 | 乌鲁木齐众维汇联信息科技有限公司 | 园区企业孵化服务的网络管理系统 |
CN111614377A (zh) * | 2020-04-24 | 2020-09-01 | 江苏方天电力技术有限公司 | 一种基于hplc并发通道的采集多任务调度方法和系统 |
CN112019453A (zh) * | 2019-05-29 | 2020-12-01 | 潘仲光 | 资源重分配方法、设备及存储介质 |
-
2007
- 2007-11-01 CN CNB2007101767044A patent/CN100485625C/zh not_active Expired - Fee Related
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101968750B (zh) * | 2010-10-15 | 2012-12-26 | 珠海举天软件科技有限公司 | 计算机系统及其工作方法 |
CN101968750A (zh) * | 2010-10-15 | 2011-02-09 | 珠海举天软件科技有限公司 | 计算机系统及其工作方法 |
CN102654843A (zh) * | 2011-03-04 | 2012-09-05 | 北京国科环宇空间技术有限公司 | 嵌入式处理器中非抢占式容错调度方法及嵌入式处理器 |
CN102158906A (zh) * | 2011-05-19 | 2011-08-17 | 北京工业大学 | 一种服务质量敏感系统及其任务调度方法 |
CN102158906B (zh) * | 2011-05-19 | 2014-02-26 | 北京工业大学 | 一种服务质量敏感系统及其任务调度方法 |
CN103207807A (zh) * | 2012-01-12 | 2013-07-17 | 阿里巴巴集团控股有限公司 | 任务调度方法和装置 |
CN103207807B (zh) * | 2012-01-12 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 任务调度方法和装置 |
CN104035818A (zh) * | 2013-03-04 | 2014-09-10 | 腾讯科技(深圳)有限公司 | 多任务调度的方法及装置 |
CN103163870A (zh) * | 2013-04-07 | 2013-06-19 | 沈阳化工大学 | 一种极大容忍时延无线网络化控制系统调度的方法 |
CN103324525B (zh) * | 2013-07-03 | 2016-01-13 | 东南大学 | 一种云计算环境下的任务调度方法 |
CN103324525A (zh) * | 2013-07-03 | 2013-09-25 | 东南大学 | 一种云计算环境下的任务调度方法 |
CN103309750B (zh) * | 2013-07-10 | 2016-09-14 | 国睿集团有限公司 | 面向硬实时服务的主机资源可满足性检测方法 |
CN103309750A (zh) * | 2013-07-10 | 2013-09-18 | 国睿集团有限公司 | 面向硬实时服务的主机资源可满足性检测方法 |
CN104636200B (zh) * | 2013-11-14 | 2019-03-29 | 上海计算机软件技术开发中心 | 一种计算机多进程公平调度的方法 |
CN104636200A (zh) * | 2013-11-14 | 2015-05-20 | 上海计算机软件技术开发中心 | 一种计算机多进程公平调度的方法 |
CN106156115A (zh) * | 2015-04-07 | 2016-11-23 | 中国移动通信集团云南有限公司 | 一种资源调度方法及装置 |
CN106156115B (zh) * | 2015-04-07 | 2019-09-27 | 中国移动通信集团云南有限公司 | 一种资源调度方法及装置 |
TWI718252B (zh) * | 2016-03-25 | 2021-02-11 | 香港商阿里巴巴集團服務有限公司 | 任務調度方法和裝置 |
CN107229519A (zh) * | 2016-03-25 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 任务调度方法和装置 |
CN107229519B (zh) * | 2016-03-25 | 2021-04-23 | 阿里巴巴集团控股有限公司 | 任务调度方法和装置 |
CN106709628A (zh) * | 2016-11-24 | 2017-05-24 | 广州赛意信息科技股份有限公司 | 一种生产排程方法及系统 |
CN109992382A (zh) * | 2017-12-29 | 2019-07-09 | 浙江宇视科技有限公司 | 任务调度方法、装置及任务调度器 |
CN112019453A (zh) * | 2019-05-29 | 2020-12-01 | 潘仲光 | 资源重分配方法、设备及存储介质 |
CN111445213A (zh) * | 2020-03-31 | 2020-07-24 | 乌鲁木齐众维汇联信息科技有限公司 | 园区企业孵化服务的网络管理系统 |
CN111614377A (zh) * | 2020-04-24 | 2020-09-01 | 江苏方天电力技术有限公司 | 一种基于hplc并发通道的采集多任务调度方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100485625C (zh) | 2009-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100485625C (zh) | 一种实时系统任务调度方法 | |
CN103324525B (zh) | 一种云计算环境下的任务调度方法 | |
Levin et al. | DP-FAIR: A simple model for understanding optimal multiprocessor scheduling | |
CN102902587B (zh) | 分布式任务调度方法、系统和装置 | |
CN109408215A (zh) | 一种计算节点的任务调度方法和装置 | |
CN102388381B (zh) | 用于分配共享存储资源的系统和方法 | |
CN109582448B (zh) | 一种面向关键度和时效性的边缘计算任务调度方法 | |
CN102158906B (zh) | 一种服务质量敏感系统及其任务调度方法 | |
CN111400022A (zh) | 一种资源调度方法、装置及电子设备 | |
CN108762896A (zh) | 一种基于Hadoop集群任务调度方法及计算机设备 | |
CN103401939A (zh) | 一种采用混合调度策略的负载均衡方法 | |
CN103793272A (zh) | 一种周期性任务调度方法及系统 | |
CN112162835A (zh) | 一种异构云环境下实时任务的调度优化方法 | |
CN103455375A (zh) | Hadoop云平台下基于负载监控的混合调度方法 | |
CN106201681B (zh) | Hadoop平台下基于预释放资源列表的任务调度方法 | |
CN104917839A (zh) | 一种用于云计算环境下的负载均衡方法 | |
CN104461722A (zh) | 一种用于云计算系统的作业调度方法 | |
CN105320565A (zh) | 一种针对多种应用软件的计算机资源调度方法 | |
CN103458520A (zh) | 一种上行频域资源的分配方法和装置 | |
CN111782627B (zh) | 面向广域高性能计算环境的任务与数据协同调度方法 | |
CN102184124A (zh) | 任务调度方法及系统 | |
CN114138453B (zh) | 一种适合边缘计算环境的资源优化分配方法与系统 | |
KR101491689B1 (ko) | 다중 사용자를 위한 자원 할당 방법 및 장치 | |
CN112506640B (zh) | 一种用于加密运算芯片的多处理器架构及调配方法 | |
Papazachos et al. | Gang scheduling in a two-cluster system implementing migrations and periodic feedback |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090506 Termination date: 20121101 |