CN108563494A - 一种自适应动态调整的线程调度系统及方法 - Google Patents
一种自适应动态调整的线程调度系统及方法 Download PDFInfo
- Publication number
- CN108563494A CN108563494A CN201810294958.4A CN201810294958A CN108563494A CN 108563494 A CN108563494 A CN 108563494A CN 201810294958 A CN201810294958 A CN 201810294958A CN 108563494 A CN108563494 A CN 108563494A
- Authority
- CN
- China
- Prior art keywords
- thread
- period
- time
- priority
- aperiodic
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Supply And Distribution Of Alternating Current (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种自适应动态调整的线程调度系统及方法,能够解决地面测试设备任务调度中高优先级任务持续抢占以及短周期任务易被错失的问题。本发明的技术方案为:采用预处理模块将处于就绪状态的线程分成周期线程和非周期线程。采用优先级计算模块针对周期线程和非周期线程采用预先设定的优先级公式分别计算优先级以及优先级的权重参数。采用调度模块依据优先级选择处于就绪状态的线程切换进入运行状态。采用状态采集模块采集获取进入运行状态的线程的优先级的权重参数。采用调度状态存储模块存储采集获取的进入运行状态的线程的优先级的权重参数。
Description
技术领域
本发明涉及嵌入式软件技术领域。
背景技术
在航天测控系统中,地面测试设备负责对应答机进行全方位、多场景的地面测试验证,对于地面测试设备来说,人机交互功能是其重要的功能。嵌入式软件完成人机交互功能的实现,是地面测试设备的主要控制软件。在测控地面测试设备中,嵌入式软件的任务调度算法和数据传输机制是影响软件性能的重要因素。
对嵌入式软件中任务进行分析,现有的低优先级的非周期任务、周期软实时任务平均响应时间过长,主要表现在:
(1)在存在多种优先级同时就绪的情况下,高优先级任务的持续抢占,使得其他低优先级的任务长期得不到执行。
(2)在基于优先级的时间片轮转调度,调度机制没有全方面考虑任务在任意时刻的状态特性,如处理器处理多个线程时,规定每个线程执行1毫秒后切换到另一个线程,对于即将结束的线程,依然要等待处理器将其他线程每个执行1毫秒后才能进行,这就增长了整体执行的时间,效率较低。由于执行周期长的线程获得较大的时间片分配,对于测控地面测试设备中需要快速反应的任务、剩余时间相对较短的任务,任务被错失的概率较大。
实时调度可以分为三类:优先级驱动、共享驱动、定时驱动三类。目前,国内外对地面测试设备的多线程任务调度的研究主要集中在两个方面:
(1)对于周期任务的静态调度算法,根据任务执行周期的长短进行优先级分配。执行周期越长,优先级越低;执行周期越短,优先级越高。
(2)对于周期任务的动态优先级调度算法,根据到达任务的截止期,动态计算其优先级大小。到达任务的截止期越短则其越紧急,对应优先级应越高。
从大型机系统到嵌入式系统,现在主流地面测试设备的操作系统都是属于优先级驱动的调度,且针对任务调度进行的优化也是基于优先级进行,故在此主要对优先级驱动的调度方法进行研究。
地面测试设备的任务调度算法有以周期任务为模型的单调速率调度算法(RM)和最早截止期调度算法(EDF)以及DM、LSF算法等。
在2014年第63期《IEEE Transactions on Computers》第1309页到1315页M.Park发表的论文“An Efficient Test Method for Rate Monotonic Schedulability”针对RM算法的可调度性提出一种基于反馈时间分析的有效测试方法,优化后较原始公式更接近真实测试结果。在2014年第63期《IEEE Transactions on Computers》1197页至1206页由J.Lee和K.G.Shin发表的“Preempt a Job or Not in EDF Scheduling of UniprocessorSystems”中,对EDF的抢占时延性能进行了分析,提出基于EDF的分包调度策略,但对其调度方式的评估方法仍有待提高。
相对而言,对最早截止期优先调度算法和最小空闲时间优先调度算法的研究路线更为合理可行。在2015年A.Brun等在《IEEE Embedded Systems Letters》第7期第89页到91页发表的论文“A Note on the EDF Preemption Behavior in“Rate Monotonic VersusEDF:Judgment Day””中针对多优先级抢先的M/G/1队列进行了EDF调度性能分析,对多处理器上任务调度进行了优化,但相对EDF耗费稍多的调度时间。
因此,目前尚未有一种线程调度方案能够解决地面测试设备任务调度中高优先级任务持续抢占以及短周期任务易被错失的问题。
发明内容
有鉴于此,本发明提供了一种自适应动态调整的线程调度系统及方法,能够解决地面测试设备任务调度中高优先级任务持续抢占以及短周期任务易被错失的问题。
一种自适应动态调整的线程调度系统,针对处理器中执行的软件,采用系统对软件中的线程进行调度,系统包括:
预处理模块,配置用于将处于就绪状态的线程分成周期线程和非周期线程。
优先级计算模块,配置用于针对周期线程和非周期线程采用预先设定的优先级公式分别计算优先级以及优先级的权重参数。
调度模块,配置用于依据优先级选择处于就绪状态的线程切换进入运行状态。
状态采集模块,配置用于采集获取进入运行状态的线程的优先级的权重参数。
调度状态存储模块,配置用于存储采集获取的进入运行状态的线程的优先级的权重参数。
进一步地,优先级计算模块,还配置用于:
针对周期线程,预先设定优先级公式为:
周期线程的优先级为在线程的初始优先级的基础上,增加由线程的周期、截止期以及剩余空闲时间依权重计算的周期线程优先级调整值。
周期线程的优先级的权重参数即为线程的周期、截止期以及剩余空闲时间的权重。
针对非周期线程,预先设定的优先级公式为:
当任务价值为1时,非周期线程的优先级设置为比当前处于运行状态的线程高一级;非周期线程的优先级的权重参数为0。
当任务价值为0时,非周期线程的优先级为在线程的初始优先级的基础上,增加由截止期以及剩余空闲时间依权重计算的非周期线程优先级调整值。
非周期线程的优先级的权重参数为截止期以及剩余空闲时间的权重。
进一步地,周期线程为周期硬实时线程时,线程的周期、截止期以及剩余空闲时间的权重分别为:
其中t为当前时间;其中表示周期硬实时线程的开始执行时间,eZH表示周期硬实时线程的执行时间,表示周期硬实时线程被抢占之后等待的时间;eZH、线程的周期、截止期以及剩余空闲时间均为周期硬实时线程的已知的属性参数。
周期线程为周期软实时线程时,线程的周期、截止期以及剩余空闲时间的权重分别为:
其中表示周期软实时线程的开始执行时间,eZS表示周期软实时线程的执行时间,表示周期软实时线程被抢占之后等待的时间;eZS、线程的周期、截止期以及剩余空闲时间均为周期软实时线程的已知的属性参数。
进一步地,针对非周期线程,预先设定的优先级公式,其中当任务价值为0时,非周期线程的截止期以及剩余空闲时间的权重分别为:
其中t为当前时间,表示非周期线程的开始执行时间,ef表示非周期线程的执行时间,表示非周期线程被抢占之后等待的时间。
ef、均为非周期线程的已知的属性参数。
非周期线程的截止期为ef/(U/sum);U为处理器利用率;sum为处理器中执行的软件中总线程数。
非周期线程的剩余空闲时间为 表示非周期线程的到达时间;t为当前时间;表示剩余执行时间。
本发明实施例还提供了一种自适应调整的线程调度方法,该方法用于对处理器中执行的软件中的线程进行调度,方法包括如下步骤:
S101、获取处于就绪状态的线程,判断处于就绪状态的线程是否为周期线程;
若是,则跳转至S102;否则跳转至S103。
S102、针对周期线程采用预先设定的优先级公式分别计算优先级以及优先级的权重参数。
设置预先设定的优先级公式为:
周期线程的优先级为在线程的初始优先级的基础上,增加由线程的周期、截止期以及剩余空闲时间依权重计算的周期线程优先级调整值。
周期线程的优先级的权重参数即为线程的周期、截止期以及剩余空闲时间的权重。
跳转至S104;
S103、针对非周期线程采用预先设定的优先级公式分别计算优先级以及优先级的权重参数;设置预先设定的优先级公式为:
当任务价值为1时,非周期线程的优先级设置为比当前处于运行状态的线程高一级;非周期线程的优先级的权重参数为0。
当任务价值为0时,非周期线程的优先级为在线程的初始优先级的基础上,增加由截止期以及剩余空闲时间依权重计算的非周期线程优先级调整值。
非周期线程的优先级的权重参数为截止期以及剩余空闲时间的权重。
跳转至S104。
S104、依据优先级选择处于就绪状态的线程切换进入运行状态。
S105、采集获取进入运行状态的线程的优先级的权重参数并存储。
进一步地,周期线程为周期硬实时线程时,线程的周期、截止期以及剩余空闲时间的权重分别为:
其中t为当前时间;其中表示周期硬实时线程的开始执行时间,eZH表示周期硬实时线程的执行时间,表示周期硬实时线程被抢占之后等待的时间;eZH、线程的周期、截止期以及剩余空闲时间均为周期硬实时线程的已知的属性参数.
周期线程为周期软实时线程时,线程的周期、截止期以及剩余空闲时间的权重分别为:
其中表示周期软实时线程的开始执行时间,eZS表示周期软实时线程的执行时间,表示周期软实时线程被抢占之后等待的时间;eZS、线程的周期、截止期以及剩余空闲时间均为周期软实时线程的已知的属性参数。
进一步地,针对非周期线程,预先设定的优先级公式,其中当任务价值为0时,非周期线程的截止期以及剩余空闲时间的权重分别为:
其中t为当前时间,表示非周期线程的开始执行时间,ef表示非周期线程的执行时间,表示非周期线程被抢占之后等待的时间;
ef、均为非周期线程的已知的属性参数。
非周期线程的截止期为ef/(U/sum);U为处理器利用率;sum为处理器中执行的软件中总线程数;
非周期线程的剩余空闲时间为 表示非周期线程的到达时间;t为当前时间;表示剩余执行时间。
有益效果:
1、本发明提出的自适应动态调整的线程调度系统及方法,在现有优先级任务调度算法的基础上增加了优先级实时计算,并根据线程当前运行状态和本身固有属性参数动态调整线程优先级,因此在进行线程调度时,在地面测试设备多种优先级线程同时进入就绪状态的情况下,通过优先级计算模块获知各处于就绪状态的线程的等待时长及剩余生存周期,自适应地调整线程优先级,避免低优先级线程长期等待无法执行,提高线程执行命中率,从而避免地面测试设备在进行任务调度时,高优先级任务持续抢占以及短周期任务易被错失的问题,有效改善地面测试设备多线程切换的效率。
2、本发明所提出的自适应动态调整线程调度系统及方法,针对线程调度过程中对拥有低优先级的非周期任务、周期软实时任务平均响应时间过长的问题,提出了基于周期、截止期和剩余空闲时间等多参数的自适应优先级线程调度方法,各参数权重随时间动态改变,因此减小了任务切换次数,缩短了非周期任务、周期软实时任务的平均响应时间。
附图说明
图1为本发明实施例所提供的自适应动态调整的线程调度系统组成框图;
图2为本发明实施例所提供的自适应动态调整的线程调度方法流程图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
请参考图1,图1示出了本发明所提供的一种自适应动态调整的线程调度系统的组成框图,其中,该系统主要针对处理器中执行的软件,采用该系统可以对软件中的线程进行调度。如图1所示,该系统包括预处理模块、优先级计算模块、调度模块、状态采集模块以及调度状态存储模块。
其中各模块的功能如下:
预处理模块,配置用于将处于就绪状态的线程分成周期线程和非周期线程。
本发明实施例中,线程作为程序运行的基本任务单元,可分为周期线程和非周期线程两类,周期线程又分为硬截止期与软截止期线程,分别记为周期硬实时任务和周期软实时任务。
本发明实施例中给出了所得到的周期线程的表达式和非周期线程的表达式。
其中对于周期线程,其分为周期硬实时线程和周期软实时线程。
对于周期硬实时线程,可将其表达为由其已知的属性参数组成的向量的表达形式:
TZH为周期硬实时线程的周期;
DZH为周期硬实时线程的相对截止期限;
dZH为周期硬实时线程的绝对截止期限;
PZH为周期硬实时线程的自适应动态优先级;
为周期硬实时线程的初始优先级;
为软件中总共可调度的最大优先级值与最小优先级值之差;
为周期硬实时线程的到达时间;
为周期硬实时线程的时间片大小;
eZH为周期硬实时线程的执行时间;
为周期硬实时线程的剩余空闲时间;
为周期硬实时线程的剩余执行时间;
为周期硬实时线程的开始执行时间;
为周期硬实时线程的被抢占之后等待的时间。
对于周期软实时线程,可将其表达为由其已知的属性参数组成的向量的表达形式:
TZS为周期软实时线程的周期;
DZS为周期软实时线程的相对截止期限;
dZS为周期软实时线程的绝对截止期限;
PZS为周期软实时线程的自适应动态优先级;
为周期软实时线程的初始优先级;
为软件中总共可调度的最大优先级值与最小优先级值之差;
为周期软实时线程的到达时间;
为周期软实时线程的时间片大小;
eZS为周期软实时线程的执行时间;
为周期软实时线程的剩余空闲时间;
为周期软实时线程的剩余执行时间;
为周期软实时线程的开始执行时间;
为周期软实时线程的被抢占之后等待的时间。
对于非周期线程,可将其表达为由其已知的属性参数组成的向量的表达形式:
Df为非周期线程的相对截止期限;
df为非周期线程的绝对截止期限;
Pf为非周期线程的自适应动态优先级;
为非周期线程的初始优先级;
为软件中总共可调度的最大优先级值与最小优先级值之差;
为周期软实时线程的到达时间;
为非周期线程的时间片大小;
ef为周期软实时线程的执行时间;
为非周期线程的剩余空闲时间;
为非周期线程的剩余执行时间;
Vf为非周期线程的任务价值;
为非周期线程的开始执行时间;
为非周期线程的被抢占之后等待的时间。
对于非周期线程,相比于周期线程减少了线程的周期,增加了非周期线程的任务价值。如果当前到达的非周期线程的执行时间小于当前软件中所有的周期线程的空闲时间,并且从当前时刻起到非周期任务的执行时间结束为止不会有新的线程到来,则将该非周期线程的任务价值置1,否则置0。
优先级计算模块,配置用于针对周期线程和非周期线程采用预先设定的优先级公式分别计算优先级以及优先级的权重参数。
针对周期线程,预先设定优先级公式为:
周期线程的优先级为在线程的初始优先级的基础上,增加由线程的周期、截止期以及剩余空闲时间依权重计算的周期线程优先级调整值.
周期线程的优先级的权重参数即为线程的周期、截止期以及剩余空闲时间的权重.
针对非周期线程,预先设定的优先级公式为:
当任务价值为1时,非周期线程的优先级设置为比当前处于运行状态的线程高一级,让到达的非周期线程优先执行;非周期线程的优先级的权重参数为0。
当任务价值为0时,非周期线程的优先级为在线程的初始优先级的基础上,增加由截止期以及剩余空闲时间依权重计算的非周期线程优先级调整值;
非周期线程的优先级的权重参数为截止期以及剩余空闲时间的权重。
调度模块,配置用于依据优先级选择处于就绪状态的线程切换进入运行状态.
状态采集模块,配置用于采集获取进入运行状态的线程的优先级的权重参数.
调度状态存储模块,配置用于存储采集获取的进入运行状态的线程的优先级的权重参数。
本发明提出的自适应动态调整的线程调度技术方案,在现有优先级任务调度算法的基础上增加了优先级实时计算,并根据线程当前运行状态和本身固有属性参数动态调整线程优先级,因此在进行线程调度时,在地面测试设备多种优先级线程同时进入就绪状态的情况下,通过优先级计算模块获知各处于就绪状态的线程的等待时长及剩余生存周期,自适应地调整线程优先级,避免低优先级线程长期等待无法执行,提高线程执行命中率,从而避免地面测试设备在进行任务调度时,高优先级任务持续抢占以及短周期任务易被错失的问题,有效改善地面测试设备多线程切换的效率。
本发明实施例中,在周期线程中,由于线程的周期以及截止期对周期硬实时线程和周期软实时线程的影响力不同,具体表现为:周期硬实时线程必须满足其截止期,一旦任务错过其截止期则会带来不可估量的后果。而对于周期软实时线程,最小化平均响应时间是优化的目标,即使某次到来的软实时任务超过截止期也具有一定意义。所以进行周期任务优先级的计算时,任务的周期参数和截止期参数选择其中一个参与进行。对于周期硬实时任务,应选取任务的截止期进行优先级计算,并设置消除线程的周期对优先级的影响;对于周期软实时任务,应选取线程的周期作为优先级计算的参数,并消除截止期对优先级的影响。
因此周期线程为周期硬实时线程时,线程的周期、截止期以及剩余空闲时间的权重分别为:
其中t为当前时间;其中表示周期硬实时线程的开始执行时间,eZH表示周期硬实时线程的执行时间,表示周期硬实时线程被抢占之后等待的时间;eZH、线程的周期、截止期以及剩余空闲时间均为周期硬实时线程的已知的属性参数;
周期线程为周期软实时线程时,线程的周期、截止期以及剩余空闲时间的权重分别为:
其中表示周期软实时线程的开始执行时间,eZS表示周期软实时线程的执行时间,表示周期软实时线程被抢占之后等待的时间;eZS、线程的周期、截止期以及剩余空闲时间均为周期软实时线程的已知的属性参数。
针对非周期线程,预先设定的优先级公式,其中当任务价值为0时,非周期线程的截止期以及剩余空闲时间的权重分别为:
其中t为当前时间,表示非周期线程的开始执行时间,ef表示非周期线程的执行时间,表示非周期线程被抢占之后等待的时间;
ef、均为非周期线程的已知的属性参数。
本发明实施例中,非周期线程的截止期为ef/(U/sum);U为处理器利用率;sum为处理器中执行的软件中总线程数;
非周期线程的剩余空闲时间为 表示非周期线程的到达时间;t为当前时间;表示剩余执行时间。
本发明提出的技术方案,针对线程调度过程中对拥有低优先级的非周期任务、周期软实时任务平均响应时间过长的问题,提出了基于周期、截止期和剩余空闲时间等多参数的自适应优先级线程调度方法,各参数权重随时间动态改变,因此减小了任务切换次数,缩短了非周期任务、周期软实时任务的平均响应时间。
请参考图2,图2示出了本发明实施例所提供的自适应动态调整的线程调度方法流程图,该方法用于对处理器中执行的软件中的线程进行调度,该方法包括如下步骤:
S101、获取处于就绪状态的线程,判断处于就绪状态的线程是否为周期线程;
若是,则跳转至S102;否则跳转至S103;
S102、设置预先设定的优先级公式为:
周期线程的优先级为在线程的初始优先级的基础上,增加由线程的周期、截止期以及剩余空闲时间依权重计算的周期线程优先级调整值;
周期线程的优先级的权重参数即为线程的周期、截止期以及剩余空闲时间的权重;
跳转至S104;
S103、设置预先设定的优先级公式为:
当任务价值为1时,非周期线程的优先级设置为比当前处于运行状态的线程高一级;非周期线程的优先级的权重参数为0;
当任务价值为0时,非周期线程的优先级为在线程的初始优先级的基础上,增加由截止期以及剩余空闲时间依权重计算的非周期线程优先级调整值;
非周期线程的优先级的权重参数为截止期以及剩余空闲时间的权重;
跳转至S104;
S104、依据优先级选择处于就绪状态的线程切换进入运行状态;
S105、采集获取进入运行状态的线程的优先级的权重参数并存储。
本发明实施例中,周期线程为周期硬实时线程时,线程的周期、截止期以及剩余空闲时间的权重分别为:
其中t为当前时间;其中表示周期硬实时线程的开始执行时间,eZH表示周期硬实时线程的执行时间,表示周期硬实时线程被抢占之后等待的时间;eZH、线程的周期、截止期以及剩余空闲时间均为周期硬实时线程的已知的属性参数;
周期线程为周期软实时线程时,线程的周期、截止期以及剩余空闲时间的权重分别为:
其中表示周期软实时线程的开始执行时间,eZS表示周期软实时线程的执行时间,表示周期软实时线程被抢占之后等待的时间;eZS、线程的周期、截止期以及剩余空闲时间均为周期软实时线程的已知的属性参数。
本发明实施例中,针对非周期线程,预先设定的优先级公式,其中当任务价值为0时,非周期线程的截止期以及剩余空闲时间的权重分别为:
其中t为当前时间,表示非周期线程的开始执行时间,ef表示非周期线程的执行时间,表示非周期线程被抢占之后等待的时间;
ef、均为非周期线程的已知的属性参数。
非周期线程的截止期为ef/(U/sum);U为处理器利用率;sum为处理器中执行的软件中总线程数;
非周期线程的剩余空闲时间为 表示非周期线程的到达时间;t为当前时间;表示剩余执行时间。
综上,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种自适应动态调整的线程调度系统,其特征在于,针对处理器中执行的软件,采用所述系统对软件中的线程进行调度,所述系统包括:
预处理模块,配置用于将处于就绪状态的线程分成周期线程和非周期线程;
优先级计算模块,配置用于针对所述周期线程和非周期线程采用预先设定的优先级公式分别计算优先级以及优先级的权重参数;
调度模块,配置用于依据优先级选择处于就绪状态的线程切换进入运行状态;
状态采集模块,配置用于采集获取进入运行状态的线程的优先级的权重参数;
调度状态存储模块,配置用于存储采集获取的进入运行状态的线程的优先级的权重参数。
2.如权利要求1所述的系统,其特征在于,所述优先级计算模块,还配置用于:
针对所述周期线程,所述预先设定优先级公式为:
所述周期线程的优先级为在线程的初始优先级的基础上,增加由线程的周期、截止期以及剩余空闲时间依权重计算的周期线程优先级调整值;
所述周期线程的优先级的权重参数即为线程的周期、截止期以及剩余空闲时间的权重;
针对所述非周期线程,所述预先设定的优先级公式为:
当任务价值为1时,所述非周期线程的优先级设置为比当前处于运行状态的线程高一级;所述非周期线程的优先级的权重参数为0;
当任务价值为0时,所述非周期线程的优先级为在线程的初始优先级的基础上,增加由截止期以及剩余空闲时间依权重计算的非周期线程优先级调整值;
所述非周期线程的优先级的权重参数为截止期以及剩余空闲时间的权重。
3.如权利要求2所述的系统,其特征在于,所述周期线程为周期硬实时线程时,所述线程的周期、截止期以及剩余空闲时间的权重分别为:
其中t为当前时间;其中表示所述周期硬实时线程的开始执行时间,eZH表示所述周期硬实时线程的执行时间,表示所述周期硬实时线程被抢占之后等待的时间;线程的周期、截止期以及剩余空闲时间均为所述周期硬实时线程的已知的属性参数;
所述周期线程为周期软实时线程时,所述线程的周期、截止期以及剩余空闲时间的权重分别为:
其中表示所述周期软实时线程的开始执行时间,eZS表示所述周期软实时线程的执行时间,表示所述周期软实时线程被抢占之后等待的时间;线程的周期、截止期以及剩余空闲时间均为所述周期软实时线程的已知的属性参数。
4.如权利要求2所述的系统,其特征在于,针对所述非周期线程,所述预先设定的优先级公式,其中当任务价值为0时,所述非周期线程的截止期以及剩余空闲时间的权重分别为:
其中t为当前时间,表示所述非周期线程的开始执行时间,ef表示所述非周期线程的执行时间,表示所述非周期线程被抢占之后等待的时间;
均为所述非周期线程的已知的属性参数。
所述非周期线程的截止期为ef/(U/sum);U为处理器利用率;sum为所述处理器中执行的软件中总线程数;
所述非周期线程的剩余空闲时间为 表示所述非周期线程的到达时间;t为当前时间;表示剩余执行时间。
5.一种自适应调整的线程调度方法,其特征在于,该方法用于对处理器中执行的软件中的线程进行调度,所述方法包括如下步骤:
S101、获取处于就绪状态的线程,判断所述处于就绪状态的线程是否为周期线程;
若是,则跳转至S102;否则跳转至S103;
S102、设置所述预先设定的优先级公式为:
周期线程的优先级为在线程的初始优先级的基础上,增加由线程的周期、截止期以及剩余空闲时间依权重计算的周期线程优先级调整值;
周期线程的优先级的权重参数即为线程的周期、截止期以及剩余空闲时间的权重;
跳转至S104;
S103、设置所述预先设定的优先级公式为:
当任务价值为1时,所述非周期线程的优先级设置为比当前处于运行状态的线程高一级;所述非周期线程的优先级的权重参数为0;
当任务价值为0时,所述非周期线程的优先级为在线程的初始优先级的基础上,增加由截止期以及剩余空闲时间依权重计算的非周期线程优先级调整值;
所述非周期线程的优先级的权重参数为截止期以及剩余空闲时间的权重;
跳转至S104;
S104、依据优先级选择处于就绪状态的线程切换进入运行状态;
S105、采集获取进入运行状态的线程的优先级的权重参数并存储。
6.如权利要求5所述的线程调度方法,其特征在于,所述周期线程为周期硬实时线程时,所述线程的周期、截止期以及剩余空闲时间的权重分别为:
其中t为当前时间;其中表示所述周期硬实时线程的开始执行时间,eZH表示所述周期硬实时线程的执行时间,表示所述周期硬实时线程被抢占之后等待的时间;线程的周期、截止期以及剩余空闲时间均为所述周期硬实时线程的已知的属性参数;
所述周期线程为周期软实时线程时,所述线程的周期、截止期以及剩余空闲时间的权重分别为:
其中表示所述周期软实时线程的开始执行时间,eZS表示所述周期软实时线程的执行时间,表示所述周期软实时线程被抢占之后等待的时间;线程的周期、截止期以及剩余空闲时间均为所述周期软实时线程的已知的属性参数。
7.如权利要求5所述的线程调度方法,其特征在于,针对所述非周期线程,所述预先设定的优先级公式,其中当任务价值为0时,所述非周期线程的截止期以及剩余空闲时间的权重分别为:
其中t为当前时间,表示所述非周期线程的开始执行时间,ef表示所述非周期线程的执行时间,表示所述非周期线程被抢占之后等待的时间;
均为所述非周期线程的已知的属性参数。
所述非周期线程的截止期为ef/(U/sum);U为处理器利用率;sum为所述处理器中执行的软件中总线程数;
所述非周期线程的剩余空闲时间为 表示所述非周期线程的到达时间;t为当前时间;表示剩余执行时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810294958.4A CN108563494B (zh) | 2018-04-04 | 2018-04-04 | 一种自适应动态调整的线程调度系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810294958.4A CN108563494B (zh) | 2018-04-04 | 2018-04-04 | 一种自适应动态调整的线程调度系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108563494A true CN108563494A (zh) | 2018-09-21 |
CN108563494B CN108563494B (zh) | 2021-09-21 |
Family
ID=63534009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810294958.4A Active CN108563494B (zh) | 2018-04-04 | 2018-04-04 | 一种自适应动态调整的线程调度系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108563494B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112395064A (zh) * | 2020-11-18 | 2021-02-23 | 中国联合网络通信集团有限公司 | 一种线程调度方法及装置 |
CN112445591A (zh) * | 2020-11-03 | 2021-03-05 | 北京电子工程总体研究所 | 一种面向复杂任务集的任务调度系统及方法 |
CN115858132A (zh) * | 2023-02-28 | 2023-03-28 | 北京智芯微电子科技有限公司 | 线程调度方法、装置、芯片、电子设备及存储介质 |
CN117492958A (zh) * | 2023-11-14 | 2024-02-02 | 北京智芯微电子科技有限公司 | 线程信息调整方法、装置和电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499019A (zh) * | 2009-03-24 | 2009-08-05 | 武汉烽火网络有限责任公司 | 电信级以太网系统及用于该系统的实时任务调度方法 |
CN101807159A (zh) * | 2010-03-18 | 2010-08-18 | 西北工业大学 | 一种自适应任务调度方法 |
CN101887383A (zh) * | 2010-06-30 | 2010-11-17 | 中山大学 | 一种进程实时调度方法 |
CN103870327A (zh) * | 2012-12-18 | 2014-06-18 | 华为技术有限公司 | 一种实时多任务调度方法和装置 |
CN104142855A (zh) * | 2013-05-10 | 2014-11-12 | 中国电信股份有限公司 | 任务的动态调度方法与装置 |
US20150074674A1 (en) * | 2013-09-12 | 2015-03-12 | Electronics And Telecommunications Research Institute | Apparatus and method for adjusting priorities of tasks |
CN104536835A (zh) * | 2014-12-12 | 2015-04-22 | 北京控制工程研究所 | 一种热备份实时控制系统中自适应任务调度方法 |
CN104731649A (zh) * | 2015-04-21 | 2015-06-24 | 中国建设银行股份有限公司 | 一种多任务处理方法及装置 |
CN104991816A (zh) * | 2015-06-25 | 2015-10-21 | 浪潮(北京)电子信息产业有限公司 | 一种进程调度方法及装置 |
CN107729130A (zh) * | 2017-09-20 | 2018-02-23 | 昆明理工大学 | 一种基于信息物理系统的时间点不确定任务动态调度方法 |
-
2018
- 2018-04-04 CN CN201810294958.4A patent/CN108563494B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499019A (zh) * | 2009-03-24 | 2009-08-05 | 武汉烽火网络有限责任公司 | 电信级以太网系统及用于该系统的实时任务调度方法 |
CN101807159A (zh) * | 2010-03-18 | 2010-08-18 | 西北工业大学 | 一种自适应任务调度方法 |
CN101887383A (zh) * | 2010-06-30 | 2010-11-17 | 中山大学 | 一种进程实时调度方法 |
CN103870327A (zh) * | 2012-12-18 | 2014-06-18 | 华为技术有限公司 | 一种实时多任务调度方法和装置 |
CN104142855A (zh) * | 2013-05-10 | 2014-11-12 | 中国电信股份有限公司 | 任务的动态调度方法与装置 |
US20150074674A1 (en) * | 2013-09-12 | 2015-03-12 | Electronics And Telecommunications Research Institute | Apparatus and method for adjusting priorities of tasks |
CN104536835A (zh) * | 2014-12-12 | 2015-04-22 | 北京控制工程研究所 | 一种热备份实时控制系统中自适应任务调度方法 |
CN104731649A (zh) * | 2015-04-21 | 2015-06-24 | 中国建设银行股份有限公司 | 一种多任务处理方法及装置 |
CN104991816A (zh) * | 2015-06-25 | 2015-10-21 | 浪潮(北京)电子信息产业有限公司 | 一种进程调度方法及装置 |
CN107729130A (zh) * | 2017-09-20 | 2018-02-23 | 昆明理工大学 | 一种基于信息物理系统的时间点不确定任务动态调度方法 |
Non-Patent Citations (4)
Title |
---|
ISMAEL RIPOLL等: "An Optimal Algorithm for Scheduling Soft Aperiodic Tasks in Dynamic-Priority Preemptive Systems", 《IEEE TRANSACTIONS ON SOFTWARE ENGINEERING》 * |
张阳等: "基于时限单调算法的混合任务实时调度算法的研究与设计", 《山东科学》 * |
涂刚等: "基于动态优先级策略的最优软非周期任务调度算法", 《计算机研究与发展》 * |
谢拴勤等: "基于RMS调度周期、非周期混合任务集的一种新方法", 《计算机应用研究》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445591A (zh) * | 2020-11-03 | 2021-03-05 | 北京电子工程总体研究所 | 一种面向复杂任务集的任务调度系统及方法 |
CN112395064A (zh) * | 2020-11-18 | 2021-02-23 | 中国联合网络通信集团有限公司 | 一种线程调度方法及装置 |
CN115858132A (zh) * | 2023-02-28 | 2023-03-28 | 北京智芯微电子科技有限公司 | 线程调度方法、装置、芯片、电子设备及存储介质 |
CN117492958A (zh) * | 2023-11-14 | 2024-02-02 | 北京智芯微电子科技有限公司 | 线程信息调整方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108563494B (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101339521B (zh) | 一种任务优先级动态调度算法 | |
CN108563494A (zh) | 一种自适应动态调整的线程调度系统及方法 | |
CN103324525B (zh) | 一种云计算环境下的任务调度方法 | |
CN104536827B (zh) | 一种数据调度方法和装置 | |
CN100485625C (zh) | 一种实时系统任务调度方法 | |
CN105204938B (zh) | 一种内存访问的数据密集型进程调度方法 | |
CN104536835B (zh) | 一种热备份实时控制系统中自适应任务调度方法 | |
CN101923487A (zh) | 一种综合嵌入式实时周期任务调度方法 | |
CN102043667A (zh) | 一种嵌入式操作系统的任务调度方法 | |
CN104021044A (zh) | 一种作业调度方法及装置 | |
CN103491174A (zh) | 基于延迟服务器的周期/非周期混合实时任务调度方法 | |
WO2008021435A1 (en) | A multi-thread processor with multiple program counters | |
CN109324891A (zh) | 一种比例空闲时间分配的周期任务低功耗调度方法 | |
CN106445659B (zh) | 一种空间飞行器周期性混成随机任务调度方法 | |
CN109324880A (zh) | 一种适用于实时系统周期任务模型的低功耗调度方法 | |
CN103365711A (zh) | 应用于物联网业务平台的任务调度机制和方法 | |
CN107391244A (zh) | 一种基于混合调度模型的物联网操作系统调度方法 | |
El Ghor et al. | Energy efficient scheduler of aperiodic jobs for real-time embedded systems | |
CN100508501C (zh) | 基于开放网格服务体系结构的网格工作流虚拟服务调度法 | |
Dahal et al. | Scheduling in multiprocessor system using genetic algorithms | |
CN105706022B (zh) | 一种预测处理器利用率的方法、处理装置和终端设备 | |
Li | Approximation algorithms for variable voltage processors: Min energy, max throughput and online heuristics | |
CN108304257A (zh) | 基于延迟服务器的强实时混合任务调度方法 | |
Yi et al. | Combinational backfilling for parallel job scheduling | |
Brinkschulte et al. | A scheduling technique providing a strict isolation of real-time threads |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |