CN116700937B - 任务调用方法、设备及计算机可读存储介质 - Google Patents
任务调用方法、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116700937B CN116700937B CN202310982369.6A CN202310982369A CN116700937B CN 116700937 B CN116700937 B CN 116700937B CN 202310982369 A CN202310982369 A CN 202310982369A CN 116700937 B CN116700937 B CN 116700937B
- Authority
- CN
- China
- Prior art keywords
- task
- time length
- duration
- target
- calling
- 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 52
- 230000001174 ascending effect Effects 0.000 claims description 7
- 238000012216 screening Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 12
- 238000012545 processing Methods 0.000 abstract description 8
- 230000001960 triggered effect Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 239000000725 suspension Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
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
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- 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
- 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
-
- 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)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种任务调用方法、设备及计算机可读存储介质,所述任务调用方法包括:获取系统当前的剩余任务时长以及所述系统的任务需求类型;根据所述剩余任务时长和所述任务需求类型,基于当前任务池选取目标任务;调用并执行所述目标任务。通过上述方法,最大程度上避免任务处理过程中,因任务分配不合理,导致任务在处理过程中剩余分配的系统资源耗尽,触发任务被系统挂起的情况,提升任务处理的效率。
Description
技术领域
本发明涉及软件领域,尤其涉及任务调用方法、设备及计算机可读存储介质。
背景技术
线程池是一种线程使用模式,可用于安卓系统线程的调度。
但是当安卓系统使用在具备硬件设备的嵌入式环境中,线程池由于无法预判下一个任务需要执行的时长,通常会导致在资源不足时开启一个占用资源较大的线程,与此同时,由于CPU的时间片性质,当一个线程在规定的时间片内无法完成时,系统会将其挂起,并在下一次时间片分配时进行恢复执行。这一项挂起恢复的动作,需要保存线程执行在挂起前的执行现场,并在下一次时间片获得时对保存的数据进行现场恢复,这往往会导致嵌入式系统中硬件资源的损耗。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种任务调用方法、设备及计算机可读存储介质,旨在解决资源紧缺的嵌入式环境中,挂起恢复的动作导致嵌入式系统中硬件资源的损耗的技术问题。
为实现上述目的,本发明提供一种任务调用方法,所述任务调用方法包括以下步骤:
获取系统当前的剩余任务时长以及所述系统的任务需求类型;
根据所述剩余任务时长和所述任务需求类型,基于当前任务池选取目标任务;
调用并执行所述目标任务。
可选地,所述根据所述剩余任务时长和所述任务需求类型,基于当前任务池选取目标任务的步骤包括:
获取所述任务池中每一任务对应的预估执行时长;
当所述任务需求类型为最大任务类型时,基于所述每一任务对应的预估执行时长,筛选出所述预估执行时长小于所述剩余任务时长的初始目标任务;
基于所述初始目标任务,选取所述预估执行时长最大的任务作为所述目标任务。
可选地,所述获取所述任务池中每一任务对应的预估执行时长的步骤之后,还包括:
当所述任务需求类型为最多任务类型时,基于所述每一任务对应的预估执行时长,对所述每一任务进行升序排列;
基于所述升序排列的结果,按次累加所述任务的预估执行时长,直至累加的总预估执行时长为小于所述剩余任务时长的最大值;
将所述总预估执行时长包含对应的任务,作为所述目标任务。
可选地,所述获取所述任务池中每一任务对应的预估执行时长的步骤之前,还包括:
获取所述任务对应的时间复杂度;
基于所述时间复杂度,确定所述任务的预估执行时长。
可选地,所述获取系统当前的剩余任务时长以及所述系统的任务需求类型的步骤之前,还包括:
获取所述系统当前的剩余资源量;
基于所述剩余资源量,确定所述剩余任务时长。
可选地,所述调用并执行所述目标任务的步骤之后,还包括:
获取所述目标任务的类别标识;
基于所述类别标识,判断所述目标任务是否为可复用任务;
将所述可复用任务,添加到所述任务池的已执行列表当中;
当所述可复用任务需被再次调用时,重置所述可复用任务的状态,并将所述可复用任务添加至所述任务池的待执行列表当中。
可选地,所述当所述可复用任务需被再次调用时,重置所述可复用任务的状态,并将所述可复用任务添加至所述任务池的待执行列表当中的步骤之前,还包括:
获取所述可复用任务的实际执行时长;
基于所述实际执行时间,修正所述可复用任务的预估执行时长。
可选地,所述根据所述剩余任务时长和所述任务需求类型,基于当前任务池选取目标任务的步骤之后,还包括:
当所述目标任务的调用时长超过预设时长时,将当前所述目标任务撤销;
执行所述根据所述剩余任务时长和所述任务需求类型,基于当前任务池选取目标任务的步骤,以确定新的目标任务。
此外,为实现上述目的,本发明还提供一种任务调用设备,所述任务调用设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的任务调用程序,所述任务调用程序配置为实现如上所述的任务调用方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有任务调用程序,所述任务调用程序被处理器执行时实现如上所述的任务调用方法的步骤。
本发明实施例通过提供一种任务调用方法、设备及计算机可读存储介质,通过获取系统当前的剩余任务时长以及系统的任务需求类型,根据剩余任务时长和任务需求类型,从当前任务池中的若干任务中选取目标任务,最后调用并执行目标任务类型。通过上述方法,最大程度上避免在任务处理过程中,因任务分配不合理,导致任务在处理过程中分配的系统资源耗尽触发任务被系统挂起的情况,以此提升任务处理的效率。
附图说明
图1为本发明任务调用方法第一实施例的流程示意图;
图2为本发明任务调用方法第实施例的流程示意图;
图3为本发明任务池系统的分布参考图;
图4为本发明第二实施例中任务单元设计示意图;
图5为本发明第二实施例整体流程执行示意图;
图6是本发明实施例方案涉及的硬件运行环境的终端结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
线程池是一种线程使用模式,可用于安卓系统线程的调度。
但是当安卓系统使用在具备硬件设备的嵌入式环境中,线程池由于无法预判下一个任务需要执行的时长,通常会导致在资源不足时开启一个占用资源较大的线程,与此同时,由于CPU的时间片性质,当一个线程在规定的时间片内无法完成时,系统会将其挂起,并在下一次时间片分配时进行恢复执行。这一项挂起恢复的动作,需要保存线程执行在挂起前的执行现场,并在下一次时间片获得时对保存的数据进行现场恢复,这往往会导致嵌入式系统中硬件资源的损耗。
为解决上述技术问题,本方案设计的任务池系统,任务池为待执行的代码单元构成的集合,任务池中的每个任务单元通常用于完成一项特定或独立的逻辑任务而被提取出来单独编写,并放置在任务池中待执行。任务池系统包括调用管理器和任务池两部分,其中,调用管理器不仅仅用于执行任务,也可以根据系统当前的资源余量使用特定算法对下一个任务进行调度,任务池中的任务单元则除了需要执行的任务代码之外,还新增了一个耗时预估函数。任务池的编写者除了进行任务逻辑的编写之外,还需要为任务设置可复用标识,通过可复用标识来区分可复用任务与不可复用任务。调度管理器通过获取系统当前的剩余任务时长以及系统的任务需求类型,根据剩余任务时长和任务需求类型,从当前任务池中的若干任务中选取目标任务,最后调用并执行目标任务类型。
以下,通过具体示例性方案对本发明权利要求要求保护的内容,进行解释说明,以便本领域技术人员更好地理解本发明权利要求的保护范围。可以理解的是,以下示例性方案不对本发明的保护范围进行限定,仅用于解释本发明。
本发明实施例提供了一种任务调用方法,参照图1,图1为本发明一种任务调用方法第一实施例的流程示意图。
本实施例中,所述任务调用方法包括:
步骤S10、获取系统当前的剩余任务时长以及所述系统的任务需求类型。
在本实施例中,本发明主要应用的场景为硬件资源紧缺嵌入式环境(如一些内存资源较少的单片机等),或其他CPU资源较为紧缺的场景中,本发明提供一种任务池系统,任务池为待执行的代码单元构成的集合,任务池中的每个任务单元通常用于完成一项特定或独立的逻辑任务而被提取出来单独编写,并放置在任务池中待执行。参照图3,任务池系统包括调用管理器和任务池两部分,其中,调用管理器不仅仅用于执行任务,也可以根据系统当前的资源余量使用特定算法对下一个任务进行调度。可选地,调度管理器获取当前系统的剩余资源量对应的剩余任务时长,即当前系统的资源量可以连续执行多少毫秒的任务而不被挂起,以及系统当前所需的任务需求类型,以便通过剩余任务时长和任务需求类型,来选择执行哪一种任务算法。
需要说明的是,一般情况下,系统的资源量通常可用时间片来表示,时间片的大小,也代表着系统当前可执行的任务的时长,也即剩余任务时长,例如,系统当前的剩余资源量为100ms,则代表系统当前可连续执行100ms的任务,且使得任务不被挂起,因此,在选择待执行的目标任务时,就要选择预估执行时长小于100ms的任务作为目标任务。
此外,系统当前对应的任务需求类型是指,当前系统需要执行哪种任务类型,这里可以借助任务的特征,如时间复杂度,又或是任务函数等来进行判断,可选地,将任务需求类型分为最大任务类型和最多任务类型,任务需求类型不同,选取执行的任务算法也不相同,即选择目标任务的标准也不同。其中,最大任务类型代表需要从任务池中选取一个预估任务时长小于剩余任务执行时长的任务,作为目标任务,而最多任务时长则表示,从任务池中选取数量最多的目标任务,并且这些目标任务累加起来的总预设时长小于剩余任务时长。
在本实施例中,通过获取系统当前的剩余任务时长以及对应的任务需求类型,以此为基础,以便后续通过这些信息来执行目标任务的选取工作,有利于在系统资源紧张的场景中,减少资源的损耗。
步骤S20、根据所述剩余任务时长和所述任务需求类型,基于当前任务池选取目标任务。
在本实施例中,通过此前已经确认的剩余任务时长以及任务需求类型,来判断执行哪一种特定算法,并基于对应的算法从任务池中选取目标任务。若当前任务需求类型为最大任务类型时,则需要执行最大任务算法,即从任务池中选取一个预估任务时长小于剩余任务执行时长的任务作为目标任务。若当前任务需求类型为最多任务类型时,则需要执行最大任务算法,即从任务池中选取预估执行时长小于剩余任务时长的最多任务作为目标任务。
为了能够获取任务的预估执行时长,任务池的编写者除了进行任务逻辑的编写之外,还需要提供该任务运行时间的预估结果。可选地,在任务池的任务单元中新增了一个耗时预估函数,借助耗时预估函数来对任务池中的任务可能执行的时间进行预估,由于任务池中的每一个任务都是由编程人员根据任务逻辑进行编写的,所以每一任务的时间复杂度是可以预先得知的,时间复杂度可以定性描述一个算法的运行时间,通过时间复杂度可以初步估算任务可能的执行时长。可选地,为了保证预估时长的准确性的最大化,可以借助卷积神经网络,来执行相应的预估函数,通过已完成任务的任务类型特征、完成已完成任务时为其分配的系统资源以及完成已完成任务实际消耗的时长,来进行训练,利用训练后的神经网络根据时间复杂度来进一步预估同类型的任务可能的预估执行时长。
在对任务池中包含的任务进行时长预估后,就需根据任务需求类型来筛选出目标任务。当任务需求类型为最大任务类型时,例如背包任务等,则以剩余任务时长为准线,从任务池中初步筛选出预估执行时长小于剩余任务时长的所有任务,然后基于筛选出来的初始目标任务,选取其中预估执行时长最大的初始目标任务作为目标任务。
可选地,当任务需求类型为最多任务类型时,例如排队任务等,基于任务池中每一任务的预估执行时长,对任务池中的任务进行升序排列,随后从第一个任务开始,对预估时长进行按次累加,直至累加的总预估时长为小于剩余任务时长的最大值,然后将总预估时长包含的多个任务,作为目标任务。
需要说明的是,这里考虑到预估时长的不准确性,所以在选取目标任务时,仅仅选取预估时长小于剩余任务时长的任务,排除预估时长恰好等于或大于剩余任务时长的情况,避免目标任务在实际执行的过程中,其真实执行时长超出系统的剩余任务时长,造成目标任务被系统挂起的情况。
可选地,目标任务类型的选取可以根据系统实际可能执行的任务类型进行设定,对此不做过多限定。
在本实施例中,通过根据不同的任务需求类型,以及系统当前的剩余任务时长,来实行不同的选取策略,选取对应的目标任务,能够最大程度避免任务被挂起,减少任务上下切换的开销,同时又能尽可能执行到最耗时的任务或者最多数量的任务,减少资源的消耗。
步骤S30、调用并执行所述目标任务。
在本实施例中,参考图3,在选取了目标任务之后,由调度管理器来进行目标任务的调用和执行,调度管理器包括任务读取单元和任务执行单元,任务读取单元用于从任务池中读取被选中的目标任务,读取到的目标任务由任务执行单元获取并执行,任务执行单元能够执行多种类型的任务单元,运行任务单元中的run函数,并且负责输出具体的结果,以完成系统调用任务的任务需求。此外,任务执行单元除了执行任务之外,还可以基于已执行任务的任务标识来判断其是否为可复用的任务类型,并将可复用的任务重新返回任务池中。
可选地,当面对硬件资源较丰富的使用场景(比如智能手机)时,调度管理器可以忽略任务单元的预估时间值,按照默认顺序执行任务即可,为了便于分别当前场景是否为资源紧缺的场景,可以预先设定一个资源量阈值,采用定时统计获取系统剩余资源量,或在一次任务执行完成后获取系统剩余资源量的方式,将剩余资源量与资源量阈值进行比较,若当前系统的资源小于资源量阈值,则判定当前系统可用的资源较少,不足以满足按照默认顺序执行任务的条件,此时就执行本发明提供的任务调用方法。
在本实施例中,通过根据不同的任务需求类型,以及系统当前的剩余任务时长,来实行不同的选取策略,并借助资源量阈值来判断当前是否处于资源紧缺的场景,以此减少在面对资源紧缺场景下的资源消耗。
进一步的,参照图2,本发明任务调用方法的第二实施例,基于图2所示的实施例,在步骤S30之后,还包括:
步骤S40、获取所述目标任务的类别标识。
步骤S50、基于所述类别标识,判断所述目标任务是否为可复用任务。
步骤S60、将所述可复用任务,添加到所述任务池的已执行列表当中。
步骤S70、当所述可复用任务需被再次调用时,重置所述可复用任务的状态,并将所述可复用任务添加至所述任务池的待执行列表当中。
在本实施例中,被执行的任务还分为可复用任务以及不可复用的任务类型,可复用任务需要再次放回任务池中,以便下次调用。参照图4,任务池中的每一个任务单元在被编程人员编写时,其编写逻辑如图4所示,每个任务单元除了任务本身的执行逻辑“-voidrun()”之外,还需要实现一个预估任务执行时间的函数“-int runningTimes”,以及一个标识是否可复用的标识位“-boolean canReuse”,以此来判断该任务单元是否为可复用任务,true表示该任务为可复用任务,false则表示该单元为不可复用任务。参照图3,任务池自身维护两个执行列表,一个为待执行列表,一个为已执行列表,待执行列表当中存放的即将被调用的任务,已执行列表中存放已经执行过的可复用任务。进一步地,当执行过的目标任务为可复用任务时,任务执行单元需要将其再次返回任务池的已执行列表当中,而当该目标任务需要再次被调用时,需要重置该任务的状态,即将其状态重新设置为“未执行”,并将其已执行列表中调回待执行列表当中。不可复用的任务在执行之后会直接被撤销,不会再出现在任务池或系统当中。
需要说明的是,在重置目标任务的状态之前,还需要修正该单元的预估执行时长。由于已执行列表当中的任务单元都是此前已经被调用过的任务单元,在被调用执行时,其实际的执行时长是容易被获取的,考虑到预估执行时长在被预估时,并不能完全考虑到实际情况中可能存在的波动影响因素,导致预估执行时长并不完全准确,因此,通过实际执行时长来修正预估时长是可行且合理的。示例性的,一个跨网络调用的任务执行之前,需先预估网络访问的大约时间,由于网络访问的延迟,抖动等因素,会导致这里做不到非常准确,只能是力求估算一个尽可能接近的预估值,预估执行时长100毫秒,但是该任务的实际执行为110毫秒,则调度管理器可以认为当前运行环境相对于理想状态有10毫秒左右的延迟,调度管理器引入调节因子对预估值进行增加或减少的调整,调度器可以根据这个差距为其修正预估值为110毫秒。此过程可以逐步提高在当前运行环境下预估时间的准确性。
进一步地,当目标任务被调用时,可能会因为一些随机不可抗因素导致其始终无法被调用成功,如果没有合理的调度规则,可能会造成任务调用的卡顿,即调度管理器一直处于调用目标任务的状态,从而使得整个任务的执行进程都停滞不前。为了避免以上情况,可以预先设置调用的预设时长,当目标任务无法再预设时长内被成功调用,就将该目标任务撤销,重新执行步骤S10,再次确定新的目标任务。可选地,预设时长可由编程人员根据方案的实际应用需求进行设置。
为了便于理解本发明的整体执行流程,以下通过一具体流程图进行说明明,参照图5,首先获取系统当前剩余资源量为x以及系统所要执行的任务需求类型,通过任务需求类型来确定使用何种特定算法,当任务需求类型为最大任务类型时,执行最大任务算法,从任务池中获取预估执行时长最大且小于x的一个任务,作为目标任务,而当任务需求类型为最多任务类型时,执行最多任务算法,从任务池中选取预估执行时长之和小于x的最多任务,作为目标任务,调用并执行目标任务,在执行完成之后,将可复用标识为true的任务返回任务池的已执行列表当中。
在本实施例中,任务池通过使用两个列表来对任务进行分类管理,使得任务的调用执行更加高效,不容易混乱。对于对任务单元设置可复用标识,便于将可复用类型的任务回收调用。通过任务的实际执行时长来修正预估时长,可以提升时长预估的合理性,便于准确筛选出合理的目标任务。而调用预设时长的设置,可以防止系统因无法调用目标任务导致系统进入“死机”的状态,完善了任务调度的规则。
参照图6,图6为本发明实施例方案涉及的硬件运行环境的设备结构示意图。
如图6所示,该设备可以包括:处理器1001,例如中央处理器(Central ProcessingUnit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图6中示出的结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图6所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及任务调用程序。
在图6所示的设备中,网络接口1004主要用于与其他设备进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明设备中的处理器1001、存储器1005可以设置在设备中,所述设备通过处理器1001调用存储器1005中存储的任务调用程序,并执行以下步骤:
获取系统当前的剩余任务时长以及所述系统的任务需求类型;
根据所述剩余任务时长和所述任务需求类型,基于当前任务池选取目标任务;
调用并执行所述目标任务。
进一步地,所述设备通过处理器1001调用存储器1005中存储的任务调用程序,还执行以下步骤:
获取所述任务池中每一任务对应的预估执行时长;
当所述任务需求类型为最大任务类型时,基于所述每一任务对应的预估执行时长,筛选出所述预估执行时长小于所述剩余任务时长的初始目标任务;
基于所述初始目标任务,选取所述预估执行时长最大的任务作为所述目标任务。
进一步地,所述设备通过处理器1001调用存储器1005中存储的任务调用程序,还执行以下步骤:
当所述任务需求类型为最多任务类型时,基于所述每一任务对应的预估执行时长,对所述每一任务进行升序排列;
基于所述升序排列的结果,按次累加所述任务的预估执行时长,直至累加的总预估执行时长为小于所述剩余任务时长的最大值;
将所述总预估执行时长包含对应的任务,作为所述目标任务。
进一步地,所述设备通过处理器1001调用存储器1005中存储的任务调用程序,还执行以下步骤:
获取所述任务对应的时间复杂度;
基于所述时间复杂度,确定所述任务的预估执行时长。
进一步地,所述设备通过处理器1001调用存储器1005中存储的任务调用程序,还执行以下步骤:
获取所述系统当前的剩余资源量;
基于所述剩余资源量,确定所述剩余任务时长。
进一步地,所述设备通过处理器1001调用存储器1005中存储的任务调用程序,还执行以下步骤:
获取所述目标任务的类别标识;
基于所述类别标识,判断所述目标任务是否为可复用任务;
将所述可复用任务,添加到所述任务池的已执行列表当中;
当所述可复用任务需被再次调用时,重置所述可复用任务的状态,并将所述可复用任务添加至所述任务池的待执行列表当中。
进一步地,所述设备通过处理器1001调用存储器1005中存储的任务调用程序,还执行以下步骤:
获取所述可复用任务的实际执行时长;
基于所述实际执行时间,修正所述可复用任务的预估执行时长。
进一步地,所述设备通过处理器1001调用存储器1005中存储的任务调用程序,还执行以下步骤:
当所述目标任务的调用时长超过预设时长时,将当前所述目标任务撤销;
执行所述根据所述剩余任务时长和所述任务需求类型,基于当前任务池选取目标任务的步骤,以确定新的目标任务。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还 包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、 方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述 实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通 过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体 现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种任务调用方法,其特征在于,所述任务调用方法包括以下步骤:
获取系统当前的剩余任务时长、所述系统的任务需求类型以及任务池中每一任务对应的预估执行时长;
当所述任务需求类型为最多任务类型时,基于所述每一任务对应的预估执行时长,对所述每一任务进行升序排列;
基于所述升序排列的结果,按次累加所述任务的预估执行时长,直至累加的总预估执行时长为小于所述剩余任务时长的最大值;
将所述总预估执行时长包含对应的任务,作为目标任务;
调用并执行所述目标任务;
获取所述目标任务的是否可复用标识位-boolean canReuse,若所述是否可复用标识位为true,则判定所述目标任务为可复用任务;
获取所述可复用任务的实际执行时长,并基于所述实际执行时间,引入调节因子修正所述可复用任务的预估执行时长;
将所述可复用任务添加到所述任务池的已执行列表当中;
当所述可复用任务需被再次调用时,重置所述可复用任务的状态,并将所述可复用任务添加至所述任务池的待执行列表当中。
2.如权利要求1所述的任务调用方法,其特征在于,所述获取系统当前的剩余任务时长、所述系统的任务需求类型以及任务池中每一任务对应的预估执行时长的步骤之后,还包括:
当所述任务需求类型为最大任务类型时,基于所述每一任务对应的预估执行时长,筛选出所述预估执行时长小于所述剩余任务时长的初始目标任务;
基于所述初始目标任务,选取所述预估执行时长最大的任务作为所述目标任务。
3.如权利要求2所述的任务调用方法,其特征在于,所述获取所述任务池中每一任务对应的预估执行时长的步骤之前,还包括:
获取所述任务对应的时间复杂度;
基于所述时间复杂度,确定所述任务的预估执行时长。
4.如权利要求1所述的任务调用方法,其特征在于,所述获取系统当前的剩余任务时长以及所述系统的任务需求类型的步骤之前,还包括:
获取所述系统当前的剩余资源量;
基于所述剩余资源量,确定所述剩余任务时长。
5.如权利要求1所述的任务调用方法,其特征在于,所述调用并执行所述目标任务的步骤之后,还包括:
当所述目标任务的调用时长超过预设时长时,将当前所述目标任务撤销;
执行所述获取系统当前的剩余任务时长、所述系统的任务需求类型以及任务池中每一任务对应的预估执行时长的步骤。
6.一种任务调用设备,其特征在于,所述任务调用设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的任务调用程序,所述任务调用程序配置为实现如权利要求1至5中任一项所述的任务调用方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有任务调用程序,所述任务调用程序被处理器执行时实现如权利要求1至5任一项所述的任务调用方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310982369.6A CN116700937B (zh) | 2023-08-07 | 2023-08-07 | 任务调用方法、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310982369.6A CN116700937B (zh) | 2023-08-07 | 2023-08-07 | 任务调用方法、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116700937A CN116700937A (zh) | 2023-09-05 |
CN116700937B true CN116700937B (zh) | 2023-11-03 |
Family
ID=87837879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310982369.6A Active CN116700937B (zh) | 2023-08-07 | 2023-08-07 | 任务调用方法、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116700937B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813523A (zh) * | 2020-07-09 | 2020-10-23 | 北京奇艺世纪科技有限公司 | 时长预估模型生成方法、系统资源调度方法、装置、电子设备和存储介质 |
CN113051059A (zh) * | 2021-04-10 | 2021-06-29 | 作业帮教育科技(北京)有限公司 | 一种多gpu的任务实时调度方法及装置 |
CN114661449A (zh) * | 2022-05-19 | 2022-06-24 | 四川傲势科技有限公司 | 任务调度方法、嵌入式系统及计算机可读存储介质 |
CN114661450A (zh) * | 2022-05-26 | 2022-06-24 | 南京云信达科技有限公司 | 基于时间序列学习和预测的备份系统任务调度方法及系统 |
WO2023004597A1 (zh) * | 2021-07-27 | 2023-02-02 | 京东方科技集团股份有限公司 | 任务调度方法、装置、计算处理设备、计算机程序及计算机可读介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120066683A1 (en) * | 2010-09-09 | 2012-03-15 | Srinath Nadig S | Balanced thread creation and task allocation |
-
2023
- 2023-08-07 CN CN202310982369.6A patent/CN116700937B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813523A (zh) * | 2020-07-09 | 2020-10-23 | 北京奇艺世纪科技有限公司 | 时长预估模型生成方法、系统资源调度方法、装置、电子设备和存储介质 |
CN113051059A (zh) * | 2021-04-10 | 2021-06-29 | 作业帮教育科技(北京)有限公司 | 一种多gpu的任务实时调度方法及装置 |
WO2023004597A1 (zh) * | 2021-07-27 | 2023-02-02 | 京东方科技集团股份有限公司 | 任务调度方法、装置、计算处理设备、计算机程序及计算机可读介质 |
CN114661449A (zh) * | 2022-05-19 | 2022-06-24 | 四川傲势科技有限公司 | 任务调度方法、嵌入式系统及计算机可读存储介质 |
CN114661450A (zh) * | 2022-05-26 | 2022-06-24 | 南京云信达科技有限公司 | 基于时间序列学习和预测的备份系统任务调度方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116700937A (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9990229B2 (en) | Scheduling method and apparatus for applying laxity correction based on task completion proportion and preset time | |
CN111625331B (zh) | 任务调度方法、装置、平台、服务器及存储介质 | |
CN110096345B (zh) | 智能任务调度方法、装置、设备及存储介质 | |
CN1952898A (zh) | 采用进程线程的自适应分区的进程调度程序 | |
Theis et al. | Schedule table generation for time-triggered mixed criticality systems | |
CN111858065A (zh) | 数据处理方法、设备、存储介质及装置 | |
EP1678612B1 (en) | Stochastically based thread budget overrun handling system and method | |
CN114625507B (zh) | 基于有向无环图的任务调度方法、系统、设备及存储介质 | |
CN116700937B (zh) | 任务调用方法、设备及计算机可读存储介质 | |
US7698705B1 (en) | Method and system for managing CPU time consumption | |
US8555285B2 (en) | Executing a general-purpose operating system as a task under the control of a real-time operating system | |
CN116880986A (zh) | 任务调度方法、装置、车载控制器、电子设备和存储介质 | |
CN113051005B (zh) | 一种加载方法及装置 | |
CN109002381B (zh) | 进程通信监控方法、电子装置及计算机可读存储介质 | |
CN113419836B (zh) | 任务处理方法、装置、电子设备和计算机可读存储介质 | |
US20090168092A1 (en) | Job management and scheduling method for network system | |
CN115099666A (zh) | 一种机器人调度方法和装置、电子设备 | |
CN114035926A (zh) | 应用线程调度方法、装置、存储介质及电子设备 | |
KR101271854B1 (ko) | 태스크 주기 스케쥴링 장치 및 방법 | |
CN112416589A (zh) | 一种用于运维平台定时作业错峰执行的方法 | |
CN112231087A (zh) | 任务调度方法、装置、设备及存储介质 | |
CN110245009A (zh) | 周期任务分配方法、装置、计算机设备和存储介质 | |
KR101211817B1 (ko) | 태스크 주기 스케쥴링 장치 및 방법 | |
CN118034942B (zh) | 集群算力管理方法、装置、设备及存储介质 | |
CN117667356A (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 |