一种自适应动态调整的线程调度系统及方法技术方案

技术编号:19008993 阅读:155 留言:0更新日期:2018-09-22 08:53
本发明专利技术公开了一种自适应动态调整的线程调度系统及方法,能够解决地面测试设备任务调度中高优先级任务持续抢占以及短周期任务易被错失的问题。本发明专利技术的技术方案为:采用预处理模块将处于就绪状态的线程分成周期线程和非周期线程。采用优先级计算模块针对周期线程和非周期线程采用预先设定的优先级公式分别计算优先级以及优先级的权重参数。采用调度模块依据优先级选择处于就绪状态的线程切换进入运行状态。采用状态采集模块采集获取进入运行状态的线程的优先级的权重参数。采用调度状态存储模块存储采集获取的进入运行状态的线程的优先级的权重参数。

An adaptive dynamic adjustment thread scheduling system and method

The invention discloses an adaptive dynamic adjustment thread scheduling system and method, which can solve the problems of continuous preemption of high priority tasks and easy miss of short period tasks in task scheduling of ground test equipment. The technical scheme of the invention is that the threads in ready state are divided into periodic threads and aperiodic threads by adopting a preprocessing module. Priority calculation module is used to calculate priority and priority weight parameters for periodic and aperiodic threads respectively by preset priority formula. The scheduling module is selected according to priority to switch the thread in the ready state into the running state. The state acquisition module is used to collect the weight parameters of the priority thread to get into the running state. Scheduled state memory module is used to store the priority weight parameters of the thread which is in running state.

【技术实现步骤摘要】
一种自适应动态调整的线程调度系统及方法
本专利技术涉及嵌入式软件

技术介绍
在航天测控系统中,地面测试设备负责对应答机进行全方位、多场景的地面测试验证,对于地面测试设备来说,人机交互功能是其重要的功能。嵌入式软件完成人机交互功能的实现,是地面测试设备的主要控制软件。在测控地面测试设备中,嵌入式软件的任务调度算法和数据传输机制是影响软件性能的重要因素。对嵌入式软件中任务进行分析,现有的低优先级的非周期任务、周期软实时任务平均响应时间过长,主要表现在:(1)在存在多种优先级同时就绪的情况下,高优先级任务的持续抢占,使得其他低优先级的任务长期得不到执行。(2)在基于优先级的时间片轮转调度,调度机制没有全方面考虑任务在任意时刻的状态特性,如处理器处理多个线程时,规定每个线程执行1毫秒后切换到另一个线程,对于即将结束的线程,依然要等待处理器将其他线程每个执行1毫秒后才能进行,这就增长了整体执行的时间,效率较低。由于执行周期长的线程获得较大的时间片分配,对于测控地面测试设备中需要快速反应的任务、剩余时间相对较短的任务,任务被错失的概率较大。实时调度可以分为三类:优先级驱动、共享驱动、定时驱动三类。目前,国内外对地面测试设备的多线程任务调度的研究主要集中在两个方面:(1)对于周期任务的静态调度算法,根据任务执行周期的长短进行优先级分配。执行周期越长,优先级越低;执行周期越短,优先级越高。(2)对于周期任务的动态优先级调度算法,根据到达任务的截止期,动态计算其优先级大小。到达任务的截止期越短则其越紧急,对应优先级应越高。从大型机系统到嵌入式系统,现在主流地面测试设备的操作系统都是属于优先级驱动的调度,且针对任务调度进行的优化也是基于优先级进行,故在此主要对优先级驱动的调度方法进行研究。地面测试设备的任务调度算法有以周期任务为模型的单调速率调度算法(RM)和最早截止期调度算法(EDF)以及DM、LSF算法等。在2014年第63期《IEEETransactionsonComputers》第1309页到1315页M.Park发表的论文“AnEfficientTestMethodforRateMonotonicSchedulability”针对RM算法的可调度性提出一种基于反馈时间分析的有效测试方法,优化后较原始公式更接近真实测试结果。在2014年第63期《IEEETransactionsonComputers》1197页至1206页由J.Lee和K.G.Shin发表的“PreemptaJoborNotinEDFSchedulingofUniprocessorSystems”中,对EDF的抢占时延性能进行了分析,提出基于EDF的分包调度策略,但对其调度方式的评估方法仍有待提高。相对而言,对最早截止期优先调度算法和最小空闲时间优先调度算法的研究路线更为合理可行。在2015年A.Brun等在《IEEEEmbeddedSystemsLetters》第7期第89页到91页发表的论文“ANoteontheEDFPreemptionBehaviorin“RateMonotonicVersusEDF:JudgmentDay””中针对多优先级抢先的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时,非周期线程的优先级为在线程的初始优先级的基础上,增加由截止期以及剩余空闲本文档来自技高网
...
一种自适应动态调整的线程调度系统及方法

