CN111176815B - 一种操作系统的任务调度方法及装置 - Google Patents
一种操作系统的任务调度方法及装置 Download PDFInfo
- Publication number
- CN111176815B CN111176815B CN201911399997.1A CN201911399997A CN111176815B CN 111176815 B CN111176815 B CN 111176815B CN 201911399997 A CN201911399997 A CN 201911399997A CN 111176815 B CN111176815 B CN 111176815B
- Authority
- CN
- China
- Prior art keywords
- task
- target
- switched
- idle time
- scheduled
- 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.)
- Active
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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种操作系统的任务调度方法及装置,其中,该方法包括:从任务剩余空闲时间列表中确定待调度的目标任务;分别根据所述目标任务、当前正在执行的待切换任务的价值度、优先级以及能耗确定所述目标任务的目标调度指数和所述待切换任务的目标调度指数;在所述目标任务的目标调度指数大于所述待切换任务的调度指数时,对所述目标任务进行调度,可以解决相关技术中使用最小空闲时间优先算法来进行任务调度存在待调度任务与当前执行任务之间频繁切换的问题,在待调度任务的调度指数大于当前正在执行任务的调度指数时才进行切换,避免了频繁切换。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种操作系统的任务调度方法及装置。
背景技术
随着时代的发展,实时嵌入式系统的应用已经逐渐深入到日常生活的方方面面,在航天、国防、工业、医疗、金融、通信等众多领域有广泛的应用和发展。实时任务调度算法随着实时系统的广泛应用而不断改进,以适应日益增长的需求。
现有技术中,使用较广泛的实时任务调度算法为最小空闲时间优先算法。其中,最小空闲时间优先算法是结合任务执行的缓急程度来给任务分配优先级,任务所剩的空闲时间越少,就越需要尽快执行,这样保证了紧急任务(并非是截止期越早的任务)的优先执行。
在使用最小空闲时间优先算法来进行任务调度时,由于等待任务的空闲时间是严格递减的,因此,当某任务的空闲时间与最小任务空闲时间相近时,该任务会与当前执行任务之间频繁切换,这种现象称作颠簸现象。颠簸现象增大了系统开销,限制了最小空闲时间优先算法的应用。
针对相关技术中使用最小空闲时间优先算法来进行任务调度存在待调度任务与当前执行任务之间频繁切换的问题,尚未提出解决方案。
发明内容
本发明实施例提供了一种操作系统的任务调度方法及装置,以至少解决相关技术中使用最小空闲时间优先算法来进行任务调度存在待调度任务与当前执行任务之间频繁切换的问题。
根据本发明的一个实施例,提供了一种操作系统的任务调度方法,包括:
从任务剩余空闲时间列表中确定待调度的目标任务;
分别根据所述目标任务、当前正在执行的待切换任务的价值度、优先级以及能耗确定所述目标任务的目标调度指数和所述待切换任务的目标调度指数;
在所述目标任务的目标调度指数大于所述待切换任务的调度指数时,对所述目标任务进行调度。
可选地,分别根据所述目标任务、当前正在执行的待切换任务的价值度、优先级以及能耗确定所述目标任务的目标调度指数和所述待切换任务的目标调度指数包括:
分别获取所述目标任务和所述待切换任务的价值度、优先级以及能耗;
分别将所述目标任务和所述待切换任务的价值度、优先级以及能耗输入到预先训练好的目标神经网络模型中,得到所述目标任务的目标调度指数和所述待切换任务的目标调度指数。
可选地,在从任务剩余空闲时间列表中确定待调度的目标任务之前,所述方法还包括:
获取预定数量的任务的价值度、优先级、能耗、以及所述任务实际设置的调度指数;
使用所述预定数量的任务的价值度、优先级、能耗、以及所述任务实际设置的调度指数对原始神经网络模型进行训练,得到所述目标神经网络模型,其中,所述预定数量的任务的价值度、优先级、能耗为所述原始神经网络模型的输入,训练好的所述目标神经网络模型输出的所述任务对应的目标调度指数与所述任务的实际设置的调度指数满足预定目标函数。
可选地,从任务剩余空闲时间列表中确定待调度的目标任务包括:
从所述任务剩余空闲时间列表中获取最小剩余空闲时间的第一任务;
在所述第一任务的剩余空闲时间大于预设剩余时间阈值的情况下,判断是否调度所述第一任务;
在判断结果为是的情况下,确定所述第一任务为待调度的所述目标任务。
可选地,判断是否调度所述第一任务包括:
通过以下方式判断所述第一任务的调度剩余空闲时间是否等于所述待切换任务的调度剩余空闲时间:
stl,m(t)-hl×PAl,m=sti,j(t)-hi×PAi,j,其中,所述第一任务的调度剩余空闲时间为stl,m(t)-hl×PAl,m,所述待切换任务的调度剩余空闲时间为sti,j(t)-hi×PAi,j,sti,j(t)为所述待切换任务ti第j次执行之后的剩余空闲时间,stl,m(t)为所述第一任务tl第m次执行之后的剩余空闲时间,hi、hl分别为所述待切换任务ti、所述第一任务tl的周期调节阈值系数,PAi,j为任务ti第j次执行的周期调节参数,PAl,m为任务tl第m次执行的周期调节参数,PA随时钟周期增加与预定数值递增,抢占成功的任务的PA随时钟周期增加以预定数值递减,被抢占的任务的PA为零;
在所述第一任务的调度剩余空闲时间等于所述待切换任务的调度剩余空闲时间且所述第一任务距离上一次执行的时间大于所述待切换任务距离上一次执行的时间的情况下,调度所述第一任务;
在所述第一任务的调度剩余空闲时间等于所述待切换任务的调度剩余空闲时间且所述第一任务距离上一次执行的时间小于或等于所述待切换任务距离上一次执行的时间的情况下,拒绝调度所述第一任务。
可选地,判断是否调度所述第一任务还包括:
在所述第一任务的调度剩余空闲时间不等于所述待切换任务的调度剩余空闲时间的情况下,通过以下方式判断所述第一任务的调度剩余空闲时间是否小于所述待切换任务的调度剩余空闲时间:
stl,m(t)-h×PAl,m<sti,j(t)-h×PAi,j;
在所述第一任务的调度剩余空闲时间小于所述待切换任务的调度剩余空闲时间的情况下,调度所述第一任务;
在所述第一任务的调度剩余空闲时间大于或等于所述待切换任务的调度剩余空闲时间的情况下,拒绝调度所述第一任务。
根据本发明的另一个实施例,还提供了一种操作系统的任务调度装置,包括:
第一确定模块,用于从任务剩余空闲时间列表中确定待调度的目标任务;
第二确定模块,用于分别根据所述目标任务、当前正在执行的待切换任务的价值度、优先级以及能耗确定所述目标任务的目标调度指数和所述待切换任务的目标调度指数;
调度模块,用于在所述目标任务的目标调度指数大于所述待切换任务的调度指数时,对所述目标任务进行调度。
可选地,所述第二确定模块包括:
获取子模块,用于分别获取所述目标任务和所述待切换任务的价值度、优先级以及能耗;
输入子模块,用于分别将所述目标任务和所述待切换任务的价值度、优先级以及能耗输入到预先训练好的目标神经网络模型中,得到所述目标任务的目标调度指数和所述待切换任务的目标调度指数。
可选地,所述装置还包括:
获取模块,用于获取预定数量的任务的价值度、优先级、能耗、以及所述任务实际设置的调度指数;
训练模块,用于使用所述预定数量的任务的价值度、优先级、能耗、以及所述任务实际设置的调度指数对原始神经网络模型进行训练,得到所述目标神经网络模型,其中,所述预定数量的任务的价值度、优先级、能耗为所述原始神经网络模型的输入,训练好的所述目标神经网络模型输出的所述任务对应的目标调度指数与所述任务的实际设置的调度指数满足预定目标函数。
可选地,所述第一确定模块包括:
获取子模块,用于从所述任务剩余空闲时间列表中获取最小剩余空闲时间的第一任务;
判断子模块,用于在所述第一任务的剩余空闲时间大于预设剩余时间阈值的情况下,判断是否调度所述第一任务;
确定子模块,用于在判断结果为是的情况下,确定所述第一任务为待调度的所述目标任务。
可选地,所述判断子模块包括:
第一判断单元,用于通过以下方式判断所述第一任务的调度剩余空闲时间是否等于所述待切换任务的调度剩余空闲时间:
stl,m(t)-hl×PAl,m=sti,j(t)-hi×PAi,j,其中,所述第一任务的调度剩余空闲时间为stl,m(t)-hl×PAl,m,所述待切换任务的调度剩余空闲时间为sti,j(t)-hi×PAi,j,sti,j(t)为所述待切换任务ti第j次执行之后的剩余空闲时间,stl,m(t)为所述第一任务tl第m次执行之后的剩余空闲时间,hi、hl分别为所述待切换任务ti、所述第一任务tl的周期调节阈值系数,PAi,j为任务ti第j次执行的周期调节参数,PAl,m为任务tl第m次执行的周期调节参数,PA随时钟周期增加与预定数值递增,抢占成功的任务的PA随时钟周期增加以预定数值递减,被抢占的任务的PA为零;
第一确定单元,用于在所述第一任务的调度剩余空闲时间等于所述待切换任务的调度剩余空闲时间且所述第一任务距离上一次执行的时间大于所述待切换任务距离上一次执行的时间的情况下,调度所述第一任务;
第一拒绝单元,用于在所述第一任务的调度剩余空闲时间等于所述待切换任务的调度剩余空闲时间且所述第一任务距离上一次执行的时间小于或等于所述待切换任务距离上一次执行的时间的情况下,拒绝调度所述第一任务。
可选地,所述判断子模块还包括:
第二判断单元,用于在所述第一任务的调度剩余空闲时间不等于所述待切换任务的调度剩余空闲时间的情况下,通过以下方式判断所述第一任务的调度剩余空闲时间是否小于所述待切换任务的调度剩余空闲时间:
stl,m(t)-h×PAl,m<sti,j(t)-h×PAi,j;
第二确定单元,用于在所述第一任务的调度剩余空闲时间小于所述待切换任务的调度剩余空闲时间的情况下,调度所述第一任务;
第二拒绝单元,用于在所述第一任务的调度剩余空闲时间大于或等于所述待切换任务的调度剩余空闲时间的情况下,拒绝调度所述第一任务。
根据本发明的又一个实施例,还提供了一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,从任务剩余空闲时间列表中确定待调度的目标任务;分别根据所述目标任务、当前正在执行的待切换任务的价值度、优先级以及能耗确定所述目标任务的目标调度指数和所述待切换任务的目标调度指数;在所述目标任务的目标调度指数大于所述待切换任务的调度指数时,对所述目标任务进行调度,可以解决相关技术中使用最小空闲时间优先算法来进行任务调度存在待调度任务与当前执行任务之间频繁切换的问题,在待调度任务的调度指数大于当前正在执行任务的调度指数时才进行切换,避免了频繁切换。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的操作系统的任务调度方法的移动终端的硬件结构框图;
图2是根据本发明实施例的操作系统的任务调度方法的流程图;
图3是根据本发明实施例的操作系统中任务调度的流程图;
图4是根据本发明实施例的操作系统的任务调度装置的框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例1
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的操作系统的任务调度方法的移动终端的硬件结构框图,如图1所示,移动终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的报文接收方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network INterface CoNtroller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio FrequeNcy,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
基于上述移动终端,在本实施例中提供了一种操作系统的任务调度方法,图2是根据本发明实施例的操作系统的任务调度方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,从任务剩余空闲时间列表中确定待调度的目标任务;
本发明实施例中,任务剩余空闲时间列表中存储任务的剩余空闲时间。
步骤S204,分别根据所述目标任务、当前正在执行的待切换任务的价值度、优先级以及能耗确定所述目标任务的目标调度指数和所述待切换任务的目标调度指数;
具体的,根据所述目标任务的价值度、优先级以及能耗确定所述目标任务的目标调度指数,以及根据当前正在执行的待切换任务的价值度、优先级以及能耗确定所述目标任务的目标调度指数确定所述待切换任务的目标调度指数。
进一步的,分别获取所述目标任务和所述待切换任务的价值度、优先级以及能耗;分别将所述目标任务和所述待切换任务的价值度、优先级以及能耗输入到预先训练好的目标神经网络模型中,得到所述目标任务的目标调度指数和所述待切换任务的目标调度指数。
步骤S206,在所述目标任务的目标调度指数大于所述待切换任务的调度指数时,对所述目标任务进行调度。
通过上述步骤S202至S206,从任务剩余空闲时间列表中确定待调度的目标任务;确定所述目标任务的目标调度指数和当前正在执行的待切换任务的目标调度指数;在所述目标任务的目标调度指数大于所述待切换任务的调度指数时,对所述目标任务进行调度,可以解决相关技术中使用最小空闲时间优先算法来进行任务调度存在待调度任务与当前执行任务之间频繁切换的问题,在待调度任务的调度指数大于当前正在执行任务的调度指数时才进行切换,避免了频繁切换。
本发明实施例中,在从任务剩余空闲时间列表中确定待调度的目标任务之前,获取预定数量的任务的价值度、优先级、能耗、以及所述任务实际设置的调度指数;使用所述预定数量的任务的价值度、优先级、能耗、以及所述任务实际设置的调度指数对原始神经网络模型进行训练,得到所述目标神经网络模型,其中,所述预定数量的任务的价值度、优先级、能耗为所述原始神经网络模型的输入,训练好的所述目标神经网络模型输出的所述任务对应的目标调度指数与所述任务的实际设置的调度指数满足预定目标函数。
本发明实施例中,上述步骤S202具体可以包括:
S2021,从所述任务剩余空闲时间列表中获取最小剩余空闲时间的第一任务;
S2022,在所述第一任务的剩余空闲时间大于预设剩余时间阈值的情况下,判断是否调度所述第一任务;
在一可选的实施例中,通过以下方式判断所述第一任务的调度剩余空闲时间是否等于所述待切换任务的调度剩余空闲时间:
stl,m(t)-hl×PAl,m=sti,j(t)-hi×PAi,j,其中,所述第一任务的调度剩余空闲时间为stl,m(t)-hl×PAl,m,所述待切换任务的调度剩余空闲时间为sti,j(t)-hi×PAi,j,sti,j(t)为所述待切换任务ti第j次执行之后的剩余空闲时间,stl,m(t)为所述第一任务tl第m次执行之后的剩余空闲时间,hi、hl分别为所述待切换任务ti、所述第一任务tl的周期调节阈值系数,PAi,j为任务ti第j次执行的周期调节参数,PAl,m为任务tl第m次执行的周期调节参数,PA随时钟周期增加与预定数值递增,抢占成功的任务的PA随时钟周期增加以预定数值递减,被抢占的任务的PA为零;
在所述第一任务的调度剩余空闲时间等于所述待切换任务的调度剩余空闲时间且所述第一任务距离上一次执行的时间大于所述待切换任务距离上一次执行的时间的情况下,调度所述第一任务;
在所述第一任务的调度剩余空闲时间等于所述待切换任务的调度剩余空闲时间且所述第一任务距离上一次执行的时间小于或等于所述待切换任务距离上一次执行的时间的情况下,拒绝调度所述第一任务。
在另一可选的实施例中,判断是否调度所述第一任务还包括:
在所述第一任务的调度剩余空闲时间不等于所述待切换任务的调度剩余空闲时间的情况下,通过以下方式判断所述第一任务的调度剩余空闲时间是否小于所述待切换任务的调度剩余空闲时间:
stl,m(t)-h×PAl,m<sti,j(t)-h×PAi,j;
在所述第一任务的调度剩余空闲时间小于所述待切换任务的调度剩余空闲时间的情况下,调度所述第一任务;
在所述第一任务的调度剩余空闲时间大于或等于所述待切换任务的调度剩余空闲时间的情况下,拒绝调度所述第一任务。
S2023,在判断结果为调度所述第一任务的情况下,确定所述第一任务为待调度的所述目标任务。
需要说明的是,在判断结果为拒绝调度所述第一任务的情况下,继续执行当前正在执行的任务,即不进行任务切换。
本发明实施例,将时钟周期引入阈值设定,使阈值设定与任务特性相结合,在减少“颠簸现象”的基础上,提升任务的调度成功率。此外,为进一步确保任务调度时,调度的任务为当前最适合调度的任务,本发明实施例还构建了一个调度指数模型,可以从任务的价值度、优先级以及能耗等不同维度来确定任务对应的调度指数,然后可以根据任务的调度指数来选择当前需要调度的任务。主要分为两大部分:第一部分是对现有的最小空闲时间优先算法进行改进,以减少任务调度过程中产生的“颠簸现象”,提升任务调度的成功率;第二部分是构建调度指数模型,以确定待调度的任务对应的调度指数,在待调度任务的调度系数大于当前正在执行任务的调度系数的情况下,才进行任务切换,进一步避免了频繁切换的问题。下面分别从这两大部分进行说明:
(1)对现有的最小空闲时间优先算法进行改进,在任务调度过程中,处于就绪态的任务的剩余空闲时间随时间严格递减,而当前执行任务的剩余空闲时间保持不变,且剩余时间不为零时,随着调度的执行,任务队列中一定会产生剩余空闲时间与当前执行任务ti剩余空闲时间相等的任务tl。此时,根据最小空闲时间优先算法,tl将抢占ti成为当前执行任务,再进过一个时钟周期,任务τi的剩余空闲时间将小于tl,此时,任务再次发生抢占,任务ti成为当前执行任务,而任务tl由于剩余空闲时间小而被抢占,往复抢占的现象直到某个任务剩余空闲时间为零停止,这种任务间没有意义的频繁抢占现象被称为“颠簸现象”。
为了有效减少“颠簸现象”,本发明实施例将时钟周期引入阈值设定,并根据时钟周期设置周期抢占阈值,将周期抢占阈值分为静态和动态两个部分,静态部分:周期调节阈值系数h;动态部分:周期调节参数PA,任务ti的抢占阈值可以表示为hi×PAi,j。周期调节参数PA随时钟周期递增,当任务成功抢占CPU资源后,PA随时钟周期递减,被抢占的任务的PA置零。每个时钟周期到来后,在对最小空闲时间任务进行求解的过程中,每个任务的抢占阈值参与求解。
产生任务调度的条件是:stl,m(t)-h×PAl,m<sti,j(t)-h×PAi,j。,
sti,j(t)为当前正在执行的任务ti第j次作业的剩余空闲时间;stl,m(t)为待调度任务tl第m次作业的剩余空闲时间;hi、hl为周期调节阈值系数;PAi,j为任务ti第j次作业的周期调节参数;PAl,m为任务tl第m次作业的周期条件参数。
当stl,m(t)-hl×PAl,m=sti,j(t)-hi×PAi,j时,比较任务ti和任务tl的距离上一次执行的时间,调度时间大的任务。
图3是根据本发明实施例的操作系统中任务调度的流程图,如图3所示,包括:
步骤S301,执行一个时间周期;
步骤S302,从ListSt中获取最小剩余空闲时间的待调度任务tl(对应上述第一任务),其中,ListSt为任务的剩余空闲时间列表;
步骤S303,判断待调度任务tl的剩余空闲时间是否大于预设剩余时间阈值,在判断结果为是的情况下,执行步骤S304,否则执行步骤S305;
步骤S304,判断第一调度剩余空闲时间是否等于第二调度剩余空闲时间,其中,第一调度剩余空闲时间为任务tl的调度剩余空闲时间,第二调度剩余空闲时间为当前正在执行的任务ti的调度剩余空闲时间,即判断stl,m(t)-hl×PAl,m=sti,j(t)-hi×PAij是否成立,在判断结果为是的情况下,执行步骤S306,否则执行步骤S307;
步骤S305,继续执行当前正在执行的任务ti;
步骤S306,若任务tl距离上一次执行的时间大于当前正在执行的任务ti距离上一次执行的时间,确定调度任务tl;
步骤S307,判断第一调度剩余空闲时间是否小于第二调度剩余空闲时间,即判断stl,m(t)-h×PAl,m<sti,j(t)-h×PAi,j是否成立,在判断结果为是的情况下,执行步骤S308,否则执行步骤S309;
步骤S308,将待调度任务tl替换当前正在执行的任务ti;
步骤S309,将当前正在执行的任务ti的剩余空闲时间更新到ListSt中。
本发明实施例通过引入时钟周期,可以有效减少“颠簸现象”,提升任务调度的成功率。
(2)构建调度指数模型,首先,先构建一个初始模型,在构建初始模式时,可以基于现有的随机森林算法来构建,在构建了初始模型后,可以确定训练样本,其中,训练样本的输入部分包括任务的价值度、优先级以及能耗;输出部分包括相关技术人员根据输入的任务人为设置的调度指数。
在本发明实施例中,任务的价值度可以根据任务对应的业务类型来确定,相关技术人员可以预先设置不同的业务类型对应的价值度值,然后,将任务对应的业务类型对应的价值度值确定为任务的价值度。当然,本发明实施例中,相关技术人员也可以针对同一业务类型对应的不同任务设置不同的价值度,然后,根据相关人员为业务类型设置的价值度,以及为业务类型对应的任务设置的价值度,来综合确定任务对应的价值度。其中,任务的价值度越高时,调度指数越大;任务的价值度越低时,调度指数越小。
任务的优先级可以根据任务的截止期与当前时刻的差值来确定,差值越小,任务的优先级就越大。当任务的优先级越大时,调度指数越大;当任务的优先级越小时,调度指数越小。
任务的能耗可以根据任务所需占用资源的时间以及所需占用的资源量来确定。本发明实施例中,可以预先记录每一任务在之前执行时所占用的资源量以及占用时间,然后,根据记录每一任务在之前执行时的平均占用资源量,以及平均占用时间来确定每一任务对应的能耗。当任务的能耗越大时,调度指数越小;当任务的优先级能耗越小时,调度指数越大。
在本发明实施例中,用于训练的输入部分以及输出部分可以分为两组,一组可以用于调度指数模型进行学习,另一部分可以用于对学习完成的调度指数模型进行验证。其中,在验证时,若调度指数模型的输出结果与预设的输出部分不同,则可以对调度指数模型中的学习参数进行调整,以实现对调度指数模型准确度的调整。
在训练完调度指数模型后,可以将调度指数模型以及上述改进后的最小空闲时间优先算法进行结合使用。具体地,当任务满足上述任务调度条件时,可以获取该任务对应的价值度、优先级与能耗,并输入至调度指数模型中,得到任务对应的调度指数;然后,可以获取当前正在执行的待切换的任务对应的价值度、优先级与能耗,并输入至调度指数模型中,得到其应的调度指数。当该满足上述任务调度条件的任务的调度指数高于当前正在执行的待切换的任务时,可以对该任务进行调度。
实施例2
根据本发明的另一个实施例,还提供了一种操作系统的任务调度装置,图4是根据本发明实施例的操作系统的任务调度装置的框图,如图4所示,包括:
第一确定模块42,用于从任务剩余空闲时间列表中确定待调度的目标任务;
第二确定模块44,用于分别根据所述目标任务、当前正在执行的待切换任务的价值度、优先级以及能耗确定所述目标任务的目标调度指数和所述待切换任务的目标调度指数;
调度模块46,用于在所述目标任务的目标调度指数大于所述待切换任务的调度指数时,对所述目标任务进行调度。
可选地,所述第二确定模块44包括:
获取子模块,用于分别获取所述目标任务和所述待切换任务的价值度、优先级以及能耗;
输入子模块,用于分别将所述目标任务和所述待切换任务的价值度、优先级以及能耗输入到预先训练好的目标神经网络模型中,得到所述目标任务的目标调度指数和所述待切换任务的目标调度指数。
可选地,所述装置还包括:
获取模块,用于获取预定数量的任务的价值度、优先级、能耗、以及所述任务实际设置的调度指数;
训练模块,用于使用所述预定数量的任务的价值度、优先级、能耗、以及所述任务实际设置的调度指数对原始神经网络模型进行训练,得到所述目标神经网络模型,其中,所述预定数量的任务的价值度、优先级、能耗为所述原始神经网络模型的输入,训练好的所述目标神经网络模型输出的所述任务对应的目标调度指数与所述任务的实际设置的调度指数满足预定目标函数。
可选地,所述第一确定模块42包括:
获取子模块,用于从所述任务剩余空闲时间列表中获取最小剩余空闲时间的第一任务;
判断子模块,用于在所述第一任务的剩余空闲时间大于预设剩余时间阈值的情况下,判断是否调度所述第一任务;
确定子模块,用于在判断结果为是的情况下,确定所述第一任务为待调度的所述目标任务。
可选地,所述判断子模块包括:
第一判断单元,用于通过以下方式判断所述第一任务的调度剩余空闲时间是否等于所述待切换任务的调度剩余空闲时间:
stl,m(t)-hl×PAl,m=sti,j(t)-hi×PAi,j,其中,所述第一任务的调度剩余空闲时间为stl,m(t)-hl×PAl,m,所述待切换任务的调度剩余空闲时间为sti,j(t)-hi×PAi,j,sti,j(t)为所述待切换任务ti第j次执行之后的剩余空闲时间,stl,m(t)为所述第一任务tl第m次执行之后的剩余空闲时间,hi、hl分别为所述待切换任务ti、所述第一任务tl的周期调节阈值系数,PAi,j为任务ti第j次执行的周期调节参数,PAl,m为任务tl第m次执行的周期调节参数,PA随时钟周期增加与预定数值递增,抢占成功的任务的PA随时钟周期增加以预定数值递减,被抢占的任务的PA为零;
第一确定单元,用于在所述第一任务的调度剩余空闲时间等于所述待切换任务的调度剩余空闲时间且所述第一任务距离上一次执行的时间大于所述待切换任务距离上一次执行的时间的情况下,调度所述第一任务;
第一拒绝单元,用于在所述第一任务的调度剩余空闲时间等于所述待切换任务的调度剩余空闲时间且所述第一任务距离上一次执行的时间小于或等于所述待切换任务距离上一次执行的时间的情况下,拒绝调度所述第一任务。
可选地,所述判断子模块还包括:
第二判断单元,用于在所述第一任务的调度剩余空闲时间不等于所述待切换任务的调度剩余空闲时间的情况下,通过以下方式判断所述第一任务的调度剩余空闲时间是否小于所述待切换任务的调度剩余空闲时间:
stl,m(t)-h×PAl,m<sti,j(t)-h×PAi,j;
第二确定单元,用于在所述第一任务的调度剩余空闲时间小于所述待切换任务的调度剩余空闲时间的情况下,调度所述第一任务;
第二拒绝单元,用于在所述第一任务的调度剩余空闲时间大于或等于所述待切换任务的调度剩余空闲时间的情况下,拒绝调度所述第一任务。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
本发明的实施例还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,从任务剩余空闲时间列表中确定待调度的目标任务;
S2,分别根据所述目标任务、当前正在执行的待切换任务的价值度、优先级以及能耗确定所述目标任务的目标调度指数和所述待切换任务的目标调度指数;
S3,在所述目标任务的目标调度指数大于所述待切换任务的调度指数时,对所述目标任务进行调度。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-ONly Memory,简称为ROM)、随机存取存储器(RaNdom Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
实施例4
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,从任务剩余空闲时间列表中确定待调度的目标任务;
S2,分别根据所述目标任务、当前正在执行的待切换任务的价值度、优先级以及能耗确定所述目标任务的目标调度指数和所述待切换任务的目标调度指数;
S3,在所述目标任务的目标调度指数大于所述待切换任务的调度指数时,对所述目标任务进行调度。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种操作系统的任务调度方法,其特征在于,包括:
从任务剩余空闲时间列表中确定待调度的目标任务;
分别根据所述目标任务、当前正在执行的待切换任务的价值度、优先级以及能耗确定所述目标任务的目标调度指数和所述待切换任务的目标调度指数;
在所述目标任务的目标调度指数大于所述待切换任务的调度指数时,对所述目标任务进行调度;
其中,从任务剩余空闲时间列表中确定待调度的目标任务包括:
从所述任务剩余空闲时间列表中获取最小剩余空闲时间的第一任务;
在所述第一任务的剩余空闲时间大于预设剩余时间阈值的情况下,判断是否调度所述第一任务;
在判断结果为是的情况下,确定所述第一任务为待调度的所述目标任务;
其中,判断是否调度所述第一任务包括:
判断所述第一任务的调度剩余空闲时间是否等于所述待切换任务的调度剩余空闲时间;
在所述第一任务的调度剩余空闲时间等于所述待切换任务的调度剩余空闲时间且所述第一任务距离上一次执行的时间大于所述待切换任务距离上一次执行的时间的情况下,调度所述第一任务;
在所述第一任务的调度剩余空闲时间等于所述待切换任务的调度剩余空闲时间且所述第一任务距离上一次执行的时间小于或等于所述待切换任务距离上一次执行的时间的情况下,拒绝调度所述第一任务。
2.根据权利要求1所述的方法,其特征在于,分别根据所述目标任务、当前正在执行的待切换任务的价值度、优先级以及能耗确定所述目标任务的目标调度指数和所述待切换任务的目标调度指数包括:
分别获取所述目标任务和所述待切换任务的价值度、优先级以及能耗;
分别将所述目标任务和所述待切换任务的价值度、优先级以及能耗输入到预先训练好的目标神经网络模型中,得到所述目标任务的目标调度指数和所述待切换任务的目标调度指数。
3.根据权利要求2所述的方法,其特征在于,在从任务剩余空闲时间列表中确定待调度的目标任务之前,所述方法还包括:
获取预定数量的任务的价值度、优先级、能耗、以及所述任务实际设置的调度指数;
使用所述预定数量的任务的价值度、优先级、能耗、以及所述任务实际设置的调度指数对原始神经网络模型进行训练,得到所述目标神经网络模型,其中,所述预定数量的任务的价值度、优先级、能耗为所述原始神经网络模型的输入,训练好的所述目标神经网络模型输出的所述任务对应的目标调度指数与所述任务的实际设置的调度指数满足预定目标函数。
4.根据权利要求1所述的方法,其特征在于,判断所述第一任务的调度剩余空闲时间是否等于所述待切换任务的调度剩余空闲时间包括:
stl,m(t)-hl×PAl,m=sti,j(t)-hi×PAi,j,其中,所述第一任务的调度剩余空闲时间为stl,m(t)-hl×PAl,m,所述待切换任务的调度剩余空闲时间为sti,j(t)-hi×PAi,j,sti,j(t)为所述待切换任务ti第j次执行之后的剩余空闲时间,stl,m(t)为所述第一任务tl第m次执行之后的剩余空闲时间,hi、hl分别为所述待切换任务ti、所述第一任务tl的周期调节阈值系数,PAi,j为任务ti第j次执行的周期调节参数,PAl,m为任务tl第m次执行的周期调节参数,PA随时钟周期增加与预定数值递增,抢占成功的任务的PA随时钟周期增加以预定数值递减,被抢占的任务的PA为零。
5.根据权利要求4所述的方法,其特征在于,判断是否调度所述第一任务还包括:
在所述第一任务的调度剩余空闲时间不等于所述待切换任务的调度剩余空闲时间的情况下,通过以下方式判断所述第一任务的调度剩余空闲时间是否小于所述待切换任务的调度剩余空闲时间:
stl,m(t)-h×PAl,m<sti,j(t)-h×PAi,j;
在所述第一任务的调度剩余空闲时间小于所述待切换任务的调度剩余空闲时间的情况下,调度所述第一任务;
在所述第一任务的调度剩余空闲时间大于或等于所述待切换任务的调度剩余空闲时间的情况下,拒绝调度所述第一任务。
6.一种操作系统的任务调度装置,其特征在于,包括:
第一确定模块,用于从任务剩余空闲时间列表中确定待调度的目标任务;
第二确定模块,用于分别根据所述目标任务、当前正在执行的待切换任务的价值度、优先级以及能耗确定所述目标任务的目标调度指数和所述待切换任务的目标调度指数;
调度模块,用于在所述目标任务的目标调度指数大于所述待切换任务的调度指数时,对所述目标任务进行调度;
其中,所述第一确定模块包括:
获取子模块,用于从所述任务剩余空闲时间列表中获取最小剩余空闲时间的第一任务;
判断子模块,用于在所述第一任务的剩余空闲时间大于预设剩余时间阈值的情况下,判断是否调度所述第一任务;
确定子模块,用于在判断结果为是的情况下,确定所述第一任务为待调度的所述目标任务;
其中,所述判断子模块包括:
第一判断单元,用于判断所述第一任务的调度剩余空闲时间是否等于所述待切换任务的调度剩余空闲时间;
第一确定单元,用于在所述第一任务的调度剩余空闲时间等于所述待切换任务的调度剩余空闲时间且所述第一任务距离上一次执行的时间大于所述待切换任务距离上一次执行的时间的情况下,调度所述第一任务;
第一拒绝单元,用于在所述第一任务的调度剩余空闲时间等于所述待切换任务的调度剩余空闲时间且所述第一任务距离上一次执行的时间小于或等于所述待切换任务距离上一次执行的时间的情况下,拒绝调度所述第一任务。
7.根据权利要求6所述的装置,其特征在于,所述第二确定模块包括:
获取子模块,用于分别获取所述目标任务和所述待切换任务的价值度、优先级以及能耗;
输入子模块,用于分别将所述目标任务和所述待切换任务的价值度、优先级以及能耗输入到预先训练好的目标神经网络模型中,得到所述目标任务的目标调度指数和所述待切换任务的目标调度指数。
8.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至5任一项中所述的方法。
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至5任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911399997.1A CN111176815B (zh) | 2019-12-30 | 2019-12-30 | 一种操作系统的任务调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911399997.1A CN111176815B (zh) | 2019-12-30 | 2019-12-30 | 一种操作系统的任务调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111176815A CN111176815A (zh) | 2020-05-19 |
CN111176815B true CN111176815B (zh) | 2023-09-19 |
Family
ID=70654245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911399997.1A Active CN111176815B (zh) | 2019-12-30 | 2019-12-30 | 一种操作系统的任务调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111176815B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115658277B (zh) * | 2022-12-06 | 2023-03-17 | 苏州浪潮智能科技有限公司 | 一种任务调度方法、装置及电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001236236A (ja) * | 2000-02-25 | 2001-08-31 | Nec Microsystems Ltd | タスク制御装置およびそのタスクスケジューリング方法 |
CN101710292A (zh) * | 2009-12-21 | 2010-05-19 | 中国人民解放军信息工程大学 | 一种可重构任务处理系统、调度器及任务调度方法 |
CN107315631A (zh) * | 2017-06-23 | 2017-11-03 | 迈普通信技术股份有限公司 | 一种任务调度方法及装置 |
CN109766181A (zh) * | 2018-12-06 | 2019-05-17 | 北京航空航天大学 | 一种基于深度学习的rms可调度性判定方法及装置 |
-
2019
- 2019-12-30 CN CN201911399997.1A patent/CN111176815B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001236236A (ja) * | 2000-02-25 | 2001-08-31 | Nec Microsystems Ltd | タスク制御装置およびそのタスクスケジューリング方法 |
CN101710292A (zh) * | 2009-12-21 | 2010-05-19 | 中国人民解放军信息工程大学 | 一种可重构任务处理系统、调度器及任务调度方法 |
CN107315631A (zh) * | 2017-06-23 | 2017-11-03 | 迈普通信技术股份有限公司 | 一种任务调度方法及装置 |
CN109766181A (zh) * | 2018-12-06 | 2019-05-17 | 北京航空航天大学 | 一种基于深度学习的rms可调度性判定方法及装置 |
Non-Patent Citations (1)
Title |
---|
张健.⼀种Linux实时化⽅法研究与实现.中国优秀硕⼠学位论⽂全⽂数据库 信息科技辑.2012,I138-1369. * |
Also Published As
Publication number | Publication date |
---|---|
CN111176815A (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109992404B (zh) | 集群计算资源调度方法、装置、设备及介质 | |
US11582166B2 (en) | Systems and methods for provision of a guaranteed batch | |
US11436050B2 (en) | Method, apparatus and computer program product for resource scheduling | |
CN111782355B (zh) | 一种基于混合负载的云计算任务调度方法及系统 | |
CN114072766A (zh) | 用于数字劳动力智能编排的系统和方法 | |
CN105955809B (zh) | 线程调度方法和系统 | |
CN110362391B (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN112667400B (zh) | 边缘自治中心管控的边云资源调度方法、装置及系统 | |
CN103235835A (zh) | 用于数据库集群的查询实现方法和装置 | |
Dimitriou | A preemptive resume priority retrial queue with state dependent arrivals, unreliable server and negative customers | |
CN112214319A (zh) | 一种计算资源感知的任务调度方法 | |
CN111176815B (zh) | 一种操作系统的任务调度方法及装置 | |
CN113608852B (zh) | 任务调度方法、调度模块、推理节点和协同作业系统 | |
CN111124708A (zh) | 面向微服务的批推理方法、服务器和计算机可读存储介质 | |
CN111913799B (zh) | 一种视频流在线分析任务调度方法和计算机设备 | |
EP4300305A1 (en) | Methods and systems for energy-efficient scheduling of periodic tasks on a group of processing devices | |
CN113342497A (zh) | 任务调度方法、装置、终端设备及计算机存储介质 | |
CN114327925A (zh) | 一种电力数据实时计算调度优化方法及系统 | |
CN114860397A (zh) | 一种任务调度方法、装置及设备 | |
US20160373367A1 (en) | System and method for identifying performance characteristics in asynchronous networks | |
CN116848508A (zh) | 基于强化学习模型调度任务以供计算机执行 | |
CN113747504A (zh) | 多接入边缘计算联合任务卸载和资源分配的方法及系统 | |
CN113434271A (zh) | 任务执行方法及装置、存储介质、电子装置 | |
CN111783311B (zh) | 一种基于任意时间算法的直升机的调度控制器设计方法 | |
CN117669928A (zh) | 任务运行方法、装置、设备以及存储介质 |
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 |