CN114860403B - 一种任务调度方法、装置、设备和存储介质 - Google Patents
一种任务调度方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN114860403B CN114860403B CN202210511130.6A CN202210511130A CN114860403B CN 114860403 B CN114860403 B CN 114860403B CN 202210511130 A CN202210511130 A CN 202210511130A CN 114860403 B CN114860403 B CN 114860403B
- Authority
- CN
- China
- Prior art keywords
- task
- scheduler
- scheduling
- schedulers
- scheduling operation
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 12
- 238000012216 screening Methods 0.000 claims description 5
- 230000004927 fusion Effects 0.000 abstract description 3
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
-
- 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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种任务调度方法、装置、设备和存储介质。方法包括:定义不同类型的任务调度器,任务调度器包括如下类型中的至少两种:实时任务调度器、截止期任务调度器、公平算法任务调度器以及IDLE任务调度器;创建任务时,指定任务对应的任务调度器类型;各任务调度器在满足预先定义的调度操作条件时,执行与调度操作条件匹配的任务调度操作。通过定义不同类型的任务调度器,并且在创建任务时指定任务对应的任务调度器类型,在同一时刻多种任务调度器可以并存于操作系统,因此在进行任务调度时可以实现多种任务调度器的融合,从而提高了操作系统的可用性以及适用范围。
Description
技术领域
本发明涉及智能控制技术领域,尤其涉及一种任务调度方法、装置、设备和存储介质。
背景技术
嵌入式操作系统在进行任务调度时,首先在调度器中创建任务,然后从调度器所创建的任务中进行任务的调度。
但是,由于目前嵌入式操作系统中任务调度技术的单一性,在同一时刻系统中只能应用一种任务调度器,因此在进行任务调度时也只能采用一种任务调度器进行任务的调度,从而降低了操作系统的可用性及适用范围。
发明内容
本发明提供了一种任务调度方法、装置、设备和存储介质,以实现对嵌入式操作系统中任务的调度。
根据本发明的一方面,提供了一种任务调度方法,包括:定义不同类型的任务调度器,所述任务调度器包括如下类型中的至少两种:实时任务调度器、截止期任务调度器、公平算法任务调度器以及IDLE任务调度器;
创建任务时,指定所述任务对应的任务调度器类型;
各所述任务调度器在满足预先定义的调度操作条件时,执行与调度操作条件匹配的任务调度操作。
根据本发明的另一方面,提供了一种任务调度装置,包括:任务调度器定义模块,用于定义不同类型的任务调度器,所述任务调度器包括如下类型中的至少两种:实时任务调度器、截止期任务调度器、公平算法任务调度器以及IDLE任务调度器;
任务创建模块,用于创建任务时,指定所述任务对应的任务调度器类型;任务调度模块,用于各所述任务调度器在满足预先定义的调度操作条件时,执行与调度操作条件匹配的任务调度操作。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的方法。
本发明实施例的技术方案,通过定义不同类型的任务调度器,并且在创建任务时指定任务对应的任务调度器类型,在同一时刻多种任务调度器可以并存于操作系统,因此在进行任务调度时可以实现多种任务调度器的融合,从而提高了操作系统的可用性以及适用范围。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种任务调度方法的流程图;
图2是根据本发明实施例一提供的任务调度方法的应用框架示意图;
图3是根据本发明实施例二提供的任务调度方法的流程图;
图4是根据本发明实施例二提供的另一种任务调度方法的流程图;
图5是根据本发明实施例三提供的一种任务选择装置的结构示意图;
图6是根据本发明实施例四提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供的任务调度方法的流程图,本实施例可适用于对系统当前运行任务进行选择的情况,该方法可以由本发明实施例中的任务选择装置来执行,该装置可以采用硬件和/或软件的形式实现,该装置可配置于电子设备中。如图1所示,该方法包括:
步骤S101,定义不同类型的任务调度器。
可选的,定义不同类型的任务调度器,包括:根据指定类型定义各任务调度器;定义任务调度器的调度操作条件,以及与调度操作条件匹配的任务调度操作的类型;其中,任务调度操作的类型包括如下类型至少之一:进入就绪队列、从就绪队列中摘除、选择运行任务、释放CPU、获取CPU、时间片处理或改变任务优先级。
具体的说,在定义不同类型的任务调度器时,具体是根据指定类型定义各任务调度器,本实施方式中的任务调度器包括如下类型中的至少两种:实时任务调度器、截止期任务调度器、公平算法任务调度器以及IDLE任务调度器。当然,本实施方式中仅是举例说明,而并不对所定义的任务调度器的具体类型进行限定。并且还会进一步定义任务调度器的调度操作条件,以及与调度操作条件匹配的任务调度操作的类型。如下表1所示为任务调度器的调度操作条件与操作类型的示意:
表1
操作类型 | 操作条件 |
进入就绪队列 | 任务的状态变为就绪时 |
从就绪队列中摘除 | 任务的状态变为非就绪时 |
选择运行任务 | 在进行任务调度时 |
放弃CPU | 任务主动放弃CPU时 |
释放CPU | 运行任务切走时 |
获取CPU | 切入到运行任务时 |
时间片处理 | 进行tick通知时 |
改变任务优先级 | 任务的优先级发生改变时 |
可选的,定义不同类型的任务调度器之后,还包括:获取任务调度器配置文件,其中,任务调度器配置文件中包含各任务调度器的初始化配置参数;根据任务调度器配置文件对各任务调度器进行初始化。
其中,在确定出所定义的各任务调度器的类型之后,还会对各任务调度器进行初始化,具体是获取预先设置的任务调度器配置文件,并根据任务调度器配置文件对各任务调度器进行初始化,在任务调度器配置文件中包含各任务调度器的初始化配置参数,其中,配置参数具体是对各任务调度器的操作进行定义,例如,可以包括:进入就绪队列的操作参数、释放CPU的操作参数、选择调度器运行任务的操作参数,时间片处理的操作参数或者改变任务优先级的操作参数,当然,本实施方式中仅是举例说明,而并不对初始化配置参数的类型进行具体限定。
步骤S102,创建任务时,指定任务对应的任务调度器类型。
具体的说,如图2所示,为任务调度方法的应用框架示意图,在嵌入式操作系统中会包括多个虚拟机,在对各任务调度器进行初始化之后,当嵌入式操作系统在各虚拟机中创建任务时,会指定任务对应的调度器类型,从而实现创建各任务调度器所对应的初始任务。例如,嵌入式操作系统在虚拟机2中所创建的包括实时任务1、非实时任务2和实时任务3,并且在创建任务时就已经指定了实时任务1和任务3对应的调度器类型为实时任务调度器、非实时任务2所对应的调度器类型为截止期任务调度器,当然,本实施方式中仅是举例说明,而并不对嵌入式操作系统在各虚拟机中所创建的初始任务的具体数量,以及所创建的初始任务所对应的任务调度器的类型进行限定。
步骤S103,各任务调度器在满足预先定义的调度操作条件时,执行与调度操作条件匹配的任务调度操作。
可选的,各任务调度器在满足预先定义的调度操作条件时,执行与调度操作条件匹配的任务调度操作,包括:当创建的任务的状态更新为就绪状态时,将任务添加到所匹配的任务调度器的就绪队列中,其中,就绪状态包括:启动任务、恢复任务或任务等待的资源到达;当创建的任务的状态更新为非就绪状态时,则将任务从所匹配的任务调度器的就绪队列中进行删除。
需要说明的是,当所创建的初始任务的状态更新为就绪状态时,会将初始任务添加到所匹配的任务调度器的就绪队列中,而触发初始任务的状态更新为就绪状态的条件包括:接收到启动指令、接收到恢复指令或初始任务等待的资源到达等,当然,本实施方式中仅是举例说明,而并不对初始任务的状态更新为就绪状态的触发机制进行限定。另外,当位于任务调度器的就绪队列中的初始任务的状态更新为非就绪状态时,还会将初始任务从所匹配的任务调度器的就绪队列中进行删除,而触发初始任务的状态更新为非就绪状态的条件包括:接收到挂起指令、初始任务需要等待资源等,当然,本实施方式中仅是举例说明,而并不对初始任务的状态更新为非就绪状态的触发机制进行限定。由此可以得知,本实施方式中各任务调度器的就绪队列中所包含的初始任务是根据实际需求进行动态变化的。
可选的,各任务调度器在满足预先定义的调度操作条件时,执行与调度操作条件匹配的任务调度操作,包括:当解除系统锁定并进行任务调度时,各任务调度器执行任务选择操作,获取调度器运行任务;根据调度器运行任务确定系统当前运行任务。
可选的,根据调度器运行任务确定系统当前运行任务之后,还包括:当确定系统当前运行任务按照时间片处理完成后,调用释放CPU接口;通过释放CPU接口解除系统当前运行任务与指定CPU资源的分配关系;将解除分配关系的指定CPU资源进行释放。
具体的说,当确定出系统当前运行任务后,嵌入式操作系统会按照时间片对系统当前运行任务进行处理,时间片中包含系统当前运行任务所对应的执行时间,当确定系统当前运行任务按照时间片处理完成后,为了实现同优先级任务可进行时间片轮转调度,则需要将所占用的CPU资源进行释放,因此会调用释放CPU接口。释放CPU接口在接收到调用指示后,会将系统当前运行任务与所占用的指定CPU资源的分配关系进行解除。通过将解除分配关系的指定CPU资源进行释放,以便于将已经执行完的任务所占用的CPU资源及时解除占用,从而使同优先级的任务可以得到调度。
可选的,各任务调度器在满足预先定义的调度操作条件时,执行与调度操作条件匹配的任务调度操作,包括:当确定创建的任务的优先级发生改变时,对调度器运行任务进行更新。
本申请实施例,通过定义不同类型的任务调度器,并且在创建任务时指定任务对应的任务调度器类型,在同一时刻多种任务调度器可以并存于操作系统,因此在进行任务调度时可以实现多种任务调度器的融合,从而提高了操作系统的可用性以及适用范围。
实施例二
图3为本发明实施例二提供的一种任务调度方法的流程图,本实施例以上述实施例为基础,对通过各任务调度器确定系统当前运行任务进行具体说明。如图3所示,该方法包括:
步骤S201,当解除系统锁定并进行任务调度时,各任务调度器执行任务选择操作,获取调度器运行任务。
可选的,各任务调度器执行任务选择操作,获取调度器运行任务,包括:根据各任务调度器的优先级从当前级别的任务调度器的就绪队列中,按照预设条件进行任务的筛选,其中,实时任务调度器、截止期任务调度器、公平算法任务调度器以及IDLE任务调度器的优先级依次降低;判断当前级别的任务调度器是否筛选到任务,若是,则将当前级别的任务调度器所选择的任务作为调度器运行任务,否则,从低于当前级别的任务调度器中进行选择,获取调度器运行任务。
具体的说,当嵌入式操作系统解除锁定时,会基于初始化后各任务调度器的优先级指定确定调度器运行任务,如图4所示,为本实施方式中另一种任务调度方法的流程图,图4主要对各任务调度器执行任务选择操作,获取调度器运行任务的操作进行具体说明。其中,由于IDLE任务不在其他调度器的就绪链表中,没有其他就绪任务时,则运行IDLE任务,因此在各任务调度器中IDLE任务调度器的优先级最低,会按照其它任务调度器的优先级由高到低的顺序依次进行调度器运行任务的选择,当确定优先级高的任务调度器中通过选择获取到调度器运行任务时,则不会执行优先级低的任务调度模块的任务选择操作,而当其他各任务调度器都无法选择出调度器运行任务时,则直接将IDLE任务调度器中的IDLE任务作为调度器运行任务。
在一个具体实现中,如图4所示,当前级别的任务调度器为实时任务调度器时,会从实时任务调度器的就绪队列中按照预设条件进行初始任务的筛选,例如,实时任务调度器的就绪队列中包含初始任务x、y和z,并且任务优先级依次降低,当预设条件为选择出任务优先级最高的初始任务,则确定实时任务调度器筛选到初始任务x,并将x作为调度器运行任务,并且不再执行后续低等级的截止期任务调度器的任务筛选操作;而当预设条件为选择出任务优先级为三等级的初始任务,当实时任务调度器就绪队列中所包含的初始任务不包含优先级为三等级的任务时,则确定实时任务调度器不存在调度器运行任务,此时则会指定后续低等级的截止期任务调度器的任务筛选操作;而当实时任务调度器、截止期任务调度器和公平算法任务调度器都未筛选到调度器运行任务时,则直接将IDLE任务调度器中的IDLE任务作为调度器运行任务。
需要说明的是,本实施方式中各任务调度器的就绪队列中所包含的初始任务的优先级会发生改变,同时之前通过筛选所获取的调度器运行任务的优先级也会发生改变,因此当确定初始任务的优先级改变时,会对之前所确定的调度器运行任务进行更新。
步骤S202,根据调度器运行任务确定系统当前运行任务。
可选的,根据调度器运行任务确定系统当前运行任务,包括:在确定调度器运行任务与系统当前运行任务不相同时,则为调度器运行任务分配指定CPU资源,并进行任务切换;根据任务切换结果将调度器运行任务作为系统当前运行任务。
具体的说,本实施方式中在获取到调度器运行任务之后,会根据调度器运行任务确定系统当前运行任务,例如,在确定实时任务调度器中存在调度器运行任务时,则将实时任务调度器中所选择出的调度器运行任务作为嵌入式操作系统当前运行任务。并且会将所选择出的调度器运行任务与目前在嵌入式操作系统中正在运行的任务进行对比,在确定不相同时,才会为调度器运行任务分配指定CPU资源,并进行任务切换,根据任务切换结果将所选择出的调度器运行任务作为系统当前运行任务。
需要说明的是,在确定目前嵌入式操作系统中正在运行的任务,与所选择出来的调度器运行任务相同,则说明所选择出的调度器运行任务正在占用CPU资源,并且不需要进行任务切换的操作。
实施例三
图5为本发明实施例三提供的一种任务选择装置的结构示意图,如图5所示,该装置包括:任务调度器定义模块310、任务创建模块320和任务调度模块330。
其中,任务调度器定义模块310,用于定义不同类型的任务调度器,任务调度器包括如下类型中的至少两种:实时任务调度器、截止期任务调度器、公平算法任务调度器以及IDLE任务调度器;
任务创建模块320,用于创建任务时,指定任务对应的任务调度器类型;
任务调度模块330,用于各任务调度器在满足预先定义的调度操作条件时,执行与调度操作条件匹配的任务调度操作。
可选的,任务调度器定义模块,用于根据指定类型定义各任务调度器;
定义任务调度器的调度操作条件,以及与调度操作条件匹配的任务调度操作的类型;
其中,任务调度操作的类型包括如下类型至少之一:进入就绪队列、从就绪队列中摘除、选择运行任务、释放CPU、获取CPU、时间片处理或改变任务优先级。
可选的,装置还包括调度器初始化模块,用于获取任务调度器配置文件,其中,任务调度器配置文件中包含各任务调度器的初始化配置参数;
根据任务调度器配置文件对各任务调度器进行初始化。
可选的,任务调度模块,用于当创建的任务的状态更新为就绪状态时,将任务添加到所匹配的任务调度器的就绪队列中,其中,就绪状态包括:启动任务、恢复任务或任务等待的资源到达;
当创建的任务的状态更新为非就绪状态时,则将任务从所匹配的任务调度器的就绪队列中进行删除。
可选的,任务调度模块,用于当解除系统锁定并进行任务调度时,各任务调度器执行任务选择操作,获取调度器运行任务;
根据调度器运行任务确定系统当前运行任务。
可选的,任务调度模块,用于根据各任务调度器的优先级从当前级别的任务调度器的就绪队列中,按照预设条件进行任务的筛选,其中,实时任务调度器、截止期任务调度器、公平算法任务调度器以及IDLE任务调度器的优先级依次降低;
判断当前级别的任务调度器是否筛选到任务,若是,则将当前级别的任务调度器所选择的任务作为调度器运行任务,
否则,从低于当前级别的任务调度器中进行选择,获取调度器运行任务。
可选的,任务调度模块,用于当确定创建的任务的优先级发生改变时,对调度器运行任务进行更新。
本发明实施例所提供的任务调度装置可执行本发明任意实施例所提供的任务调度方法,具备执行方法相应的功能模块和有益效果。
实施例四
图6示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图6所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如任务调度方法。
在一些实施例中,任务调度方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的任务调度方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行任务调度方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (9)
1.一种任务调度方法,其特征在于,包括:
定义不同类型的任务调度器,所述任务调度器包括如下类型中的至少两种:实时任务调度器、截止期任务调度器、公平算法任务调度器以及IDLE任务调度器;
创建任务时,指定所述任务对应的任务调度器类型;
各所述任务调度器在满足预先定义的调度操作条件时,执行与调度操作条件匹配的任务调度操作;
其中,所述定义不同类型的任务调度器,包括:
根据指定类型定义各所述任务调度器;
定义所述任务调度器的所述调度操作条件,以及与所述调度操作条件匹配的所述任务调度操作的类型;
其中,所述任务调度操作的类型包括如下类型:进入就绪队列、从就绪队列中摘除、选择运行任务、释放CPU、获取CPU、时间片处理或改变任务优先级;
其中,所述调度操作条件包括:任务的状态变为就绪时、任务的状态变为非就绪时、在进行任务调度时、任务主动放弃CPU时、运行任务切走时、切入到运行任务时、进行tick通知时以及任务的优先级发生改变时;
其中,所述各所述任务调度器在满足预先定义的调度操作条件时,执行与调度操作条件匹配的任务调度操作,包括:
当解除系统锁定并进行任务调度时,各所述任务调度器执行任务选择操作,获取调度器运行任务;
根据所述调度器运行任务确定系统当前运行任务;
其中,根据所述调度器运行任务确定系统当前运行任务之后,还包括:
当确定系统当前运行任务按照时间片处理完成后,调用释放CPU接口;
通过释放CPU接口解除系统当前运行任务与指定CPU资源的分配关系;
将解除分配关系的指定CPU资源进行释放。
2.根据权利要求1所述的方法,其特征在于,所述定义不同类型的任务调度器之后,还包括:
获取任务调度器配置文件,其中,所述任务调度器配置文件中包含各任务调度器的初始化配置参数;
根据所述任务调度器配置文件对各所述任务调度器进行初始化。
3.根据权利要求1所述的方法,其特征在于,所述各所述任务调度器在满足预先定义的调度操作条件时,执行与调度操作条件匹配的任务调度操作,包括:
当创建的所述任务的状态更新为就绪状态时,将所述任务添加到所匹配的任务调度器的就绪队列中,其中,所述就绪状态包括:启动任务、恢复任务或任务等待的资源到达;
当创建的所述任务的状态更新为非就绪状态时,则将所述任务从所匹配的任务调度器的就绪队列中进行删除。
4.根据权利要求1所述的方法,其特征在于,所述各所述任务调度器执行任务选择操作,获取调度器运行任务,包括:
根据所述各任务调度器的优先级从当前级别的任务调度器的就绪队列中,按照预设条件进行任务的筛选,其中,所述实时任务调度器、所述截止期任务调度器、所述公平算法任务调度器以及IDLE任务调度器的优先级依次降低;
判断当前级别的任务调度器是否筛选到任务,若是,则将当前级别的任务调度器所选择的任务作为所述调度器运行任务,
否则,从低于当前级别的任务调度器中进行选择,获取所述调度器运行任务。
5.根据权利要求4所述的方法,其特征在于,所述各所述任务调度器在满足预先定义的调度操作条件时,执行与调度操作条件匹配的任务调度操作,包括:
当确定创建的所述任务的优先级发生改变时,对所述调度器运行任务进行更新。
6.一种任务调度装置,其特征在于,包括:
任务调度器定义模块,用于定义不同类型的任务调度器,所述任务调度器包括如下类型中的至少两种:实时任务调度器、截止期任务调度器、公平算法任务调度器以及IDLE任务调度器;
任务创建模块,用于创建任务时,指定所述任务对应的任务调度器类型;
任务调度模块,用于各所述任务调度器在满足预先定义的调度操作条件时,执行与调度操作条件匹配的任务调度操作;
其中,任务调度器定义模块,用于根据指定类型定义各所述任务调度器;
定义所述任务调度器的所述调度操作条件,以及与所述调度操作条件匹配的所述任务调度操作的类型;
其中,所述任务调度操作的类型包括如下类型:进入就绪队列、从就绪队列中摘除、选择运行任务、释放CPU、获取CPU、时间片处理或改变任务优先级;
其中,所述调度操作条件包括:任务的状态变为就绪时、任务的状态变为非就绪时、在进行任务调度时、任务主动放弃CPU时、运行任务切走时、切入到运行任务时、进行tick通知时以及任务的优先级发生改变时;
其中,任务调度模块,用于当解除系统锁定并进行任务调度时,各任务调度器执行任务选择操作,获取调度器运行任务;
根据所述调度器运行任务确定系统当前运行任务;
其中,根据所述调度器运行任务确定系统当前运行任务之后,任务调度装置还用于当确定系统当前运行任务按照时间片处理完成后,调用释放CPU接口;
通过释放CPU接口解除系统当前运行任务与指定CPU资源的分配关系;
将解除分配关系的指定CPU资源进行释放。
7.一种操作系统,所述操作系统上运行有多个虚拟机,所述虚拟机上运行实时或非实时任务,其特征在于,所述虚拟机中配置有如权利要求1至5任意一项所述的任务调度方法。
8.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210511130.6A CN114860403B (zh) | 2022-05-11 | 2022-05-11 | 一种任务调度方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210511130.6A CN114860403B (zh) | 2022-05-11 | 2022-05-11 | 一种任务调度方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114860403A CN114860403A (zh) | 2022-08-05 |
CN114860403B true CN114860403B (zh) | 2023-07-07 |
Family
ID=82636444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210511130.6A Active CN114860403B (zh) | 2022-05-11 | 2022-05-11 | 一种任务调度方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114860403B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2631255A1 (en) * | 2008-05-09 | 2009-11-09 | Ibm Canada Limited - Ibm Canada Limitee | Scalable scheduling of tasks in heterogeneous systems |
EP3799390A1 (en) * | 2018-06-25 | 2021-03-31 | Transwarp Technology (Shanghai) Co., Ltd. | Preemptive scheduling based resource sharing use method, system and |
CN113806924A (zh) * | 2021-08-27 | 2021-12-17 | 中国航空无线电电子研究所 | 一种面向分布式系统的任务可调度性验证方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1892625B1 (en) * | 2006-08-09 | 2018-07-11 | Red Bend Software | Finer grained operating system scheduling |
CN101290588B (zh) * | 2008-03-07 | 2010-06-16 | 重庆邮电大学 | 一种微嵌入式实时任务调度器及调度方法 |
US8381004B2 (en) * | 2010-05-26 | 2013-02-19 | International Business Machines Corporation | Optimizing energy consumption and application performance in a multi-core multi-threaded processor system |
US20150378782A1 (en) * | 2014-06-25 | 2015-12-31 | Unisys Corporation | Scheduling of tasks on idle processors without context switching |
US10545796B2 (en) * | 2017-05-04 | 2020-01-28 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a scheduler with preemptive termination of existing workloads to free resources for high priority items |
CN109842947B (zh) * | 2017-11-24 | 2021-01-08 | 中国科学院计算技术研究所 | 一种面向基站任务的调度方法和系统 |
CN110515710A (zh) * | 2019-08-06 | 2019-11-29 | 深圳市随手科技有限公司 | 异步任务调度方法、装置、计算机设备和存储介质 |
CN112486648A (zh) * | 2020-11-30 | 2021-03-12 | 北京百度网讯科技有限公司 | 任务调度方法、装置、系统、电子设备和存储介质 |
-
2022
- 2022-05-11 CN CN202210511130.6A patent/CN114860403B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2631255A1 (en) * | 2008-05-09 | 2009-11-09 | Ibm Canada Limited - Ibm Canada Limitee | Scalable scheduling of tasks in heterogeneous systems |
EP3799390A1 (en) * | 2018-06-25 | 2021-03-31 | Transwarp Technology (Shanghai) Co., Ltd. | Preemptive scheduling based resource sharing use method, system and |
CN113806924A (zh) * | 2021-08-27 | 2021-12-17 | 中国航空无线电电子研究所 | 一种面向分布式系统的任务可调度性验证方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114860403A (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110825535B (zh) | 一种作业调度的方法和系统 | |
US20150347186A1 (en) | Method and system for scheduling repetitive tasks in o(1) | |
CN111897637B (zh) | 作业调度方法、装置、主机及存储介质 | |
CN114461393A (zh) | 多任务调度方法、装置、电子设备、系统及自动驾驶车辆 | |
CN114968567A (zh) | 用于分配计算节点的计算资源的方法、装置和介质 | |
CN112860401B (zh) | 任务调度方法、装置、电子设备和存储介质 | |
CN113051064A (zh) | 任务调度方法、装置、设备及存储介质 | |
CN116661960A (zh) | 一种批量任务处理方法、装置、设备以及存储介质 | |
CN115168040A (zh) | 一种作业抢占调度方法、装置、设备和存储介质 | |
CN114579323A (zh) | 一种线程处理方法、装置、设备及介质 | |
CN113986497A (zh) | 基于多租户技术的队列调度方法、装置及系统 | |
CN114490048A (zh) | 任务执行方法、装置、电子设备及计算机存储介质 | |
CN114860403B (zh) | 一种任务调度方法、装置、设备和存储介质 | |
CN113032092B (zh) | 分布式计算方法、装置及平台 | |
CN114862223A (zh) | 一种机器人调度方法、装置、设备及存储介质 | |
CN115801687A (zh) | 一种流量均衡方法、装置、电子设备和存储介质 | |
CN114327897A (zh) | 一种资源分配方法、装置及电子设备 | |
CN114416349A (zh) | 资源分配方法、装置、设备、存储介质以及程序产品 | |
CN116893893B (zh) | 一种虚拟机调度方法、装置、电子设备及存储介质 | |
CN117519940A (zh) | 进程调度方法、装置、电子设备及存储介质 | |
CN117076138B (zh) | 面向体系仿真的资源跨平台集成和调度方法及装置 | |
CN115904550A (zh) | 服务请求处理方法、装置、电子设备和存储介质 | |
CN116471331A (zh) | 一种微服务流程的执行方法、装置、电子设备及存储介质 | |
CN115454660A (zh) | 一种任务管理方法、装置、电子设备及存储介质 | |
CN117667397A (zh) | 一种gpu资源调度方法、装置、电子设备及存储介质 |
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 |