CN112445591A - 一种面向复杂任务集的任务调度系统及方法 - Google Patents
一种面向复杂任务集的任务调度系统及方法 Download PDFInfo
- Publication number
- CN112445591A CN112445591A CN202011207054.7A CN202011207054A CN112445591A CN 112445591 A CN112445591 A CN 112445591A CN 202011207054 A CN202011207054 A CN 202011207054A CN 112445591 A CN112445591 A CN 112445591A
- Authority
- CN
- China
- Prior art keywords
- task
- priority
- time
- tasks
- unit
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Abstract
本发明的一个实施例公开了一种面向复杂任务集的任务调度系统及方法,系统包括:显控软件和CPU处理器,显控软件包括任务采集单元、优先级计算单元和调度单元,其中,任务采集单元对显控软件中所有任务的当前状态进行采集,包括任务周期、相对截止期、剩余执行时间和系统时间片;优先级计算单元根据任务采集单元获取的任务当前状态更新所有任务的动态优先级,然后对任务就绪队列进行排序;调度单元用于调度具有最高优先级的任务;CPU处理器执行调度单元调度的任务。本发明提高了硬实时周期任务满足截止期的概率,减小软实时周期任务的平均响应时间。
Description
技术领域
本发明涉及任务调度领域,更具体地,涉及一种面向复杂任务集的任务调度系统及方法。
背景技术
测控地面设备需要对测控应答机进行全方位的测试验证,在地面软件中既存在遥测帧解析、测量解算等硬实时周期任务,也存在数传帧、遥测帧显示和遥测数据存储等软实时周期任务。在常规的任务调度方法中,采用基于固定优先级的可抢占式时间片轮转方法对任务集进行调度,该方法在任务调度之初就给各个任务分配了固定优先级,高优先级的任务可以抢占低优先级的任务,同等优先级的任务采用时间片轮转执行。由于该方法无法根据任务当前状态更改优先级,所以具有高优先级但截止期较长的任务将持续占据CPU资源,而具有低优先级但截止期较短的任务可能由于无法抢占CPU资源而夭折。
发明内容
本发明的目的在于提供一种面向复杂任务集的任务调度系统及方法,在基于优先级的可抢占式时间片轮转方法的基础之上,综合考虑了任务周期、相对截止时间和空闲时间三个因素动态计算任务优先级,并引入抢占阈值的思想,旨在提高硬实时周期任务满足截止期的概率,减少软实时周期任务的平均响应时间。
本发明第一方面提供一种面向复杂任务集的任务调度系统,包括:显控软件和CPU处理器,
其中,
显控软件包括任务采集单元、优先级计算单元和调度单元;
任务采集单元对显控软件中所有任务的当前状态进行采集,包括任务周期、相对截止期、剩余执行时间和系统时间片;
优先级计算单元根据任务采集单元获取的任务当前状态更新所有任务的动态优先级,然后对任务就绪队列进行排序;
调度单元用于调度任务就绪队列中具有最高优先级的任务;
CPU处理器执行调度单元调度的任务。
本发明第二方面提供一种利用本发明第一方面所述系统进行任务调度的方法,包括:
判断任务为硬实时周期任务还是软实时周期任务,如果为硬实时周期任务,则根据剩余空闲时间、相对截止期和系统时间片三方面因素计算第一优先级,如果为软实时周期任务,则根据任务周期、剩余空闲时间和系统时间片三方面因素计算第一优先级;
任务采集单元对显控软件中所有任务的当前状态进行采集,包括任务周期、相对截止期、剩余执行时间和系统时间片;
优先级计算单元根据任务采集单元获取的任务当前状态更新所有任务的动态优先级,然后对任务就绪队列进行排序;
调度单元选取任务就绪队列中具有最高第一优先级的任务,同时优先级计算单元计算该任务的第二优先级,即抢占阈值;
CPU处理器执行调度单元调度的任务;
当新任务来临或者当前系统时间片执行完毕时,优先级计算单元重新计算并更新所有任务的第一优先级,若存在某个任务的第一优先级高于当前执行任务的第一、二优先级,则抢占当前任务开始执行,否则当前任务继续执行。
在一个具体实施例中,所述硬实时周期任务的第一优先级的计算方法使用如下公式计算:
PHi=Pinit+(di-t-eri+Di)/n/tslot*Prange
其中,Pinit表示硬实时周期任务的初始优先级,di-t-eri表示任务的剩余空闲时间,Di表示任务的相对截止期,n为调控因子,tslot为系统时间片,Prange为优先级变化范围。
在一个具体实施例中,所述软实时周期任务的第一优先级的计算方法使用如下公式计算:
PSi=Pinit+(di-t-eri+Ti)/n/tslot*Prange
其中,Pinit表示软实时周期任务的初始优先级,di-t-eri表示任务的剩余空闲时间,Ti表示任务周期,n为调控因子,tslot为系统时间片,Prange为优先级变化范围。
在一个具体实施例中,所述第二优先级的计算方法如下式所示:
其中,Pinit表示用户应用程序的最高级,Prange表示优先级的取值范围,取值7,Li表示任务当前的剩余空闲时间,Lmax表示剩余空闲时间的最大值,可以表示为任务的相对截止期与任务执行时间之差,即Lmax=Di-ei,u为临界参数,取值Lmax/4。
在一个具体实施例中,当剩余空闲时间在[0,u]范围内时,认为当前任务剩余空闲时间较小,设置当前任务的抢占阈值为最高优先级,禁止其他任务抢占该任务;当剩余空闲时间较大时,通过剩余空闲时间所占的比例动态计算抢占阈值。
在一个具体实施例中,所述显控软件中任务就绪队列采用单链表结构,遵循先入先出原则,链表结点使用结构体存储结构,用来存储任务信息。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本发明一个实施例一种面向任务集的优先级任务调度系统的示意图。
图2示出优先级计算单元的流程图。
图3示出链表结点存储结构。
具体实施方式
为使本发明的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明第一实施例提供一种面向任务集的优先级任务调度系统,如图1所示,包括:显控软件和CPU处理器,
其中,
显控软件包括任务采集单元、优先级计算单元和调度单元;
任务采集单元对显控软件中所有任务的当前状态进行采集,包括任务周期、相对截止期、剩余执行时间和系统时间片;
优先级计算单元根据任务采集单元获取的任务当前状态更新所有任务的动态优先级,然后对任务就绪队列进行排序;
调度单元用于调度任务就绪队列中具有最高优先级的任务;
CPU处理器执行调度单元调度的任务。
本发明第二实施例提供一种利用本发明第一实施例所述系统进行任务调度的方法,包括:
判断任务为硬实时周期任务还是软实时周期任务,如果为硬实时周期任务,则根据剩余空闲时间、相对截止期和系统时间片三方面因素计算第一优先级,如果为软实时周期任务,则根据任务周期、剩余空闲时间和系统时间片三方面因素计算第一优先级;
任务采集单元对显控软件中所有任务的当前状态进行采集,包括任务周期、相对截止期、剩余执行时间和系统时间片;
优先级计算单元根据任务采集单元获取的任务当前状态更新所有任务的动态优先级,然后对任务就绪队列进行排序;
调度单元选取任务就绪队列中具有最高第一优先级的任务,同时优先级计算单元计算该任务的第二优先级,即抢占阈值;
CPU处理器执行调度单元调度的任务;
当新任务来临或者当前系统时间片执行完毕时,优先级计算单元重新计算并更新所有任务的第一优先级,若存在某个任务的第一优先级高于当前执行任务的第一、二优先级,则抢占当前任务开始执行,否则当前任务继续执行。
在一个具体实施例中,所述硬实时周期任务的第一优先级的计算方法使用如下公式计算:
PHi=Pinit+(di-t-eri+Di)/n/tslot*Prange
其中,Pinit表示硬实时周期任务的初始优先级,di-t-eri表示任务的剩余空闲时间,Di表示任务的相对截止期,n为调控因子,tslot为系统时间片,Prange为优先级变化范围。
在一个具体实施例中,所述软实时周期任务的第一优先级的计算方法使用如下公式计算:
PSi=Pinit+(di-t-eri+Ti)/n/tslot*Prange
其中,Pinit表示软实时周期任务的初始优先级,di-t-eri表示任务的剩余空闲时间,Ti表示任务周期,n为调控因子,tslot为系统时间片,Prange为优先级变化范围。
在一个具体实施例中,所述第二优先级的计算方法如下式所示:
其中,Pinit表示用户应用程序的最高级,Prange表示优先级的取值范围,取值7,Li表示任务当前的剩余空闲时间,Lmax表示剩余空闲时间的最大值,可以表示为任务的相对截止期与任务执行时间之差,即Lmax=Di-ei,u为临界参数,取值Lmax/4。
在一个具体实施例中,当剩余空闲时间在[0,u]范围内时,认为当前任务剩余空闲时间较小,设置当前任务的抢占阈值为最高优先级,禁止其他任务抢占该任务;当剩余空闲时间较大时,通过剩余空闲时间所占的比例动态计算抢占阈值。
在一个具体实施例中,所述显控软件中任务就绪队列采用单链表结构,遵循先入先出原则,链表结点使用结构体存储结构,用来存储任务信息。
在一个具体实施例中,优先级计算单元的流程如图2所示,
其中硬实时周期任务使用struct Hardcycletask{}表示,软实时周期任务使用struct Softcycletask{}表示。结构体包含的变量如图3所示。
其中CwinThread类封装了线程的各类函数,软件中使用AfxBeginThread()函数创建线程时返回变量m_thread,用于对线程的各种操作。线程类型ThreadType用以区别硬实时周期任务和软实时周期任务,规定ThreadType等于1时为硬实时周期任务,等于0时为软实时周期任务,在就绪队列中,各任务按照优先级高低进行排列。
在每个调度点到来时,根据线程类型和线程状态更新各任务结点的优先级Pi、优先级变化系数Ki和剩余执行时间er等信息,其中Pi和Ki根据线程类型调用不同的方法计算,使用函数void HardtaskPriority(LPVOID,pThread)封装测量结算等硬实时周期任务的优先级计算方法,函数void SofttaskPriority(LPVOID,pThread)封装遥测数据显示等软实时周期任务的优先级计算方法。通过调用函数QueryPerformanceFrequency()和QueryPerformanceCounter()获取当前线程的剩余执行时间er,具体实现如下:首先调用QueryPerformanceFrequency()函数返回值n1和n2,则剩余执行时间e=e-(n2-n1)/f。更新完线程的状态信息后,根据各个线程的优先级大小重新排列就绪队列,若上一个时间片中的任务ri执行完毕,则下一个时间片选择就绪队列中具有最高优先级的任务执行,否则判断就绪队列中是否存在满足抢占条件的线程,若存在,下一个时间片调度该线程开始执行,否则ri继续执行,计算即将执行任务的抢占阈值,通过调用CeSetThreadPriority()函数设置到线程优先级中。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。
Claims (7)
1.一种面向复杂任务集的任务调度系统,其特征在于,包括:显控软件和CPU处理器,
其中,
显控软件包括任务采集单元、优先级计算单元和调度单元;
任务采集单元对显控软件中所有任务的当前状态进行采集,包括任务周期、相对截止期、剩余执行时间和系统时间片;
优先级计算单元根据任务采集单元获取的任务当前状态更新所有任务的动态优先级,然后对任务就绪队列进行排序;
调度单元用于调度任务就绪队列中具有最高优先级的任务;
CPU处理器执行调度单元调度的任务。
2.一种利用权利要求1所述系统进行任务调度的方法,其特征在于,包括:
判断任务为硬实时周期任务还是软实时周期任务,如果为硬实时周期任务,则根据剩余空闲时间、相对截止期和系统时间片三方面因素计算第一优先级,如果为软实时周期任务,则根据任务周期、剩余空闲时间和系统时间片三方面因素计算第一优先级;
任务采集单元对显控软件中所有任务的当前状态进行采集,包括任务周期、相对截止期、剩余执行时间和系统时间片;
优先级计算单元根据任务采集单元获取的任务当前状态更新所有任务的动态优先级,然后对任务就绪队列进行排序;
调度单元选取任务就绪队列中具有最高第一优先级的任务,同时优先级计算单元计算该任务的第二优先级,即抢占阈值;
CPU处理器执行调度单元调度的任务;
当新任务来临或者当前系统时间片执行完毕时,优先级计算单元重新计算并更新所有任务的第一优先级,若存在某个任务的第一优先级高于当前执行任务的第一、二优先级,则抢占当前任务开始执行,否则当前任务继续执行。
3.根据权利要求2所述的方法,其特征在于,所述硬实时周期任务的第一优先级的计算方法使用如下公式计算:
PHi=Pinit+(di-t-eri+Di)/n/tslot*Prange
其中,Pinit表示硬实时周期任务的初始优先级,di-t-eri表示任务的剩余空闲时间,Di表示任务的相对截止期,n为调控因子,tslot为系统时间片,Prange为优先级变化范围。
4.根据权利要求2所述的方法,其特征在于,所述软实时周期任务的第一优先级的计算方法使用如下公式计算:
PSi=Pinit+(di-t-eri+Ti)/n/tslot*Prange
其中,Pinit表示软实时周期任务的初始优先级,di-t-eri表示任务的剩余空闲时间,Ti表示任务周期,n为调控因子,tslot为系统时间片,Prange为优先级变化范围。
6.根据权利要求5所述的方法,其特征在于,当剩余空闲时间在[0,u]范围内时,认为当前任务剩余空闲时间较小,设置当前任务的抢占阈值为最高优先级,禁止其他任务抢占该任务;当剩余空闲时间较大时,通过剩余空闲时间所占的比例动态计算抢占阈值。
7.根据权利要求2所述的方法,其特征在于,所述显控软件中任务就绪队列采用单链表结构,遵循先入先出原则,链表结点使用结构体存储结构,用来存储任务信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011207054.7A CN112445591A (zh) | 2020-11-03 | 2020-11-03 | 一种面向复杂任务集的任务调度系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011207054.7A CN112445591A (zh) | 2020-11-03 | 2020-11-03 | 一种面向复杂任务集的任务调度系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112445591A true CN112445591A (zh) | 2021-03-05 |
Family
ID=74736707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011207054.7A Pending CN112445591A (zh) | 2020-11-03 | 2020-11-03 | 一种面向复杂任务集的任务调度系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112445591A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106970835A (zh) * | 2017-03-20 | 2017-07-21 | 华侨大学 | 固定优先级资源受限系统层次能耗优化方法 |
CN108563494A (zh) * | 2018-04-04 | 2018-09-21 | 吉林省星途科技有限公司 | 一种自适应动态调整的线程调度系统及方法 |
CN109842947A (zh) * | 2017-11-24 | 2019-06-04 | 中国科学院计算技术研究所 | 一种面向基站任务的调度方法和系统 |
WO2020000944A1 (zh) * | 2018-06-25 | 2020-01-02 | 星环信息科技(上海)有限公司 | 基于抢占式调度的资源共享使用方法、系统及设备 |
-
2020
- 2020-11-03 CN CN202011207054.7A patent/CN112445591A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106970835A (zh) * | 2017-03-20 | 2017-07-21 | 华侨大学 | 固定优先级资源受限系统层次能耗优化方法 |
CN109842947A (zh) * | 2017-11-24 | 2019-06-04 | 中国科学院计算技术研究所 | 一种面向基站任务的调度方法和系统 |
CN108563494A (zh) * | 2018-04-04 | 2018-09-21 | 吉林省星途科技有限公司 | 一种自适应动态调整的线程调度系统及方法 |
WO2020000944A1 (zh) * | 2018-06-25 | 2020-01-02 | 星环信息科技(上海)有限公司 | 基于抢占式调度的资源共享使用方法、系统及设备 |
Non-Patent Citations (5)
Title |
---|
周艳;: ""基于LLF算法的双队列TinyOS调度策略"", 《辽东学院学报(自然科学版)》 * |
徐文清;杨红雨;: ""一种基于动态优先级的实时混合任务调度算法"", 《四川大学学报(自然科学版)》 * |
金宏, 王宏安, 王强, 戴国忠: ""改进的最小空闲时间优先调度算法"", 《软件学报》, no. 08 * |
金宏,王强,王宏安,戴国忠: ""基于动态抢占阈值的实时调度"", 《计算机研究与发展》 * |
高阳, 盛德卫, 文海: ""面向复杂任务集的任务调度算法"", 《现代防御技术》, pages 162 - 166 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10558498B2 (en) | Method for scheduling data flow task and apparatus | |
US10908954B2 (en) | Quality of service classes | |
US7076781B2 (en) | Resource reservation for large-scale job scheduling | |
Sprunt et al. | Aperiodic task scheduling for hard-real-time systems | |
US20170228260A1 (en) | Efficient priority-aware thread scheduling | |
CN111400022A (zh) | 一种资源调度方法、装置及电子设备 | |
US9990229B2 (en) | Scheduling method and apparatus for applying laxity correction based on task completion proportion and preset time | |
JP3987384B2 (ja) | 実行キュー管理 | |
US20050149927A1 (en) | Task management device and method, operation judgment device and method, and program to be judged | |
KR101886072B1 (ko) | 분산 인 메모리 환경에서 실시간 스트림 데이터 처리를 위한 동적 잡 스케쥴링 시스템 및 방법 | |
CN109117280B (zh) | 电子装置及其限制进程间通信的方法、存储介质 | |
CN110781145B (zh) | 一种文件系统任务调度方法、装置、设备及可读存储介质 | |
CN111026519A (zh) | 基于分布式的任务优先级调度方法和系统及存储介质 | |
KR20180018302A (ko) | 데이터 프로세싱 엔진 및 그것의 리소스 관리 방법 | |
KR101373786B1 (ko) | 자원-기반 스케쥴러 | |
CN109117279B (zh) | 电子装置及其限制进程间通信的方法、存储介质 | |
CN112579271A (zh) | 用于非实时操作系统的实时任务调度方法、模块、终端和存储介质 | |
CN113282381A (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
CN112925616A (zh) | 任务分配方法、装置、存储介质及电子设备 | |
CN113127173B (zh) | 一种异构感知的集群调度方法及装置 | |
CN112445591A (zh) | 一种面向复杂任务集的任务调度系统及方法 | |
JP4048638B2 (ja) | スケジューリング装置及び方法並びに記録媒体 | |
CN113986484B (zh) | 社交软件的任务处理全局调度方法 | |
CN115309519A (zh) | 基于时间触发机制的确定性任务调度编排方法、系统和存储介质 | |
CN111708799B (zh) | Spark任务处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |