CN114911591A - 任务调度方法及系统 - Google Patents
任务调度方法及系统 Download PDFInfo
- Publication number
- CN114911591A CN114911591A CN202210442801.8A CN202210442801A CN114911591A CN 114911591 A CN114911591 A CN 114911591A CN 202210442801 A CN202210442801 A CN 202210442801A CN 114911591 A CN114911591 A CN 114911591A
- Authority
- CN
- China
- Prior art keywords
- task
- priority
- time
- new
- 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.)
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
本发明实施例提供一种任务调度方法及系统,属于任务调度技术领域。所述方法包括:获取所有任务的任务参数,所述任务包括正在执行任务、新任务和排队任务;根据所有任务的任务参数进行多级抢占资源判断;其中,所述多级抢占资源判断至少包括优先级判断和执行时间判断;当优先级判断结果和执行时间判断结果均为可执行抢占资源时,执行当前新任务对正在执行任务的计算资源抢占;当优先级判断结果或执行时间判断结果为不可执行抢占资源时,拒绝执行计算资源抢占,并基于新任务的优先级进行新任务的缓冲队列排序。本发明方案有效降低了系统中任务的切换频率,满足了配电终端设备的内核系统对实时性的高要求。
Description
技术领域
本发明涉及任务调度技术领域,具体地涉及一种任务调度方法及一种任务调度系统。
背景技术
实时调度器总是调度就绪队列中优先级最高的那个进程。在任务执行过程中,可能有更高优先级的任务到达就绪队列。此时,调度策略的选择可分为抢占式调度和非抢占式调度。采用非抢占式调度算法,当就绪队列中某进程的最高优先级高于正在处理器中运行的进程的最高优先级时,并不会让正在运行的进程退出处理器,而是将高优先级的排在就绪队列的首部。这种调度策略主要用于批处理系统中,也可用于某些对实时性要求不严的系统中。而采用抢占式最高优先级进程调度算法,则高优先级的进程会抢占处理器资源,让正在运行的进程处于就绪队列队首。这种抢占式的调度算法能更好地满足紧迫作业的要求,故而常用于要求比较严格的实时系统中。
但是,对性能要求而言,上述两种方案均无法完美实现任务调度,均存在一定的弊端。首先,抢占式的任务调度虽然能够在很大程度上避免高优先级的任务超时,同时降低所有任务的平均响应时间,使得系统的可预测性得到提高,但同时也会导致系统中任务切换次数大大增加,降低了调度的实时性,且不利于节能。而非抢占式调度虽然能够减少任务切换次数,一定程度上提高了调度的实时性,但由于高优先级的任务不能够得到及时的处理,常常会造成系统的阻塞。基于此,需要创造一种新的任务调度方法,以解决上述两种现有任务调度方法存在的问题。
发明内容
本发明实施方式的目的是提供一种任务调度方法及一种任务调度系统,以至少解决现有任务调度方法无法兼顾实时性和系统稳定运行性的问题。
为了实现上述目的,本发明第一方面提供一种任务调度方法,所述方法包括:获取所有任务的任务参数,所述任务包括正在执行任务、新任务和排队任务;根据所有任务的任务参数进行多级抢占资源判断;其中,所述多级抢占资源判断至少包括优先级判断和执行时间判断;当优先级判断结果和执行时间判断结果均为可执行抢占资源时,执行当前新任务对正在执行任务的计算资源抢占;其中,所述计算资源抢占为:停止正在执行任务的进程,开始执行所述新任务;当优先级判断结果或执行时间判断结果为不可执行抢占资源时,拒绝执行计算资源抢占,并基于新任务的优先级进行新任务的缓冲队列排序。
可选的,所述任务参数为预设六元组;所述预设六元组包括:任务的到达时间、任务的截止时间、任务的最坏执行时间、任务的剩余执行时间、任务完整执行一次的周期、任务优先级。
可选的,所述优先级判断包括:对比正在执行任务的优先级和新任务的优先级;若新任务的优先级大于正在执行任务的优先级,则优先级判断结果为可执行抢占资源;反之,则优先级判断结果为不可执行抢占资源。
可选的,所述执行时间判断包括:根据所有任务的任务参数计算正在执行任务的保护时间;对比正在执行任务的剩余执行时间和正在执行任务的保护时间;若正在执行任务的剩余执行时间大于正在执行任务的保护时间,则执行时间判断结果为可执行抢占资源;反之,则执行时间判断结果为不可执行抢占资源。
可选的,所述根据所有任务的任务参数计算正在执行任务的保护时间,包括:根据所有任务的优先级进行除新任务之外的其余任务的优先级排序,将排序后的任务作为次级任务集;其中,所述次级任务集中优先级最高的任务为正在执行任务;根据次级任务集中各任务的任务参数计算次级任务集的可缓冲时间;基于预设时间模型和所述可缓冲时间获得正在执行任务的保护时间。
可选的,所述根据次级任务集中各任务的任务参数计算次级任务集的可缓冲时间,包括:获取次级任务集中各任务的任务参数;根据预设可缓冲时间计算模型和所有任务的任务参数,计算获得次级任务集的可缓冲时间。
可选的,所述预设可缓冲时间计算模型为:
其中,m∈M为次级任务集中第m个任务;B为次级任务集的可缓冲时间;Tm为第m个任务的完整执行一次的周期;Dm为第m个任务的截止时间;Wm为第m个任务的最坏执行时间。
可选的,所述预设时间模型为:
Qm=MAX(B1,B2,…,Bm)
其中,Qm为正在执行任务的保护时间。
可选的,所述基于新任务的优先级进行新任务的缓冲队列排序,包括:对比新任务的优先级和所有排队任务的优先级,将新任务排序到相邻上一优先级的任务之后。
可选的,所述方法还包括:若优先级判断结果为可执行抢占资源,但执行时间判断结果为不可执行抢占资源,则将新任务排序到任务队列最前端,以在完成正在执行任务后立即执行该被排序的新任务。
可选的,所述方法还包括:若同时存在多个新任务,则先进行多个新任务的优先级排序,筛选出排序后优先级最高的新任务,并对该新任务执行多级抢占资源判断,序列中的其余新任务再次进行优先级排序后排序到任务队列中。
本发明第二方面提供一种任务调度系统,所述系统包括:采集单元,用于获取所有任务的任务参数,所述任务包括正在执行任务、新任务和排队任务;处理单元,用于根据所有任务的任务参数进行多级抢占资源判断;其中,所述多级抢占资源判断至少包括优先级判断和执行时间判断;执行单元,用于当优先级判断结果和执行时间判断结果均为可执行抢占资源时,执行当前新任务对正在执行任务的计算资源抢占;其中,所述计算资源抢占为:停止正在执行任务的进程,开始执行所述新任务;排序单元,用于当优先级判断结果或执行时间判断结果为不可执行抢占资源时,拒绝执行计算资源抢占,并基于新任务的优先级进行新任务的缓冲队列排序。
可选的,所述任务参数为预设六元组;所述预设六元组包括:任务的到达时间、任务的截止时间、任务的最坏执行时间、任务的剩余执行时间、任务完整执行一次的周期、任务优先级。
可选的,所述处理单元还用于:根据所有任务的任务参数计算正在执行任务的保护时间;对比正在执行任务的剩余执行时间和正在执行任务的保护时间;若正在执行任务的剩余执行时间大于正在执行任务的保护时间,则执行时间判断结果为可执行抢占资源;反之,则执行时间判断结果为不可执行抢占资源。
可选的,所述基于新任务的优先级进行新任务的缓冲队列排序,包括:对比新任务的优先级和所有排队任务的优先级,将新任务排序到相邻上一优先级的任务之后。
可选的,所述排序单元还用于:若优先级判断结果为可执行抢占资源,但执行时间判断结果为不可执行抢占资源,则将新任务排序到任务队列最前端,以在完成正在执行任务后立即执行该被排序的新任务。
可选的,所述排序单元还用于:若同时存在多个新任务,则先进行多个新任务的优先级排序,筛选出排序后优先级最高的新任务,并对该新任务执行多级抢占资源判断,序列中的其余新任务再次进行优先级排序后排序到任务队列中。
另一方面,本发明提供一种计算机可读储存介质,该计算机可读存储介质上储存有指令,其在计算机上运行时使得计算机执行上述的任务调度方法。
通过上述技术方案,本发明方案包含了抢占式调度策略的高实时性,又包含了非抢占式调度策略的部分优势,在有任务到达时,若其优先级高于当前正在执行的任务,则对当前正在执行的任务进行判断,算出当前任务的剩余执行时间和系统的可缓冲时间,如果当前任务的剩余执行时间髙于可缓冲时间,则不允许任何后续到达任务对其进行抢占,直到其执行完成,反之,则对其进行抢占。这样既能够尽可能的保证高优先级任务在其截止前完成,同时也有效降低了系统中任务的切换频率,满足了配电终端设备的内核系统对实时性的高要求。
本发明实施方式的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施方式的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施方式,但并不构成对本发明实施方式的限制。在附图中:
图1是本发明一种实施方式提供的任务调度方法的步骤流程图;
图2是本发明一种实施方式提供的抢占资源判断步骤流程图;
图3是本发明一种实施方式提供的计算保护时间的步骤流程图;
图4是本发明一种实施方式提供的任务调度系统的系统结构图;
图5是本发明一种实施方式提供的实施例实现过程的流程图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
实时性调度技术是加强智能终端设备的系统内核的实时处理能力的基础技术,基于对任务本身的特性对任务队列进行调整,例如,周期性任务,非周期性任务,硬实时任务,软实时任务。采用多个调度器实现非实时任务调度附属与实时任务调度,这种混合任务调度算法满足了实时任务的时间限制,支撑了终端设备的实时任务调度。任务调度算法一般是基于优先级关系的。如果调度过程中优先级不变则任务调度算法是静态的,否则为动态调度。在实时系统中的每个实时任务都有一个确定的优先级,可以代表任务的重要程度和紧迫程度。任务集中所有任务的优先级决定了调度算法调度任务顺序的先后。
实时调度器总是调度就绪队列中优先级最高的那个进程。在任务执行过程中,可能有更高优先级的任务到达就绪队列。此时,调度策略的选择可分为抢占式调度和非抢占式调度。采用非抢占式调度算法,当就绪队列中某进程的最高优先级高于正在处理器中运行的进程的最高优先级时,并不会让正在运行的进程退出处理器,而是将高优先级的排在就绪队列的首部。这种调度策略主要用于批处理系统中;也可用于某些对实时性要求不严的系统中。而采用抢占式最高优先级进程调度算法,则高优先级的进程会抢占处理器资源,让正在运行的进程处于就绪队列队首。这种抢占式的调度算法能更好地满足紧迫作业的要求,故而常用于要求比较严格的实时系统中,以及对性能要求较高的批处理和分时系统中。
上述两种方案均无法完美实现任务调度,均存在一定的弊端。首先,抢占式的任务调度虽然能够在很大程度上避免高优先级的任务超时,同时降低所有任务的平均响应时间,使得系统的可预测性得到提高,但同时也会导致系统中任务切换次数大大增加,降低了调度的实时性,且不利于节能。然后,非抢占式调度虽然能够减少任务切换次数,一定程度上提高了调度的实时性,但由于高优先级的任务不能够得到及时的处理,常常会造成系统的阻塞。本专利综合以上两种任务调度方案,并对其进行改进,提出了一种基于优先级的改进型抢占式调度方法。
正是因为当前已有的任务调度方法需要有频繁的任务切换,使得难免会造成非常严重的系统抖动,因而不能满足智能配电终端的系统内核对于实时性的高要求。本发明方案就是基于该问题,提出了一种基于优先级的改进的任务调度方法,所述改进的实时任务调度算法包含了抢占式调度策略的高实时性,又包含了非抢占式调度策略的部分优势,在有任务到达时,若其优先级高于当前正在执行的任务,则对当前正在执行的任务进行判断,算出当前任务的剩余执行时间和系统的可缓冲时间,如果当前任务的剩余执行时间髙于可缓冲时间,则不允许任何后续到达任务对其进行抢占,直到其执行完成,反之,则对其进行抢占。这样既能够尽可能的保证高优先级任务在其截止前完成,同时也有效降低了系统中任务的切换频率,满足了配电终端设备的内核系统对实时性的高要求。
图4是本发明一种实施方式提供的任务调度系统的系统结构图。如图4所示,本发明实施方式提供一种任务调度系统,所述系统包括:采集单元,用于获取所有任务的任务参数,所述任务包括正在执行任务、新任务和排队任务;处理单元,用于根据所有任务的任务参数进行多级抢占资源判断;其中,所述多级抢占资源判断至少包括优先级判断和执行时间判断;执行单元,用于当优先级判断结果和执行时间判断结果均为可执行抢占资源时,执行当前新任务对正在执行任务的计算资源抢占;其中,所述计算资源抢占为:停止正在执行任务的进程,开始执行所述新任务;排序单元,用于当优先级判断结果或执行时间判断结果为不可执行抢占资源时,拒绝执行计算资源抢占,并基于新任务的优先级进行新任务的缓冲队列排序。
优选的,所述处理单元还用于:根据所有任务的任务参数计算正在执行任务的保护时间;对比正在执行任务的剩余执行时间和正在执行任务的保护时间;若正在执行任务的剩余执行时间大于正在执行任务的保护时间,则执行时间判断结果为可执行抢占资源;反之,则执行时间判断结果为不可执行抢占资源。
图1是本发明一种实施方式提供的任务调度方法的方法流程图。如图1所示,本发明实施方式提供一种任务调度方法,所述方法包括:
步骤S10:获取所有任务的任务参数。
具体的,上述已知,本发明方案是结合了任务调度方法和非任务调度方法,所以,当存在新任务时,需要通过比对新任务和易建任务之间的关系来确定新任务的执行时间,即确定对应的任务调度方法。基本规则还是满足用户需求,即优先级更高的任务优先执行,本发明方案解决的技术问题是,优先级更高的任务的执行节点,是直接抢占还是延后抢占。想要避免较大的系统震荡,又想优先执行优先级更高的任务,就需要在这两个相悖的参考项进行取舍,所以总的来说,便是需要衡量这两个参考项哪一种对系统的有益效果更大。例如,造成系统震荡降低的用户使用体验度小于因为处理延时降低的用户使用体验,则宁愿牺牲一定的系统震荡,也要立即执行优先级更高的任务,在这种情况下便进行任务调度方法,反之则完成当前任务执行后再执行优先级更高的任务。
为了便于优先级判断,对应的任务参数肯定需要包括对应任务的优先级。本发明方案综合了抢占式调度和非抢占式调度的特点,建立了可缓冲时间模型和时间保护模型,进而提出一种改进的实时任务抢占式调度方法。所以,为了便于后续可缓冲时间计算和保护时间计算,任务参数还需要包括对应的任务执行时间参数。基于此,优选的,本发明方案提出的任务参数为预设六元组。所述预设六元组包括:任务的到达时间、任务的截止时间、任务的最坏执行时间、任务的剩余执行时间、任务完整执行一次的周期、任务优先级。任务的最坏执行时间为对应任务允许的最大延时,即不能将某任务进行无限延时,即使其优先级很低,但随着时间越靠近所述最坏执行时间,对应任务的优先级逐步提升,保证所有任务都能在最坏执行时间之前开始执行。
步骤S20:根据所有任务的任务参数进行多级抢占资源判断。
具体的,本发明方案是解决当新建任务的优先级大于正在执行任务的优先级时,该新建任务是直接占用正在执行任务的计算资源,还是待正在执行任务执行未完成后再进行新建任务执行。所以,进行后续抢占时间判断之前,还需要进行优先级判断,即判断新任务的优先级是否大于正在执行任务的优先级。若新任务的优先级本就小于正在执行任务的优先级,在于常规排队机制一样,将新任务按照优先级排序放到排序队列中便可。所以,所述多级抢占资源判断至少包括优先级判断和执行时间判断。
步骤S201:进行优先级判断。
具体的,如图2所示,该步骤便是判断新任务的优先级是否大于正在执行任务的优先级,为本方案的初步判断,也是基础判断,若该步骤判断新任务的优先级小于正在执行任务的优先级,则方案直接按照常规任务执行方案进行,不进行任务抢占判断。
步骤S202:进行执行时间判断。
具体的,当步骤S201中判断新任务的优先级大于正在执行任务的优先级时,便需要进行执行时间判断。具体的抢占规则举例解释为:
三个任务t1、t2和t3,它们的优先级从低到高以此为t1,t2,t3,任务t1于时刻0首先到达并开始执行,任务t2于时刻1到达,此时t1的剩余执行时间大于可缓冲时间最大值,由于t2的优先级高于t1,所以t1运行被中断,抢占后开始运行,t3于3时刻到达,此时由于t2的剩余执行时间小于可缓冲时间最大值,虽然t3的优先级大于t2,但不允许其进行抢占,当t2运行完毕后,等待队列中同时存在t1和t3,由于t3优先级高于t1,先运行t3,待其运行完成后再运行,此时任务切换了3次,且只有任务优先级最低的等待时间较长。因此这种方法能够在优先处理当前任务的同时,尽可能降低任务切换次数的基础上更大程度地确保高优先级任务得到及时的运行,不会超时。
通过上述举例,可以很直观的知道,判断是否需要立即抢占执行资源,是判断当前任务的剩余时间与其计算保护时间之间的关系,如果剩余时间大于保护时间,则执行高优先级任务;若剩余时间小于等于保护时间,则继续执行正在执行任务,待正在执行任务完成后再执行新任务。
为了满足上述需求,本发明方案综合了抢占式调度和非抢占式调度的特点,建立了可缓冲时间模型和时间保护模型,进而提出一种改进的实时任务抢占式调度方法。首先将所有任务按优先级从低到高排列,由此得到一串有序的任务,假设有1≤p<q≤x,则第p个任务tp的优先级pp小于第q个任务tp的优先级pp。为了保证所有任务都有足够运行一次的时间,取能够允许所有任务至少运行一次的最短时间为阶段性总周期TA,假设对于任务ti,Di=Ti,某一个任务ti自身的周期记为Ti。因此,在一个阶段性总周期内TA,任务ti能够运行完成TA/Ti次,且前y个任务能够至少完整运行一次的周期为:
T1+T2+T3+......+Ty(1≤y≤x)
如图3,步骤S2021:计算可缓冲时间。
具体的,本发明方案设计,在一个阶段性总周期TA内,某个任务真正的完成时间和原定的截止时间之间差的绝对值即是可缓冲时间。因此,所有任务全部完成的总时长一定不小于这个任务集的阶段性总周期TA。而在一个阶段性总周期TA中,所有任务都能被执行完成所需要的总时间被称为该阶段的任务完全执行时间。首先判断每个任务的优先级,再根据所得结果将所有任务的顺序重新排序,前n个任务组成的新的次级任务集定义为tn,即前m(1≤m≤x)个任务组成一个新的次级任务集,记为则的可缓冲时间Bm。其中,当新任务派发之前,因为所有任务的执行规则是根据优先级从大到小执行的,所以正在执行任务必定是新任务派发之前所有任务中优先级最高的,所以完成任务优先级从小到大排序后,该第m个任务必定是正在执行任务,之前所有任务的优先级均小于正在执行任务的优先级。该m的数值便等于原始排队任务的数量加1。根据上述的设计规则,确定可缓冲时间的计算规则为:
其中,m∈M为次级任务集中第m个任务;Bm为次级任务集的可缓冲时间;Tm为第m个任务的完整执行一次的周期;Dm为第m个任务的截止时间;Wm为第m个任务的最坏执行时间。
步骤S2022:计算保护时间。
具体的,基于上述的可缓冲时间计算模型,提出预设时间模型,该预设时间模型为提取出运行正在执行任务继续执行时间的最大值,该执行时间最大值便为正在执行任务的保护时间,其模型规则为:
Qm=MAX(B1,B2,…,Bm)
基于上述规则提取出正在执行任务的保护时间。
步骤S203:进行抢占资源是否可执行判断。
具体的,计算获得正在执行任务的保护时间后,便直接提取该正在执行任务的剩余执行时间,然后对比正在执行任务的剩余执行时间和所述保护时间。当正在执行任务的剩余执行时间大于保护时间,则表示正在执行时间还需要工作的时间无法被满足,为了避免更高优先级任务的进一步时延,牺牲一定的系统震荡,直接执行新任务,而将正在执行任务重新放回到排队序列中。若正在执行任务的剩余执行时间小于等于所述保护时间,则表示在用户可接受范围内,可以将正在执行任务执行完毕,为了避免系统震荡,且以满足用户需求为最基准条件,待正在执行任务完成后再执行新任务。至此,完成一次新任务调度。
步骤S30:当优先级判断结果和执行时间判断结果均为可执行抢占资源时,执行当前新任务对正在执行任务的计算资源抢占;当优先级判断结果或执行时间判断结果为不可执行抢占资源时,拒绝执行计算资源抢占,并基于新任务的优先级进行新任务的缓冲队列排序。
在本发明实施例中,本发明方案提出了改进后抢占式调度中的任务切换方法,以此进行任务切换,这种方法能够在优先处理当前任务的同时,尽可能降低任务切换次数的基础上更大程度地确保高优先级任务得到及时的运行,不会超时。且本发明方案的优先级调度策略即包含了抢占式任务调度策略的高实时性,又包含了非抢占式调度策略的部分优势,一定程度上减少了“颠簸”现象的产生,可以在一定程度上提高系统内资源的利用率,较好地提高系统的稳定性。
优选的,若所述优先级判断结果判定为可执行抢占资源,但所述执行时间判断结果判定为不成立,则将所述新任务排序到队列最前端,完成正在执行任务处理后,立即处理所述新任务。
优选的,若同时存在多个新任务,则先进行多个新任务优先级排序,筛选出其中优先级最高的新任务执行抢占资源判断,其余新任务基于优先级排序后放置到排队序列中。
在一种可能的实施方式中,如图5所示:
步骤1:当任务集中的第一个任务运行,若有新任务达到,比较当前任务和新到达任务的优先级大小,若当前任务优先级低,转到步骤3;如果当前任务优先级高,则转到步骤2;
步骤2:继续执行当前任务;
步骤3:计算当前任务剩余时间R,即在执行完成前还需要的时间;
步骤4:计算可缓冲时间B;
步骤5:计算保护时间Q;
步骤6:比较当前任务剩余时间与计算保护时间,若剩余时间R大于计算保护时间Q,则执行高优先级任务,若剩余时间R小于等于计算保护时间Q,则转到步骤2;
步骤7:若有新任务到达则转到步骤1,若无则结束调度流程。
在本发明实施例中,本发明方案能够在优先处理当前任务的同时,尽可能降低任务切换次数的基础上更大程度地确保高优先级任务得到及时的运行,不会超时。且加入了可缓冲时间和保护时间的概念,提出一种新的基于优先级的抢占式实时任务调度机制,在任务可能需要进行切换时做出判断,根据实际情况的需要保留优先级较低但不宜被暂停等待的任务,令优先级较高的任务稍作等待。本算法能够加强内核系统的性能,避免任务频繁切换产生的抖动以及其对系统性能造成的不良影响。
本发明实施方式还提供一种计算机可读储存介质,该计算机可读存储介质上储存有指令,其在计算机上运行时使得计算机执行上述的任务调度方法。
本领域技术人员可以理解实现上述实施方式的方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上结合附图详细描述了本发明的可选实施方式,但是,本发明实施方式并不限于上述实施方式中的具体细节,在本发明实施方式的技术构思范围内,可以对本发明实施方式的技术方案进行多种简单变型,这些简单变型均属于本发明实施方式的保护范围。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施方式对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施方式的思想,其同样应当视为本发明实施方式所公开的内容。
Claims (18)
1.一种任务调度方法,其特征在于,所述方法包括:
获取所有任务的任务参数,所述任务包括正在执行任务、新任务和排队任务;
根据所有任务的任务参数进行多级抢占资源判断;其中,所述多级抢占资源判断至少包括优先级判断和执行时间判断;
当优先级判断结果和执行时间判断结果均为可执行抢占资源时,执行当前新任务对正在执行任务的计算资源抢占;其中,所述计算资源抢占为:停止正在执行任务的进程,开始执行所述新任务;
当优先级判断结果或执行时间判断结果为不可执行抢占资源时,拒绝执行计算资源抢占,并基于新任务的优先级进行新任务的缓冲队列排序。
2.根据权利要求1所述的方法,其特征在于,所述任务参数为预设六元组;
所述预设六元组包括:任务的到达时间、任务的截止时间、任务的最坏执行时间、任务的剩余执行时间、任务完整执行一次的周期、任务优先级。
3.根据权利要求2所述的方法,其特征在于,所述优先级判断包括:
对比正在执行任务的优先级和新任务的优先级;
若新任务的优先级高于正在执行任务的优先级,则优先级判断结果为可执行抢占资源;反之,则优先级判断结果为不可执行抢占资源。
4.根据权利要求2所述的方法,其特征在于,当所述优先级判断结果为可执行抢占资源时,才执行所述执行时间判断;
所述执行时间判断包括:
根据所有任务的任务参数计算正在执行任务的保护时间;
对比正在执行任务的剩余执行时间和正在执行任务的保护时间;
若正在执行任务的剩余执行时间大于正在执行任务的保护时间,则执行时间判断结果为可执行抢占资源;反之,则执行时间判断结果为不可执行抢占资源。
5.根据权利要求4所述的方法,其特征在于,所述根据所有任务的任务参数计算正在执行任务的保护时间,包括:
根据所有任务的优先级进行除新任务之外的其余任务的优先级排序,将排序后的任务作为次级任务集;其中,所述次级任务集中优先级最高的任务为正在执行任务;
根据次级任务集中各任务的任务参数计算次级任务集的可缓冲时间;
基于预设时间模型和所述可缓冲时间获得正在执行任务的保护时间。
6.根据权利要求5所述的方法,其特征在于,所述根据次级任务集中各任务的任务参数计算次级任务集的可缓冲时间,包括:
获取次级任务集中各任务的任务参数;
根据预设可缓冲时间计算模型和所有任务的任务参数,计算获得次级任务集的可缓冲时间。
8.根据权利要求5所述的方法,其特征在于,所述预设时间模型为:
Qm=MAX(B1,B2,…,Bm)
其中,Qm为正在执行任务的保护时间。
9.根据权利要求1所述的方法,其特征在于,所述基于新任务的优先级进行新任务的缓冲队列排序,包括:
对比新任务的优先级和所有排队任务的优先级,将新任务排序到相邻上一优先级的任务之后。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若优先级判断结果为可执行抢占资源,但执行时间判断结果为不可执行抢占资源,则将新任务排序到任务队列最前端,以在完成正在执行任务后立即执行该被排序的新任务。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若同时存在多个新任务,则先进行多个新任务的优先级排序,筛选出排序后优先级最高的新任务,并对该新任务执行多级抢占资源判断,序列中的其余新任务再次进行优先级排序后排序到任务队列中。
12.一种任务调度系统,其特征在于,所述系统包括:
采集单元,用于获取所有任务的任务参数,所述任务包括正在执行任务、新任务和排队任务;
处理单元,用于根据所有任务的任务参数进行多级抢占资源判断;其中,所述多级抢占资源判断至少包括优先级判断和执行时间判断;
执行单元,用于当优先级判断结果和执行时间判断结果均为可执行抢占资源时,执行当前新任务对正在执行任务的计算资源抢占;其中,所述计算资源抢占为:停止正在执行任务的进程,开始执行所述新任务;
排序单元,用于当优先级判断结果或执行时间判断结果为不可执行抢占资源时,拒绝执行计算资源抢占,并基于新任务的优先级进行新任务的缓冲队列排序。
13.根据权利要求12所述的系统,其特征在于,所述任务参数为预设六元组;
所述预设六元组包括:任务的到达时间、任务的截止时间、任务的最坏执行时间、任务的剩余执行时间、任务完整执行一次的周期、任务优先级。
14.根据权利要求12所述的系统,其特征在于,所述处理单元还用于:
根据所有任务的任务参数计算正在执行任务的保护时间;
对比正在执行任务的剩余执行时间和正在执行任务的保护时间;
若正在执行任务的剩余执行时间大于正在执行任务的保护时间,则执行时间判断结果为可执行抢占资源;反之,则执行时间判断结果为不可执行抢占资源。
15.根据权利要求12所述的系统,其特征在于,所述基于新任务的优先级进行新任务的缓冲队列排序,包括:
对比新任务的优先级和所有排队任务的优先级,将新任务排序到相邻上一优先级的任务之后。
16.根据权利要求12所述的系统,其特征在于,所述排序单元还用于:
若优先级判断结果为可执行抢占资源,但执行时间判断结果为不可执行抢占资源,则将新任务排序到任务队列最前端,以在完成正在执行任务后立即执行该被排序的新任务。
17.根据权利要求12所述的系统,其特征在于,所述排序单元还用于:
若同时存在多个新任务,则先进行多个新任务的优先级排序,筛选出排序后优先级最高的新任务,并对该新任务执行多级抢占资源判断,序列中的其余新任务再次进行优先级排序后排序到任务队列中。
18.一种计算机可读储存介质,该计算机可读存储介质上储存有指令,其在计算机上运行时使得计算机执行权利要求1-11中任一项权利要求所述的任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210442801.8A CN114911591A (zh) | 2022-04-25 | 2022-04-25 | 任务调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210442801.8A CN114911591A (zh) | 2022-04-25 | 2022-04-25 | 任务调度方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114911591A true CN114911591A (zh) | 2022-08-16 |
Family
ID=82765396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210442801.8A Pending CN114911591A (zh) | 2022-04-25 | 2022-04-25 | 任务调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114911591A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117216762A (zh) * | 2023-08-24 | 2023-12-12 | 大连理工大学 | 基于在线优先级反转预算分析的安全感知实时任务调度方法、电子设备和计算机可读存储介质 |
-
2022
- 2022-04-25 CN CN202210442801.8A patent/CN114911591A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117216762A (zh) * | 2023-08-24 | 2023-12-12 | 大连理工大学 | 基于在线优先级反转预算分析的安全感知实时任务调度方法、电子设备和计算机可读存储介质 |
CN117216762B (zh) * | 2023-08-24 | 2024-03-22 | 大连理工大学 | 基于在线优先级反转预算分析的安全感知实时任务调度方法、电子设备和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210200587A1 (en) | Resource scheduling method and apparatus | |
US6757897B1 (en) | Apparatus and methods for scheduling and performing tasks | |
CN110489217A (zh) | 一种任务调度方法及系统 | |
US7076781B2 (en) | Resource reservation for large-scale job scheduling | |
CN105117284B (zh) | 一种基于优先级比例队列的工作线程的调度方法 | |
CN111767134A (zh) | 一种多任务动态资源调度方法 | |
CN111782355B (zh) | 一种基于混合负载的云计算任务调度方法及系统 | |
CN107506234B (zh) | 一种虚拟机调度方法及装置 | |
CN110362391B (zh) | 资源调度方法、装置、电子设备及存储介质 | |
US10271326B2 (en) | Scheduling function calls | |
CN111897637B (zh) | 作业调度方法、装置、主机及存储介质 | |
CN114911591A (zh) | 任务调度方法及系统 | |
CN109491775B (zh) | 一种用于边缘计算环境下的任务处理与调度方法 | |
CN111143045A (zh) | 智能家居操作系统的任务调度方法及装置、存储介质 | |
CN112596898A (zh) | 一种任务执行器调度的方法及装置 | |
JP2000056992A (ja) | タスクスケジューリングシステム、方法及び記録媒体 | |
Atlas et al. | Design and implementation of statistical rate monotonic scheduling in KURT Linux | |
CN117271096A (zh) | 调度方法、电子设备和计算机可读存储介质 | |
CN115695330B (zh) | 嵌入式系统中微程的调度系统、方法、终端及存储介质 | |
CN107589985B (zh) | 一种面向大数据平台的两阶段作业调度方法及系统 | |
CN114064296B (zh) | 一种Kubernetes调度方法、装置和存储介质 | |
US7293004B1 (en) | Method for tuning state-based scheduling policies | |
JP2001236236A (ja) | タスク制御装置およびそのタスクスケジューリング方法 | |
CN115150340A (zh) | 一种动态调整消息队列权重的方法和装置 | |
CN113849282A (zh) | 一种基于动态权重的openresty反向代理排队处理方法 |
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 |