CN100485625C - 一种实时***任务调度方法 - Google Patents
一种实时***任务调度方法 Download PDFInfo
- Publication number
- CN100485625C CN100485625C CNB2007101767044A CN200710176704A CN100485625C CN 100485625 C CN100485625 C CN 100485625C CN B2007101767044 A CNB2007101767044 A CN B2007101767044A CN 200710176704 A CN200710176704 A CN 200710176704A CN 100485625 C CN100485625 C CN 100485625C
- Authority
- CN
- China
- Prior art keywords
- task
- resource
- scheduling
- current
- tasks
- 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
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种实时***中的任务调度方法,包括:A.根据时限和运算量对待调度任务进行顺序排列;B.有空闲资源时,按排列顺序为待调度任务分配资源,其中,为多个待调度任务分配资源时,所分配资源的多个任务间最大时延最小。采用本发明能实现对多资源多任务的最优调度,提高资源利用率和时限内到达任务比例。
Description
技术领域
本发明涉及任务调度,特别是涉及一种实时***中的任务调度方法。
背景技术
实时***是随着计算机应用于实时控制和实时信息处理领域中而发展起来的,它要求计算机对于外来信息能以足够快的速度进行处理,并在被控制对象允许的时间范围内做出快速响应,其响应时间要求在秒级、毫秒级甚至微秒级或更小。实时***的主要特征之一是响应的即时性,所谓响应的即时性是指要在时间约束之内完成运算。其中,时间约束是指截止时间或称时限,是实时***给出处理结果的最迟可以接受的时间。
在实时***中,任务调度方法是直接影响实时***响应即时性的关键因素,因而对任务调度方法的研究具有十分重要的意义。目前,实时***中使用最普遍的是最早时限优先算法(EDF,Earliest Deadline First),EDF算法是广泛使用的最具代表性的一种实时调度算法。
具体来说,EDF调度的基本工作原理是:优先处理最紧迫任务,每当有资源空闲下来时,调度程序就选择具有最早时限的任务,并赋给所选任务所需的资源,使所选任务获得运行权。EDF调度已被证明对基于时限标准的单资源分配来说是最优的,但是,针对多个相同资源的分配问题,EDF调度却无法实现整体最优化。例如,一个多CPU多任务调度***,各CPU的主频不同,各任务的运算量不同,如果采用EDF调度算法,则很有可能为具有最早时限但运算量大的任务分配一个最先空闲下来的低主频CPU;而下一个拥有最早时限的任务,尽管运算量小,却被分配一个高主频CPU。因此,EDF调度并不能实现多资源多任务实时***的最优调度。
发明内容
有鉴于此,本发明的主要目的在于提供一种实时***任务调度方法,能实现对多资源多任务的最优调度,提高资源利用率和时限内到达任务比例。
为达到上述目的,本发明的技术方案是这样实现的:
一种实时***中的任务调度方法,包括:
A、根据时限和运算量,对待调度任务进行顺序排列,具体操作为:
先根据待调度任务的时限先后,将时限早的任务排在任务调度队列前边;对存在的多个时限相同的任务,再按任务运算量大小,将运算量大的任务排在任务调度队列前边;对多个时限和运算量均相同的任务,将所述任务随机排列;
B、有空闲资源时,按排列顺序为待调度任务分配资源,其中,为多个待调度任务分配资源时,所分配资源的多个任务间最大时延最小。
其中,步骤B所述为待调度任务分配资源具体包括:
B1、初始化任务调度队列Qi,用Uj表示一个任务,其中,1≤i≤n,Qi为实时***的调度过程中分配给资源Ci的任务形成的队列,.j为任务号;
B2、确定当前要调度任务的数量n′,即确定min(|M0|,|N0|)的值,n′=min(|M0|,|N0|),其中,M0为尚未调度任务队列,|M0|为尚未调度任务队列所含元素个数,N0为当前时刻空闲资源集合,|N0|为当前时刻空闲资源集合所含元素个数;
B4、根据当前资源分配情况及资源恢复空闲情况,更新空闲资源集合;
B5、根据当前的任务调度情况,更新任务调度队列;
B6、判断是否调度完所有任务,如果调度完,则结束当前任务调度流程;如果未调度完,则返回步骤B2。
其中,所述每个任务调度队列与每个可分配资源一一对应。
其中,步骤B4中所述更新空闲资源集合具体为:从空闲资源集合中删除当前被占用的资源,并将当前恢复空闲的资源加入空闲资源集合中。步骤B5所述更新任务调度队列为:将当前所分配的任务Uk添加到任务调度队列中。步骤B6中所述判断是否调度完所有任务为:判断未调度任务队列是否为空,如果为空,则调度完所有任务;否则,未调度完。
本发明所提供的实时***任务调度方法,将所有需调度任务按时限先后顺序排列,同时,对多个时限相同的任务,按任务运算量大小排列,运算量大的排在任务调度队列前面;这样,在有空闲资源时,按任务调度队列的排序分配资源,且在对多个任务进行资源分配时采用聚类时延最小策略,如此,不仅能保证多个同时调度的任务的最大时延最小化;而且打破了单资源分配最优的局限性,进而提高了资源利用率和时限内到达任务比例等性能指标,为实时***任务调度提供了一种可实现整体最优化的方法。
具体实施方式
本发明的任务调度方法首先对实时***中的任务进行排队,之后再对经过排队的任务进行调度。具体的,所述对实时***中的任务进行排队一般采用如下策略:根据待调度任务的时限先后,时限早的任务排在任务调度队列前边;若存在多个任务时限相同,则按照任务运算量大小,运算量大的任务排在任务调度队列前边;若多个任务的时限和运算量均相同,则将这些任务随机排列。
本发明中,用Uj表示某一个任务,其中j为任务号;M表示全部任务集合,或称全部任务队列;M0表示尚未调度的任务集合,又称尚未调度任务队列;初始状态下全部任务均处于待调度状态,即M0=M=(U1,U2,…Uj)。并且,用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就是当前调度的任务,就是确定要分配的资源,为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数据。
表一
表二
表三
表四
表五
表六
由表三至表六的数据可以看出,本发明的实时***任务调度方法与EDF调度相比,在网络利用率和时限内到达的任务数比例上均有明显提高。当***任务量进一步增加时,本发明任务调度方法的优势将更加明显。
上述实例主要是多媒体应用环境下,针对音频和视频任务的调度,实际应用中,本发明的方法可以适用于各种应用环境。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (6)
1、一种实时***中的任务调度方法,其特征在于,该方法包括:
A、根据时限和运算量,对待调度任务进行顺序排列,具体操作为:
先根据待调度任务的时限先后,将时限早的任务排在任务调度队列前边;对存在的多个时限相同的任务,再按任务运算量大小,将运算量大的任务排在任务调度队列前边;对多个时限和运算量均相同的任务,将所述任务随机排列;
B、有空闲资源时,按排列顺序为多个以上待调度任务分配资源,其中,为多个待调度任务分配资源时,所分配资源的多个任务间最大时延最小。
2、根据权利要求1所述的方法,其特征在于,步骤B所述为待调度任务分配资源具体包括:
B1、初始化任务调度队列Qi,(1≤i≤n),用Uj表示一个任务,其中Qi为实时***的调度过程中分配给资源Ci的任务形成的队列,j为任务号;
B2、确定当前要调度任务的数量n',即确定min(|M0|,|N0|)的值,n'=min(|M0|,|N0|),其中,M0为尚未调度任务队列,|M0|为尚未调度任务队列所含元素个数,N0为当前时刻空闲资源集合,|N0|为当前时刻空闲资源集合所含元素个数;
B4、根据当前资源分配情况及资源恢复空闲情况,更新空闲资源集合;
B5、根据当前的任务调度情况,更新任务调度队列;
B6、判断是否调度完所有任务,如果调度完,则结束当前任务调度流程;如果未调度完,则返回步骤B2。
3、根据权利要求2所述的方法,其特征在于,所述每个任务调度队列与每个可分配资源一一对应。
4、根据权利要求2所述的方法,其特征在于,步骤B4中所述更新空闲资源集合具体为:从空闲资源集合中删除当前被占用的资源,并将当前恢复空闲的资源加入空闲资源集合中。
5、根据权利要求2所述的方法,其特征在于,步骤B5所述更新任务调度队列为:将当前所分配的任务Uk添加到任务调度队列中。
6、根据权利要求2所述的方法,其特征在于,步骤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 CN101145112A (zh) | 2008-03-19 |
CN100485625C true 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) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101968750B (zh) * | 2010-10-15 | 2012-12-26 | 珠海举天软件科技有限公司 | 计算机***及其工作方法 |
CN102654843A (zh) * | 2011-03-04 | 2012-09-05 | 北京国科环宇空间技术有限公司 | 嵌入式处理器中非抢占式容错调度方法及嵌入式处理器 |
CN102158906B (zh) * | 2011-05-19 | 2014-02-26 | 北京工业大学 | 一种服务质量敏感***及其任务调度方法 |
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 | 东南大学 | 一种云计算环境下的任务调度方法 |
CN103309750B (zh) * | 2013-07-10 | 2016-09-14 | 国睿集团有限公司 | 面向硬实时服务的主机资源可满足性检测方法 |
CN104636200B (zh) * | 2013-11-14 | 2019-03-29 | 上海计算机软件技术开发中心 | 一种计算机多进程公平调度的方法 |
CN106156115B (zh) * | 2015-04-07 | 2019-09-27 | ***通信集团云南有限公司 | 一种资源调度方法及装置 |
CN107229519B (zh) * | 2016-03-25 | 2021-04-23 | 阿里巴巴集团控股有限公司 | 任务调度方法和装置 |
CN106709628A (zh) * | 2016-11-24 | 2017-05-24 | 广州赛意信息科技股份有限公司 | 一种生产排程方法及*** |
CN109992382B (zh) * | 2017-12-29 | 2021-06-01 | 浙江宇视科技有限公司 | 任务调度方法、装置及任务调度器 |
CN111445213A (zh) * | 2020-03-31 | 2020-07-24 | 乌鲁木齐众维汇联信息科技有限公司 | 园区企业孵化服务的网络管理*** |
CN111614377B (zh) * | 2020-04-24 | 2021-09-14 | 江苏方天电力技术有限公司 | 一种基于hplc并发通道的采集多任务调度方法和*** |
-
2007
- 2007-11-01 CN CNB2007101767044A patent/CN100485625C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101145112A (zh) | 2008-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100485625C (zh) | 一种实时***任务调度方法 | |
CN103324525B (zh) | 一种云计算环境下的任务调度方法 | |
Sprunt et al. | Aperiodic task scheduling for hard-real-time systems | |
Levin et al. | DP-FAIR: A simple model for understanding optimal multiprocessor scheduling | |
Lehoczky et al. | The rate monotonic scheduling algorithm: Exact characterization and average case behavior | |
CN102902587B (zh) | 分布式任务调度方法、***和装置 | |
CN109408215A (zh) | 一种计算节点的任务调度方法和装置 | |
CN102096599A (zh) | 一种多队列任务调度方法及相关***和设备 | |
CN108762896A (zh) | 一种基于Hadoop集群任务调度方法及计算机设备 | |
CN101923487A (zh) | 一种综合嵌入式实时周期任务调度方法 | |
CN102158906B (zh) | 一种服务质量敏感***及其任务调度方法 | |
CN103455375A (zh) | Hadoop云平台下基于负载监控的混合调度方法 | |
CN104917839A (zh) | 一种用于云计算环境下的负载均衡方法 | |
CN113672391A (zh) | 一种基于Kubernetes的并行计算任务调度方法与*** | |
Stavrinides et al. | Orchestrating bag-of-tasks applications with dynamically spawned tasks in a distributed environment | |
CN102184124B (zh) | 任务调度方法及*** | |
CN116820784B (zh) | 一种面向推理任务QoS的GPU实时调度方法及*** | |
Dubey et al. | QoS driven task scheduling in cloud computing | |
Racu et al. | Improved response time analysis of tasks scheduled under preemptive round-robin | |
CN114138453B (zh) | 一种适合边缘计算环境的资源优化分配方法与*** | |
CN115858169A (zh) | 一种作业资源分配方法、装置、电子设备及存储介质 | |
CN112506640B (zh) | 一种用于加密运算芯片的多处理器架构及调配方法 | |
Papazachos et al. | Gang scheduling in a two-cluster system implementing migrations and periodic feedback | |
Zouaoui et al. | CPU scheduling algorithms: Case & comparative study | |
CN108845870B (zh) | 一种基于pWCET整形的概率性实时任务调度方法 |
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 |