CN113360254A - 任务调度方法及系统 - Google Patents
任务调度方法及系统 Download PDFInfo
- Publication number
- CN113360254A CN113360254A CN202010150940.4A CN202010150940A CN113360254A CN 113360254 A CN113360254 A CN 113360254A CN 202010150940 A CN202010150940 A CN 202010150940A CN 113360254 A CN113360254 A CN 113360254A
- Authority
- CN
- China
- Prior art keywords
- task
- executed
- queue
- candidate
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 239000000284 extract Substances 0.000 claims abstract description 11
- 238000012423 maintenance Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient 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
-
- 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
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种任务调度方法及系统,该方法包括:预先设置待执行队列及对应每种任务类型的候选队列;在接收到任务后,根据所述任务的类型将所述任务添加到对应所述类型的候选队列中的末尾;在满足执行条件时,将所述候选队列中的任务复制到所述待执行队列中,并保证所述待执行队列中对应每个候选队列的任务最多有一个;由空闲的执行体按照先进先出原则依序从所述待执行队列中提取任务作为待执行任务进行执行。利用本发明,可以保证任务调度的公平性和有效性,并使CPU资源得到了充分利用。
Description
技术领域
本发明涉及任务调度领域,具体涉及一种任务调度方法及系统。
背景技术
计算机科学和互联网应用中,很多场景需要进行任务调度。现有的任务调度方法,一般是采用简单的排队方法、或者流水线方法、或者优先级队列的方法,在针对没有等级差别的多任务调度应用中,无论采用现有哪种调度方法,都很难保证任务调度的公平性和有效性,经常会出现任务饥饿或CPU资源被闲置的情况。
发明内容
本发明实施例提供一种任务调度方法及系统,以解决现有的任务调度方案存在的上述问题。
为此,本发明提供如下技术方案:
一种任务调度方法,所述方法包括:
预先设置待执行队列及对应每种任务类型的候选队列;
接收任务并根据所述任务的类型将所述任务添加到对应所述类型的候选队列中的末尾;
在满足执行条件时,将所述候选队列中的任务复制到所述待执行队列中,并保证所述待执行队列中对应每个候选队列的任务最多有一个;
由空闲的执行体按照先进先出原则依序从所述待执行队列中提取任务作为待执行任务进行执行。
可选地,所述方法还包括:
空闲的执行体从所述待执行队列队头提取出待执行任务后,将所述待执行任务从其所在的候选队列中删除。
可选地,所述在满足执行条件时,将所述候选队列中的任务复制到所述待执行队列中包括:
将任务添加到候选队列的末尾后,如果所述候选队列的长度为1,则将所述任务复制到所述待执行队列的末尾;
将所述待执行任务从其所在的候选队列中删除后,如果所述待执行任务所在的候选队列不为空,则将所述待执行任务所在的候选队列中队头的任务复制到所述待执行队列的末尾。
可选地,每种任务类型对应一个或多个候选队列。
可选地,所述执行体包括以下任意一种或多种:进程、线程。
一种任务调度系统,所述系统包括:
设置模块,用于预先设置待执行队列及对应每种任务类型的候选队列,每种类型对应一个候选队列;
任务提交模块,用于接收任务并根据所述任务的类型将所述任务添加到对应所述类型的候选队列中的末尾;
调度模块,用于在满足执行条件时,将所述候选队列中的任务复制到所述待执行队列中,并保证所述待执行队列中对应每个候选队列的任务最多有一个;
所述执行体,用于在空闲时按照先进先出原则依序从所述待执行队列中提取任务作为待执行任务进行执行。
可选地,所述调度装置还包括:
任务维护模块,用于在空闲的执行体从所述待执行队列队头提取出待执行任务后,将所述待执行任务从其所在的候选队列中删除。
可选地,所述调度模块包括:
第一调度单元,用于在所述任务提交模块将任务添加到候选队列的末尾后,如果所述候选队列的长度为1,则将所述任务复制到所述待执行队列的末尾;
第二调度单元,用于在所述任务维护模块将所述待执行任务从其所在的候选队列中删除后,如果所述待执行任务所在的候选队列不为空,则将所述待执行任务所在的候选队列中队头的任务复制到所述待执行队列的末尾。
可选地,每种任务类型对应一个或多个候选队列。
可选地,所述执行体包括以下任意一种或多种:进程、线程。
一种电子设备,包括:一个或多个处理器、存储器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,以实现前面所述的方法。
一种可读存储介质,其上存储有指令,所述指令被执行以实现前面所述的方法。
本发明实施例提供的任务调度方法及系统,通过设置待执行队列及对应每种任务类型的候选队列,基于多个队列对不同类型的任务进行调度,控制所述待执行队列中对应每个候选队列的任务最多有一个,使得待执行队列长度可控,不会出现某种类型任务排队很多,其它类型任务都需要等它执行完才能被执行的情况,从而避免了响应时间的长尾问题,有效地保证了任务调度的公平性和有效性。而且,所有任务共享一组执行体,使执行体在任务之间得到更好的动态调配,使CPU资源得到了充分利用。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本发明实施例任务调度方法的流程图;
图2是本发明实施例中任务提交过程的流程图;
图3是本发明实施例中任务执行过程的流程图;
图4本发明实施例任务调度系统的一种结构框图;
图5根据一示例性实施例示出的一种用于任务调度方法的装置的框图;
图6本发明实施例中服务器的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
本发明实施例提供的任务调度方法及系统,预先设置待执行队列及对应每种任务类型的候选队列。在接收到任务后,根据所述任务的类型将其提交到相应的候选队列;在满足执行条件时,将所述候选队列中的任务复制到所述待执行队列中,并保证所述待执行队列中对应每个候选队列的任务最多有一个;由空闲的执行体按照先进先出原则依序执行所述待执行队列中的任务。
如图1所示,是本发明实施例任务调度方法的流程图,包括以下步骤:
步骤101,预先设置待执行队列及对应每种任务类型的候选队列。
也就是说,有几种类型的任务,就设置几个候选队列。任务类型的划分可以根据需要来设定,对此本发明实施例不做限定。
在实际应用中,每种任务类型可以对应一个候选队列。考虑到有些应用中,可能某些类型的任务量大、或者优先级较高,在这种情况下,还可以为该类型的任务设置两个或两个以上的候选队列。相应地,在接收到这种类型的任务后,可以根据对应该类型的候选队列中任务的多少、或者随机、或者按照一定的算法等方式来选择其中的一个候选队列来提交该任务。
在本发明实施例中,所有任务共享一个待执行队列和一组执行体,所述执行体可以是进程和/或线程。
步骤102,接收任务并根据所述任务的类型将所述任务添加到对应所述类型的候选队列中的末尾。
步骤103,在满足执行条件时,将所述候选队列中的任务复制到所述待执行队列中,并保证所述待执行队列中对应每个候选队列的任务最多有一个。
为了保证待执行队列中对应每个候选队列的任务最多有一个,针对每个候选队列,在将该候选队列中的任务作为待执行任务复制到待执行队列时,需要考虑是否满足执行条件,也就是说,在满足一定条件时,才会进行复制,否则只是独立地进行提交、执行相应的任务,即提交任务和执行任务是两个独立运行的过程。
步骤104,由空闲的执行体按照先进先出原则依序从所述待执行队列中提取任务作为待执行任务进行执行。
需要说明的是,在空闲的执行体从所述待执行队列队头提取出待执行任务后,还需要将所述待执行任务从其所在的候选队列中删除。
在本发明实施例中,对候选队列中的任务的调度即将任务从候选队列复制到待执行队列的过程需要根据任务提交到候选队列后、或者任务从候选队列删除后,候选队列中的任务数量来决定,具体有以下两种情况:
(1)向候选队列中添加任务时
具体地,将任务添加到候选队列的末尾后,如果所述候选队列的长度为1,则将所述任务复制到所述待执行队列的末尾;
(2)从候选队列中删除任务时
具体地,将所述待执行任务从其所在的候选队列中删除后,如果所述待执行任务所在的候选队列不为空,则将所述待执行任务所在的候选队列中队头的任务复制到所述待执行队列的末尾。
如图2所示,是本发明实施例中任务提交过程的流程图,包括以下步骤:
步骤201,接收任务。
步骤202,根据所述任务的类型将所述任务添加到对应所述类型的候选队列中的末尾。
步骤203,判断所述候选队列的长度是否为1。如果是,则执行步骤204;否则执行步骤205。
步骤204,将所述任务复制到待执行队列的末尾。
步骤205,任务提交结束。
如图3所示,是本发明实施例中任务执行过程的流程图,包括以下步骤:
步骤301,空闲的执行体从待执行队列的队头提取任务作为待执行任务。
步骤302,将所述待执行任务从其所在的候选队列中删除。
步骤303,判断所述待执行任务所在的候选队列是否为空。如果是,则执行步骤305;否则,执行步骤304。
步骤304,将所述待执行任务所在的候选队列中队头的任务复制到所述待执行队列的末尾。
步骤305,所述执行体执行所述待执行任务,并在执行完成后,返回空闲状态。
需要说明的是,为了避免多个线程对同一任务的操作产生冲突,可以通过加锁机制来避免任务提交阶段和任务执行阶段的冲突。具体地,在每个候选队列和待执行队列上设置一把锁。加锁及解锁的时间点如下:
提交任务阶段:
1)选定待添加任务的候选队列之后,加锁该候选队列;
2)将任务放入候选队列末尾之后,如果该候选队列长度为1,则加锁待执行队列;将所述任务复制到待执行队列末尾后,再解锁待执行队列;
3)任务提交完成后,解锁该候选队列。
任务执行阶段:
1)空闲执行体加锁待执行队列,取走队头的任务作为待执行任务,并立刻解锁待执行队列;
2)加锁所述待执行任务所在的候选队列;
3)将所述待执行任务从候选队列中删除,如果此时候选队列长度大于或等于1,则加锁待执行队列,将所述候选队列中队头任务复制到待执行队列末尾,然后再解锁待执行队列。
4)解锁所述候选队列。
本发明实施例提供的任务调度方法,通过设置待执行队列及对应每种任务类型的候选队列,基于多个队列对不同类型的任务进行调度,控制所述待执行队列中对应每个候选队列的任务最多有一个,使得待执行队列长度可控,不会出现某种类型任务排队很多,其它类型任务都需要等它执行完才能被执行的情况,从而避免了响应时间的长尾问题,有效地保证了任务调度的公平性和有效性。而且,所有任务共享一组执行体,使执行体在任务之间得到更好的动态调配,使CPU资源得到了充分利用。
相应地,本发明实施例还提供一种任务调度系统,如图4所示,是该系统的一种结构框图。
在该实施例中,所述系统包括以下各模块:
设置模块401,用于预先设置待执行队列及对应每种任务类型的候选队列,每种类型对应一个候选队列;
任务提交模块402,用接收任务并根据所述任务的类型将所述任务添加到对应所述类型的候选队列中的末尾;
调度模块403,用于在满足执行条件时,将所述候选队列中的任务复制到所述待执行队列中,并保证所述待执行队列中对应每个候选队列的任务最多有一个;
执行体404,用于在空闲时按照先进先出原则依序从所述待执行队列中提取任务作为待执行任务进行执行。
进一步地,如图4所示,所述调度装置还包括:任务维护模块405,用于在空闲的执行体从所述待执行队列队头提取出待执行任务后,将所述待执行任务从其所在的候选队列中删除。
需要说明的是,在实际应用中,每种任务类型可以对应一个或多个候选队列;任务类型的划分可以根据需要来设定,对此本发明实施例不做限定。相应地,在某个任务类型对应多个候选队列的情况下,在任务提交模块402接收到该类型的任务后,可以根据对应该类型的候选队列中任务的多少、或者随机、或者按照一定的算法等方式来选择其中的一个候选队列来提交该任务。
在本发明实施例中,所有任务共享一个待执行队列和一组执行体,所述执行体可以是进程和/或线程。
为了保证待执行队列中对应每个候选队列的任务最多有一个,针对每个候选队列,在将该候选队列中的任务作为待执行任务复制到待执行队列时,需要考虑是否满足执行条件。在本发明实施例中,对候选队列中的任务的调度有两种情况,分别为:向候选队列中添加任务时、以及从候选队列中删除任务时。
相应地,调度模块404可以包括第一调度单元和第二调度单元,分别完成上述两种情况下的任务调度。其中:
第一调度单元,用于在所述任务提交模块402将任务添加到候选队列的末尾后,如果所述候选队列的长度为1,则将所述任务复制到所述待执行队列的末尾;
第二调度单元,用于在所述任务维护模块405将所述待执行任务从其所在的候选队列中删除后,如果所述待执行任务所在的候选队列不为空,则将所述待执行任务所在的候选队列中队头的任务复制到所述待执行队列的末尾。
在本发明实施例中,所述空闲的执行体需要等待所述第二调度单元完成上述调度任务后,才会执行所述任务。在任务执行完成后,返回空闲状态。
另外,需要说明的是,上述各模块只是从功能上划分的不同单元,其中一些模块可以是独立存在于不同的物理实体,也可以是集成在同一物理实体上,对此本发明实施例不做限定。
本发明实施例提供的任务调度系统,通过设置待执行队列及对应每种任务类型的候选队列,基于多个队列对不同类型的任务进行调度,控制所述待执行队列中对应每个候选队列的任务最多有一个,使得待执行队列长度可控,不会出现某种类型任务排队很多,其它类型任务都需要等它执行完才能被执行的情况,从而避免了响应时间的长尾问题,有效地保证了任务调度的公平性和有效性。而且,所有任务共享一组执行体,使执行体在任务之间得到更好的动态调配,使CPU资源得到了充分利用。
图5是根据一示例性实施例示出的一种用于任务调度方法的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图5,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理部件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类别的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类别的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电力组件806为装置800的各种组件提供电力。电力组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信部件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述任务调度方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本发明还提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行上述本发明方法实施例中的全部或部分步骤。
图6是本发明实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种任务调度方法,其特征在于,所述方法包括:
预先设置待执行队列及对应每种任务类型的候选队列;
接收任务并根据所述任务的类型将所述任务添加到对应所述类型的候选队列中的末尾;
在满足执行条件时,将所述候选队列中的任务复制到所述待执行队列中,并保证所述待执行队列中对应每个候选队列的任务最多有一个;
由空闲的执行体按照先进先出原则依序从所述待执行队列中提取任务作为待执行任务进行执行。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
空闲的执行体从所述待执行队列队头提取出待执行任务后,将所述待执行任务从其所在的候选队列中删除。
3.根据权利要求2所述的方法,其特征在于,所述在满足执行条件时,将所述候选队列中的任务复制到所述待执行队列中包括:
将任务添加到候选队列的末尾后,如果所述候选队列的长度为1,则将所述任务复制到所述待执行队列的末尾;
将所述待执行任务从其所在的候选队列中删除后,如果所述待执行任务所在的候选队列不为空,则将所述待执行任务所在的候选队列中队头的任务复制到所述待执行队列的末尾。
4.根据权利要求1至3任一项所述的方法,其特征在于,每种任务类型对应一个或多个候选队列。
5.一种任务调度系统,其特征在于,所述系统包括:
设置模块,用于预先设置待执行队列及对应每种任务类型的候选队列,每种类型对应一个候选队列;
任务提交模块,用于接收任务并根据所述任务的类型将所述任务添加到对应所述类型的候选队列中的末尾;
调度模块,用于在满足执行条件时,将所述候选队列中的任务复制到所述待执行队列中,并保证所述待执行队列中对应每个候选队列的任务最多有一个;
所述执行体,用于在空闲时按照先进先出原则依序从所述待执行队列中提取任务作为待执行任务进行执行。
6.根据权利要求5所述的系统,其特征在于,所述调度装置还包括:
任务维护模块,用于在空闲的执行体从所述待执行队列队头提取出待执行任务后,将所述待执行任务从其所在的候选队列中删除。
7.根据权利要求6所述的系统,其特征在于,所述调度模块包括:
第一调度单元,用于在所述任务提交模块将任务添加到候选队列的末尾后,如果所述候选队列的长度为1,则将所述任务复制到所述待执行队列的末尾;
第二调度单元,用于在所述任务维护模块将所述待执行任务从其所在的候选队列中删除后,如果所述待执行任务所在的候选队列不为空,则将所述待执行任务所在的候选队列中队头的任务复制到所述待执行队列的末尾。
8.根据权利要求5至7任一项所述的系统,其特征在于,每种任务类型对应一个或多个候选队列。
9.一种电子设备,其特征在于,包括:一个或多个处理器、存储器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,以实现如权利要求1至4任一项所述的方法。
10.一种可读存储介质,其上存储有指令,所述指令被执行以实现如权利要求1至4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010150940.4A CN113360254A (zh) | 2020-03-06 | 2020-03-06 | 任务调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010150940.4A CN113360254A (zh) | 2020-03-06 | 2020-03-06 | 任务调度方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113360254A true CN113360254A (zh) | 2021-09-07 |
Family
ID=77524039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010150940.4A Pending CN113360254A (zh) | 2020-03-06 | 2020-03-06 | 任务调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113360254A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113971519A (zh) * | 2021-10-25 | 2022-01-25 | 上海擎朗智能科技有限公司 | 一种机器人调度方法、装置、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778011A (zh) * | 2014-01-21 | 2014-05-07 | 国家电网公司 | 一种电力系统中服务平台任务公平随机调度方法 |
CN107450971A (zh) * | 2017-06-29 | 2017-12-08 | 北京五八信息技术有限公司 | 任务处理方法及装置 |
CN107622336A (zh) * | 2016-07-15 | 2018-01-23 | 阿里巴巴集团控股有限公司 | 任务的推送方法、装置及系统 |
CN108255600A (zh) * | 2016-12-29 | 2018-07-06 | 乐视汽车(北京)有限公司 | 一种用于数据处理的方法、设备及电子设备 |
CN110187957A (zh) * | 2019-05-27 | 2019-08-30 | 北京奇艺世纪科技有限公司 | 一种下载任务的排队方法、装置及电子设备 |
US20190356611A1 (en) * | 2019-04-26 | 2019-11-21 | Intel Corporation | Shared resources for multiple communication traffics |
-
2020
- 2020-03-06 CN CN202010150940.4A patent/CN113360254A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778011A (zh) * | 2014-01-21 | 2014-05-07 | 国家电网公司 | 一种电力系统中服务平台任务公平随机调度方法 |
CN107622336A (zh) * | 2016-07-15 | 2018-01-23 | 阿里巴巴集团控股有限公司 | 任务的推送方法、装置及系统 |
CN108255600A (zh) * | 2016-12-29 | 2018-07-06 | 乐视汽车(北京)有限公司 | 一种用于数据处理的方法、设备及电子设备 |
CN107450971A (zh) * | 2017-06-29 | 2017-12-08 | 北京五八信息技术有限公司 | 任务处理方法及装置 |
US20190356611A1 (en) * | 2019-04-26 | 2019-11-21 | Intel Corporation | Shared resources for multiple communication traffics |
CN110187957A (zh) * | 2019-05-27 | 2019-08-30 | 北京奇艺世纪科技有限公司 | 一种下载任务的排队方法、装置及电子设备 |
Non-Patent Citations (1)
Title |
---|
王荣丽;侯秀萍;: "基于优先级权重的Hadoop YARN调度算法", 吉林大学学报(信息科学版), no. 04, 15 July 2017 (2017-07-15), pages 84 - 89 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113971519A (zh) * | 2021-10-25 | 2022-01-25 | 上海擎朗智能科技有限公司 | 一种机器人调度方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105955765B (zh) | 应用预加载方法及装置 | |
CN105955766B (zh) | 应用预加载方法及装置 | |
US9588805B2 (en) | Method and terminal device for controlling background application | |
CN105930213B (zh) | 应用运行方法及装置 | |
CN111240817B (zh) | 资源调度方法、资源调度装置及存储介质 | |
CN111966410B (zh) | 启动处理方法、装置、电子设备及存储介质 | |
CN115576645B (zh) | 一种虚拟处理器调度方法、装置、存储介质及电子设备 | |
EP3236355A1 (en) | Method and apparatus for managing task of instant messaging application | |
CN113703937A (zh) | 动画切换方法及装置、存储介质 | |
CN114138439A (zh) | 任务调度方法及装置、电子设备和存储介质 | |
CN113420338A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN117193963A (zh) | 基于函数特征的服务器无感知计算调度方法和装置 | |
CN108958911B (zh) | 进程的控制方法及装置 | |
CN113360254A (zh) | 任务调度方法及系统 | |
CN110968523A (zh) | 内存碎片整理的方法和装置 | |
CN116048757A (zh) | 任务处理方法、装置、电子设备和存储介质 | |
CN113268325A (zh) | 一种调度任务的方法、装置及存储介质 | |
CN113132263B (zh) | 内核处理器调度方法、内核处理器调度装置及存储介质 | |
CN113778696A (zh) | 线程控制方法、线程控制装置及存储介质 | |
CN112286687A (zh) | 一种资源处理方法及装置 | |
CN112966147A (zh) | 文件访问方法及装置、电子设备和存储介质 | |
CN108881332B (zh) | 一种预下载方法和装置 | |
CN111984423A (zh) | 一种运行深度学习模型的方法、装置及介质 | |
CN113392055B (zh) | 文件传输方法、文件传输装置及存储介质 | |
CN117453435B (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 |