【技术保护点】
1.一种自适应动态调整的线程调度系统,其特征在于,针对处理器中执行的软件,采用所述系统对软件中的线程进行调度,所述系统包括:预处理模块,配置用于将处于就绪状态的线程分成周期线程和非周期线程;优先级计算模块,配置用于针对所述周期线程和非周期线程采用预先设定的优先级公式分别计算优先级以及优先级的权重参数;调度模块,配置用于依据优先级选择处于就绪状态的线程切换进入运行状态;状态采集模块,配置用于采集获取进入运行状态的线程的优先级的权重参数;调度状态存储模块,配置用于存储采集获取的进入运行状态的线程的优先级的权重参数。

【技术特征摘要】
1.一种自适应动态调整的线程调度系统,其特征在于,针对处理器中执行的软件,采用所述系统对软件中的线程进行调度,所述系统包括:预处理模块,配置用于将处于就绪状态的线程分成周期线程和非周期线程;优先级计算模块,配置用于针对所述周期线程和非周期线程采用预先设定的优先级公式分别计算优先级以及优先级的权重参数;调度模块,配置用于依据优先级选择处于就绪状态的线程切换进入运行状态;状态采集模块,配置用于采集获取进入运行状态的线程的优先级的权重参数;调度状态存储模块,配置用于存储采集获取的进入运行状态的线程的优先级的权重参数。2.如权利要求1所述的系统,其特征在于,所述优先级计算模块,还配置用于:针对所述周期线程,所述预先设定优先级公式为:所述周期线程的优先级为在线程的初始优先级的基础上,增加由线程的周期、截止期以及剩余空闲时间依权重计算的周期线程优先级调整值;所述周期线程的优先级的权重参数即为线程的周期、截止期以及剩余空闲时间的权重;针对所述非周期线程,所述预先设定的优先级公式为:当任务价值为1时,所述非周期线程的优先级设置为比当前处于运行状态的线程高一级;所述非周期线程的优先级的权重参数为0;当任务价值为0时,所述非周期线程的优先级为在线程的初始优先级的基础上,增加由截止期以及剩余空闲时间依权重计算的非周期线程优先级调整值;所述非周期线程的优先级的权重参数为截止期以及剩余空闲时间的权重。3.如权利要求2所述的系统,其特征在于,所述周期线程为周期硬实时线程时,所述线程的周期、截止期以及剩余空闲时间的权重分别为:其中t为当前时间;其中表示所述周期硬实时线程的开始执行时间,eZH表示所述周期硬实时线程的执行时间,表示所述周期硬实时线程被抢占之后等待的时间;线程的周期、截止期以及剩余空闲时间均为所述周期硬实时线程的已知的属性参数;所述周期线程为周期软实时线程时,所述线程的周期、截止期以及剩余空闲时间的权重分别为:其中表示所述周期软实时线程的开始执行时间,eZS表示所述周期软实时线程的执行时间,表示所述周期软实时线程被抢占之后等待的时间;线程的周期、截止期以及剩余空闲时间均为所述周期软实时线程的已知的属性参数。4.如权利要求2所述的系统,其特征在于,针对所述非周期线程,所述预先设定的优先级公式,其中当任务价值为0时,所述非周期线程的截止期以及剩余空闲时间的权重分别为:其中t为当前时间,表示所述非周期线程的开始执行时间,ef表示所述非周期线程的执行时间,表示所述非周期线程被抢占之后等待的时间;均为所述非周期线程的已知的属性参数。所述非周期线程的截止期为ef/(U/sum);U为处理器利用率;sum为所述处理器中执行的软件中总...

【专利技术属性】
技术研发人员:朱洪恩
申请(专利权)人:吉林省星途科技有限公司
类型:发明
国别省市:吉林,22

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1