CN117751351A - 任务调度方法及多核处理器系统 - Google Patents
任务调度方法及多核处理器系统 Download PDFInfo
- Publication number
- CN117751351A CN117751351A CN202180101376.XA CN202180101376A CN117751351A CN 117751351 A CN117751351 A CN 117751351A CN 202180101376 A CN202180101376 A CN 202180101376A CN 117751351 A CN117751351 A CN 117751351A
- Authority
- CN
- China
- Prior art keywords
- task
- processed
- scheduling method
- processing cores
- 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 90
- 238000012545 processing Methods 0.000 claims abstract description 179
- 230000002159 abnormal effect Effects 0.000 claims abstract description 34
- 230000008569 process Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000004378 air conditioning Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
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)
- Hardware Redundancy (AREA)
- Retry When Errors Occur (AREA)
Abstract
一种任务调度方法、多核处理器系统和计算机可读存储介质,所述任务调度方法包括:当第一任务处于执行异常状态时,判断所述第一任务是否能够被强制终止;在所述第一任务不能够被强制终止时,向与所述第一任务相关联的第二任务报告所述第一任务处于执行异常状态;以及当所述第一任务处于执行异常状态的持续时间达到预定等待时间且未接收到所述第一任务的终止指令时,强制终止执行所述第一任务或停止对执行所述第一任务的处理核进行任务调度。
Description
本申请涉及计算机技术领域,特别涉及一种任务调度方法和一种多核处理器系统。
在新兴的车载控制器领域,特别是应对自动驾驶需求的域控制器采用面向服务的架构(Service-Oriented Architechture,SOA)已经渐渐成为主流认识。随着汽车智能化的不断推进,车载控制器需要处理的功能越来越复杂,场景越来越多样化,但是单一开发商往往很难独立完成所有的应用开发。此外,与手机软件不同,车载系统的控制更为复杂,在加载各种个性化应用功能的同时,安全性与实时性日渐重要。
对于车载控制器,既要引入第三方开发的功能,打造数字化生态,满足消费者多样化的驾驶/乘坐场景体验,但也要确保行车安全。因为,需要合理的调度需要车载控制器处理的大量任务。
发明内容
鉴于上述问题,本申请提出了一种任务调度方法、多核处理器系统及计算机可读存储介质。
为此,本发明的第一方面提供了一种任务调度方法,该任务调度方法包括:
当第一任务处于执行异常状态时,判断该第一任务是否能够被强制终止;
在该第一任务不能够被强制终止时,向与该第一任务相关联的第二任务报告该第一任务的执行异常状态;以及
当该第一任务处于执行异常状态的持续时间达到预定等待时间且未接收到该第一任务的终止指令时,强制终止执行该第一任务或停止对执行该第一任务的处理核进行任务调度。
在本申请的实施方案中,任务具有不同的优先级,在出现异常任务时,低等级的任务可以立即强制终止,中等级的任务待收到指令或延迟后可以强制终止, 高等级的任务不可以强制终止,则停止执行该异常任务的处理核的任务调度。在本申请的实施方案中,根据任务自身特性,选择延时终止异常任务,既不会强行终止异常程序,也不会放任异常程序不管,避免了异常程序扩大故障范围而导致进一步危害,避免了系统崩溃、闪退、重启、逻辑冲突等异常,为系统进入安全状态提供了技术支持。
在本申请的一些实施方案中,当该第一任务处于执行异常状态时,记录该第一任务的异常状态。通过记录异常任务,对于第三方应用程序的问题分析以及是否能够部署新的应用程序等提供了数据保证。
在本申请的一些实施方案中,在该第一任务不能够被强制终止时,向系统应用程序发送该第一任务的异常状态,并且由该系统应用程序基于该异常状态判断是否向执行该第一任务的处理核下达该第一任务的终止指令。在一些实施方案中,该系统应用程序包括健康管理模块。
在一些实施方案中,执行异常状态包括如下状态中的一个或多个:任务执行超时状态,任务使用的内存超限,任务使用的堆栈超限。
在一些实施方案中,根据该第一任务的优先级确定预定等待时间。
在一些实施方案中,该任务调度方法包括:在该第一任务能够被强制终止时,强制终止该第一任务。
在本申请的实施方案中,在出现异常任务时,根据任务自身特性,在终止任务和延时终止之间进行选择,满足了自动驾驶等高安全场景的需求。
在一些实施方案中,该任务调度方法包括:当被强制终止的该第一任务是执行该第一任务的处理核中的最后一个任务时,为执行该第一任务的处理核分配新的任务。
在一些实施方案中,该任务调度方法包括:当被强制终止的该第一任务不是执行该第一任务的处理核中的最后一个任务时,命令执行该第一任务的处理核顺序执行为其分配的下一个任务。
在本申请的实施方案中,通过终止或延迟终止的异常任务,释放了执行异常任务的处理核,避免了系统崩溃。
在一些实施方案中,该任务调度方法适用于多核处理器系统,上述多核处理器系统包含多个处理核。
在一些实施方案中,该任务调度方法由该多个处理核中的一个处理核执行,该任务调度方法包括:
实时获取上述多个处理核的状态信息;以及
当执行该任务调度方法的处理核出现故障时,通过上述多个处理核中的另一 个处理核执行该任务调度方法。
在本申请的实施方案中,将任务调度方法暂时固定由一个处理核执行,然后在该处理核故障时将任务调度方法移至另一个处理核进行执行,避免了执行任务调度方法的处理核故障时无法继续调度任务的问题;同时,在存在多个处理核的情况下,调度算法本身不是由多个处理核动态执行的,省去了在不同的处理核中执行的堆栈和压栈等需求,节省了执行时间,提高了系统整体效率。
在本申请的实施方案中,执行任务调度方法的处理核起到实施监控任务触发、任务等待、任务调度、任务执行的作用,并且可以在任务异常时记录异常。
在一些实施方案中,该任务调度方法包括:将待处理任务队列中的待处理任务分配到上述多个处理核中执行该任务调度方法的处理核以外的处理核。
在一些实施方案中,当上述多个处理核中的一个或多个处理核故障或上述多核处理系统处于低功耗工作状态时,将待处理任务队列中的待处理任务分配到可使用的指定的处理核。在本申请的实施方案中,不仅仅根据任务的动态执行参数,寻找处理核进行无差别调度,而且根据处理核和处理系统本身的状态,动态调整处理核的任务调度,任务调度更为合理。
在本申请的实施方案中,在待处理任务队列中,有些任务的优先级不能够改变,而有些任务的优先级能够改变;考虑到任务的相对优先级会基于场景动态变化的情况,本申请的实施方案实现了优先级的灵活调整。
在一些实施方案中,该任务调度方法包括:基于待处理任务队列中的待处理任务的分配等待时间调整上述待处理任务的优先级。
在本申请的一些实施方案中,基于先进先出和优先级的准则,调整待处理任务队列中的待处理任务的调度顺序。
在本申请的具体实施方案中,基于待处理任务队列中的待处理任务的分配等待时间调整上述待处理任务的优先级包括:
当上述待处理任务的原始优先级加上上述待处理任务的优先级调整值小于或等于上述待处理任务的最大允许优先级时,将上述待处理任务的优先级设置为上述待处理任务的原始优先级加上该优先级调整值,其中通过对上述待处理任务的分配等待时间与调整系数的乘积取整来获得该优先级调整值;以及
当上述待处理任务的原始优先级加上该优先级调整值大于上述待处理任务的最大允许优先级时,将上述待处理任务的优先级设置为上述待处理任务的最大允许优先级。
在一些实施方案中,在接收新的待处理任务时,获得该新的待处理任务的属性参数,上述属性参数包括以下项目中的一项或多项:任务的最大允许等待时间,任务的预估执行时间,任务的原始优先级,任务的优先级调整系数以及任务是否 允许强制终止。
在一些实施方案中,该任务调度方法包括:根据待处理任务队列中的任务的预估执行时间,将待处理任务队列中的任务分配给不同的空闲处理核,使得不同的处理核执行任务的完成时间错开。
在本申请的实施方案中,通过将不同处理核执行任务的完成时间错开,减少了空闲处理核的等待时间,提供了系统整体效率。
在一些实施方案中,分配给一个空闲处理核的一个或多个任务的预估执行时间的总和与相继分配给另一个空闲处理核的一个或多个任务的预估执行时间的总和的差值大于或等于预设的时间间隔。在本申请的一个示例性实施例中,该预设的时间间隔是2ms。
在本申请的实施方案中,既不是将任务单个逐一分配,也不是同时向多个空闲处理核批量分配任务,而是根据任务可能的执行时间依次为各个空闲处理核分配一个或多个任务,减少了空闲处理核的等待时间,提升了系统效率,同时避免了任务在等待时间内的协调困难以及无法把控处理核负荷的问题。
在一些实施方案中,根据待处理任务队列中的任务的预估执行时间分配任务包括:
将第一待处理任务分配给第一空闲处理核;
当第二待处理任务的预估执行时间与该第一待处理任务的预估执行时间的差值大于或等于预设的时间间隔时,将该第二待处理任务分配给第二空闲处理核;
当该第二待处理任务的预估执行时间与该第一待处理任务的预估执行时间的差值小于预设的时间间隔时,判断该第二待处理任务和第三待处理任务的预估执行时间的总和与该第一待处理任务的预估执行时间的差值是否大于或等于预设的时间间隔;
当该第二待处理任务和第三待处理任务的预估执行时间的总和与该第一待处理任务的预估执行时间的差值大于或等于预设的时间间隔时,将该第二待处理任务和该第三待处理任务分配给该第二空闲处理核;以及
当该第二待处理任务和该第三待处理任务的预估执行时间的总和与该第一待处理任务的预估执行时间的差值小于预设的时间间隔时,将该第二待处理任务、该第三待处理任务和第四待处理任务分配给第二空闲处理核。
在本申请的上述实施方案中,第一待处理任务、第二待处理任务、第三待处理任务和第四待处理任务中的“第一”、“第二”、“第三”和“第四”表示待处理任务的分配顺序,第一空闲处理核和第二空闲处理核中的“第一”和“第二”表示等分配任务的空闲处理核的分配顺序。在本申请的实施方案中,通过根据任务可能的执行时间,把一个或多个任务一起分配给某个处理核,使得各个处理核 不以近似时间被分配任务,从而确保各个处理核不至于频繁进入空闲时间,可以有效减少多个处理核同时进入空闲的几率,提高系统的处理效率。
在本申请的实施方案中,当该第二待处理任务、该第三待处理任务和该第四待处理任务的预估执行时间的总和与该第一待处理任务的预估执行时间的差值小于预设的时间间隔时,将该第二待处理任务、该第三待处理任务和该第四待处理任务分配给第二空闲处理核。在该实施方案中,虽然分配给第二空闲处理核的任务的预估执行时间的总和小于分配给第一空闲处理核的任务的预估执行时间,但是仍将三个待处理任务分配给第二空闲处理核,以使得给第二空闲处理核最多分配三个待处理任务。这样的做原因在于,避免给一个处理核分配过多的任务,分配到一个处理核的任务越多越容易出错,如果第二待处理任务的执行出现异常,则会影响分配到该第二空闲处理核的其他任务的执行。
在一些实施方案中,根据待处理任务队列中的待处理任务的优先级由高到低依次排列上述待处理任务的分配顺序。
在一些实施方案中,根据空闲处理核的空闲时间由长到短依次排列上述空闲处理核的分配顺序。
本申请的第二方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有指令,当由处理器执行上述指令时,上述指令使该处理器实施根据上述第一方面所述的任务调度方法。
本申请的第三方面提供了一种多核处理器系统,该多核处理器系统包括多个处理核,上述多个处理核中的一个处理核被配置成用于执行任务调度的管理核;
该管理核被配置成执行根据上述第一方面所述的任务调度方法。
本申请的第四方面提供了一种任务调度方法,该任务调度方法包括:根据待处理任务队列中的任务的预估执行时间,将待处理任务队列中的任务分配给不同的空闲处理核,使得不同的处理核执行任务的完成时间错开。
本申请的第五方面提供了一种任务调度方法,该任务调度方法适用于多核处理器系统,该多核处理器系统包含多个处理核;并且
该任务调度方法由上述多个处理核中的一个处理核执行,该任务调度方法包括:
实时获取上述多个处理核的状态信息;以及
当执行该任务调度方法的处理核出现故障时,通过上述多个处理核中的另一个处理核执行该任务调度方法。
为了更清楚地说明本申请的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施方案,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据附图获得其他的附图。在附图中:
图1例示了根据本申请的一个实施方案的任务调度方法100的流程图;
图1a例示了根据本申请的另一个实施方案的任务调度方法100a的流程图;
图2例示了根据本申请的一个实施方案的多核处理器系统200的框图;
图3例示了根据本申请的一个实施方案的任务调度方法300的流程图;
图4例示了根据本申请的一个实施方案的任务调度方法400的流程图;
图5例示了根据本申请的一个实施方案的任务调度方法500的流程图;
图6例示了根据本申请的一个实施方案的任务调度方法600的流程图;以及
图6a例示了根据本申请的另一个实施方案的任务调度方法600a的流程图。
下面将结合附图对本申请的实施方案进行详细的描述。以下实施方案仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中所使用的术语只是为了描述具体的实施方案的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。
在本申请的实施方案的描述中,技术术语“第一”和“第二”等仅用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量、特定顺序或主次关系,除非另有指明。
在本文中提及“实施方案”意味着,结合实施方案描述的特定特征、结构或特性可以包含在本申请的至少一个实施方案中。在说明书中的各个位置出现该短语并不一定均是指相同的实施方案,也不是与其它实施方案互斥的独立的或备选的实施方案。本领域技术人员显式地和隐式地理解的是,本文所描述的实施方案可以与其它实施方案相结合。
在本申请的实施方案的描述中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如A和/或B,可以表示:存在A,同时 存在A和B,存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。在本申请的实施方案的描述中,术语“多个”指的是两个以上(包括两个),除非另有明确具体的限定。
如果在本说明书或权利要求中按顺序陈述步骤,这未必意味着实施方案或方面限于所陈述的顺序。相反,可以想象还以不同的顺序或者彼此并行地执行所述步骤,除非一个步骤建立在另一步骤上,这绝对需要建立的步骤随后执行(然而这将在个体情况下会变得清晰起来)。因此,所陈述的顺序可以是优选的实施方案。
发明人发现,常规调度算法将不同层次的任务归类到采用不同算法的不同调度类,导致分配任务的算法过于复杂,程序维护性较差。此外,常规调度算法没有考虑到场景变化对调度带来的影响;常规调度算法仅通过任务的动态执行参数来寻找处理核且执行无差别调度,在某个处理核故障或者系统处于低功耗工作状态时,可能会将任务分配到无效的处理核。
发明人还发现,在由多个处理核动态执行调度算法时,往往需要在不同的处理核中对数据进行堆栈和压栈,导致调度算法本身的执行时间较长;而在调度算法固定由一个主核执行时,如果主核故障,则无法继续执行调度算法。此外,在任务处理超时的情况下,常规调度算法往往直接终止任务,容易导致系统的崩溃、闪退、重启、逻辑冲突等异常。
此外,发明人还意识到,常规调度算法要么将单个任务逐一分配到空闲处理核,易导致空闲处理核的等待时间过多,要么将多个任务批量分配到多个空闲处理核,易导致任务在等待时间内的协调困难以及无法把控处理核负荷的问题。
基于以上发现,为了克服常规调度算法存在的问题,本发明人设计了一种任务调度方法和多核处理器系统,以适应自动驾驶等应用对功能复杂性、场景多样化、功能个性化、系统安全性和实时性的需求。
图1例示了根据本申请的一个实施方案的任务调度方法100的流程图。如图1所示,在步骤102,判断执行的任务是否处于执行异常状态;如果是,则判断该任务是否能够被强制终止,步骤104。如果该任务不能够被强制终止,则向与该任务相关联的其他任务报告该任务的执行异常状态,步骤108。然后,等待接收来自其他任务的对该任务的处理指令,并且判断等待接收该任务的处理指令是否超时,步骤110。如果该任务处于执行异常状态的持续时间达到预定等待时间且未接收到该任务的终止指令,即等待接收该任务的处理指令超时,则强制终止执行该任务或停止对执行该任务的处理核进行任务调度,步骤114。如果在预定等待时间内接收到该任务的处理指令,则按照接收到的处理指令对该任务进行处理,步骤112。
在本申请的一些实施方案中,执行异常状态包括如下状态中的一个或多个: 任务执行超时状态,任务使用的内存超限,任务使用的堆栈超限。在本申请的一些实施方案中,根据任务的优先级确定预定等待时间。
此外,在本申请的一些实施方案中,当该任务处于执行异常状态时,记录该任务的异常状态。通过记录异常任务,对于第三方应用程序的问题分析以及是否能够部署新的应用程序等提供了数据保证。
在本申请的一些实施方案中,尤其是在车载控制器的场景中,在程序进程出现故障(例如,内存超限)时,不是简单强制终止程序进程,而是操作系统上报程序进程的故障,并且给其他相关进程提供一定的响应时间。如果操作系统收到故障报警后指示关闭该程序进程,则直接关闭该程序进程。如果操作系统迟迟不给出或接收到对该进程的处理指令,则操作系统在超时后关闭该故障进程。在本申请的一个实施例中,在自动泊车期间,如果尾灯程序故障,则操作系统会置位该故障并等待其他应用程序处理,诸如,降速、停车、退出自动驾驶模式等;如果超时没有指示反馈,则为了避免该进程扩大故障范围,导致进一步危害,操作系统强制关闭该进程。
图1a例示了根据本申请的另一个实施方案的任务调度方法100a的流程图。图1a与图1相似,因此同样的步骤不再累述。如图1a所示,在步骤101,监控任务的执行情况;然后,根据任务的执行情况判断任务是否处于执行异常状态,步骤102。如果任务不处于异常状态,则判断任务是否执行完成,步骤103。如果任务未执行完成,则返回步骤101继续监控任务的执行情况。
此外,如果该任务能够被强制终止,则直接结束该任务,步骤106。在本申请的一些实施方案中,当被强制终止的任务是执行该任务的处理核中的最后一个任务时,为执行该任务的处理核分配新的任务;当被强制终止的任务不是执行该任务的处理核中的最后一个任务时,命令执行该任务的处理核顺序执行为其分配的下一个任务。
在本申请的实施方案中,在出现异常任务时,根据任务自身特性,在终止任务和延时终止之间进行选择,既不会强行终止异常程序,也不会放任异常程序不管,避免了异常程序扩大故障范围而导致进一步危害,避免了系统崩溃、闪退、重启、逻辑冲突等异常,为系统进入安全状态提供了技术支持,满足了自动驾驶等高安全场景的需求。
图2例示了根据本申请的一个实施方案的多核处理器系统200的框图。图2所示,多核处理器系统200包含多个处理核202A、202B、202C、……、202N。在多个处理核中,处理核0 202A是管理核,其余处理核1-n 202B、202C、……、202N是执行待处理任务的处理核。
在本申请的一些实施方案中,管理核202A起到实施监控任务触发、任务等待、任务调度、任务执行的作用,并且可以在任务异常时记录异常。
在本申请的一些实施方案中,在接收新任务时,获取新任务的属性参数,上述属性参数包括以下项目中的一项或多项:任务的最大允许等待时间,任务的预估执行时间,任务的原始优先级,任务的优先级调整系数以及任务是否允许强制终止等。此外,在本申请的一些实施方案中,在接收新任务时,根据新任务的优先级将新任务插入到待执行的任务队列。
图3例示了根据本申请的一个实施方案的任务调度方法300的流程图。如图3所示,在步骤302,实时获取上述多个处理核202A、202B、202C、……、202N的状态信息。然后,在步骤304,判断管理核202A是否故障。如果管理核202A正常,则继续由管理核202A执行任务调度算法。如果管理核202A故障,则将多个处理核202A、202B、202C、……、202N中处理核202A以外的另一个处理核作为新的管理核,即由该新的管理核执行任务调度算法,步骤306。在本申请的一些实施方案中,在处理核0 202A出现故障时,将调度算法顺移至由处理核1 202B执行,待处理任务分配至其余处理核2-n 202C、……、202N执行。
在本申请的实施方案中,将任务调度方法暂时固定由一个处理核执行,然后在该处理核故障时将任务调度方法移至另一个处理核进行执行,避免了执行任务调度方法的处理核故障时无法继续调度任务的问题;同时,在存在多个处理核的情况下,调度算法本身不是由多个处理核动态执行的,省去了在不同的处理核中执行的堆栈和压栈等需求,节省了执行时间,提高了系统整体效率。
图4例示了根据本申请的一个实施方案的任务调度方法400的流程图。如图4所示,在步骤402,实时获取上述多个处理核202A、202B、202C、……、202N的状态信息。然后,在步骤404,判断是否有处理核故障,并且在步骤406,判断系统是否处于低功耗状态。如果有处理核故障或者系统处于低功耗状态,则将待处理任务队列中的待处理任务分配到可使用的指定的处理核,步骤408。在本申请的实施方案中,不仅仅根据任务的动态执行参数,寻找处理核进行无差别调度,而且根据处理核和处理系统本身的状态,动态调整处理核的任务调度,任务调度更为合理。
图5例示了根据本申请的一个实施方案的任务调度方法500的流程图。如图5所示,在步骤502,待处理任务的原始优先级加上待处理任务的优先级调整值是否小于或等于待处理任务的最大允许优先级。如果是,则将待处理任务的新优先级设置为待处理任务的原始优先级加上待处理任务的优先级调整值,步骤504;如果否,则将将待处理任务的新优先级设置为待处理任务的最大允许优先级,步骤506。在本申请的一些实施方案中,待处理任务的优先级调整值等于对待处理任务的分配等待时间与调整系数的乘积取整。
在本申请的一些实施方案中,有些任务的优先级是可以改变的,但是任务根据自身的属性,其优先级限定在某一范围内。在本申请的一个实施例中,尤其是在车载控制器的场景中,空调开关任务的优先级所在的范围不会超过制动任务的 优先级所在的范围。
在本申请的实施方案中,基于待处理任务队列中的待处理任务的分配等待时间调整待处理任务的优先级,考虑到任务的相对优先级会基于场景动态变化的情况,实现了优先级的灵活调整。
图6例示了根据本申请的一个实施方案的任务调度方法600的流程图。如图6所示,在步骤602,获取任务的预估执行时间;然后,在步骤604,根据待处理任务队列中的任务的预估执行时间将待处理任务队列中的任务分配给不同的空闲处理核,使得不同的处理核执行任务的完成时间错开。在本申请的实施方案中,通过将不同处理核执行任务的完成时间错开,减少了空闲处理核的等待时间,提供了系统整体效率。
在一些实施方案中,分配给一个空闲处理核的一个或多个任务的预估执行时间的总和与相继分配给另一个空闲处理核的一个或多个任务的预估执行时间的总和的差值大于或等于预设的时间间隔。在本申请的一个示例性实施例中,该预设的时间间隔是2ms。在本申请的实施方案中,既不是将任务单个逐一分配,也不是同时向多个空闲处理核批量分配任务,而是根据任务可能的执行时间依次为各个空闲处理核分配一个或多个任务,减少了空闲处理核的等待时间,提升了系统效率,同时避免了任务在等待时间内的协调困难以及无法把控处理核负荷的问题。
图6a例示了根据本申请的另一个实施方案的任务调度方法600a的流程图。如图6a所示,在步骤605,将第一待处理任务分配给第一空闲处理核;然后,在步骤606,判断第二待处理任务的预估执行时间与第一待处理任务的预估执行时间的差值的绝对值是否大于或等于预设的时间间隔。如果是,则将第二待处理任务分配给第二空闲处理核,步骤607;如果否,则判断第二待处理任务和第三待处理任务的预估执行时间的总和与第一待处理任务的预估执行时间的差值的绝对值是否大于或等于预设的时间间隔,步骤608。如果是,则将第二待处理任务和第三待处理任务分配给第二空闲处理核,步骤609;如果否,则将第二待处理任务、第三待处理任务和第四待处理任务分配给第二空闲处理核,步骤610。
在图6a的实施方案中,第一待处理任务、第二待处理任务、第三待处理任务和第四待处理任务中的“第一”、“第二”、“第三”和“第四”表示待处理任务的分配顺序,第一空闲处理核和第二空闲处理核中的“第一”和“第二”表示等分配任务的空闲处理核的分配顺序。在本申请的实施方案中,通过根据任务可能的执行时间,把一个或多个任务一起分配给某个处理核,使得各个处理核不以近似时间被分配任务,从而确保各个处理核不至于频繁进入空闲时间,可以有效减少多个处理核同时进入空闲的几率,提高系统的处理效率。
在本申请的一些实施方案中,当第二待处理任务、第三待处理任务和第四待处理任务的预估执行时间的总和与第一待处理任务的预估执行时间的差值小于 预设的时间间隔时,将第二待处理任务、第三待处理任务和第四待处理任务分配给第二空闲处理核。在该实施方案中,虽然分配给第二空闲处理核的任务的预估执行时间的总和小于分配给第一空闲处理核的任务的预估执行时间,但是仍将三个待处理任务分配给第二空闲处理核,以使得给第二空闲处理核最多分配三个待处理任务。此外,在本申请的一些实施方案中,在给第三空闲处理核分配任务时,也将预分配给第三空闲处理核的一个或多个任务的预估执行时间与分配给第二空闲处理核的一个或多个任务的预估执行时间进行比较。
在一些实施方案中,根据待处理任务队列中的待处理任务的优先级由高到低依次排列上述待处理任务的分配顺序。此外,在一些实施方案中,根据空闲处理核的空闲时间由长到短依次排列上述空闲处理核的分配顺序。
虽然已经参考优选实施例对本发明进行了描述,但在不脱离本发明的范围的情况下,可以对其进行各种改进并且可以用等效物替换其中的部件。尤其是,只要不存在结构冲突,各个实施例中所提到的各项技术特征均可以任意方式组合起来。本发明并不局限于文中公开的特定实施例,而是包括落入权利要求的范围内的所有技术方案。
Claims (20)
- 一种任务调度方法,其特征在于,所述任务调度方法包括:当第一任务处于执行异常状态时,判断所述第一任务是否能够被强制终止;在所述第一任务不能够被强制终止时,向与所述第一任务相关联的第二任务报告所述第一任务的执行异常状态;以及当所述第一任务处于执行异常状态的持续时间达到预定等待时间且未接收到所述第一任务的终止指令时,强制终止执行所述第一任务或停止对执行所述第一任务的处理核进行任务调度。
- 根据权利要求1所述的任务调度方法,其特征在于,所述执行异常状态包括如下状态中的一个或多个:任务执行超时状态,任务使用的内存超限,任务使用的堆栈超限。
- 根据权利要求1或2所述的任务调度方法,其特征在于,根据所述第一任务的优先级确定所述预定等待时间。
- 根据权利要求1至3中任一项所述的任务调度方法,其特征在于,所述任务调度方法包括:在所述第一任务能够被强制终止时,强制终止所述第一任务。
- 根据权利要求1至4中任一项所述的任务调度方法,其特征在于,所述任务调度方法包括:当被强制终止的所述第一任务是执行所述第一任务的处理核中的最后一个任务时,为执行所述第一任务的处理核分配新的任务。
- 根据权利要求1至5中任一项所述的任务调度方法,其特征在于,所述任务调度方法包括:当被强制终止的所述第一任务不是执行所述第一任务的处理核中的最后一个任务时,命令执行所述第一任务的处理核顺序执行为其分配的下一个任务。
- 根据权利要求1至6中任一项所述的任务调度方法,其特征在于,所述任务调度方法适用于多核处理器系统,所述多核处理器系统包含多个处理核。
- 根据权利要求7所述的任务调度方法,其特征在于,所述任务调度方法由所述多个处理核中的一个处理核执行,所述任务调度方法包括:实时获取所述多个处理核的状态信息;以及当执行所述任务调度方法的处理核出现故障时,通过所述多个处理核中的另一个处理核执行所述任务调度方法。
- 根据权利要求7或8所述的任务调度方法,其特征在于,所述任务调度方法包括:将待处理任务队列中的待处理任务分配到所述多个处理核中执行所述任务调度方法的处理核以外的处理核。
- 根据权利要求7至9中任一项所述的任务调度方法,其特征在于,当所述多个处理核中的一个或多个处理核故障或所述多核处理系统处于低功耗工作状态时,将待处理任务队列中的待处理任务分配到可使用的指定的处理核。
- 根据权利要求1至10中任一项所述的任务调度方法,其特征在于,所述任务调度方法包括:基于待处理任务队列中的待处理任务的分配等待时间调整所述待处理任务的优先级。
- 根据权利要求11所述的任务调度方法,其特征在于,基于待处理任务队列中的待处理任务的分配等待时间调整所述待处理任务的优先级包括:当所述待处理任务的原始优先级加上所述待处理任务的优先级调整值小于或等于所述待处理任务的最大允许优先级时,将所述待处理任务的优先级设置为所述待处理任务的原始优先级加上所述优先级调整值,其中通过对所述待处理任务的分配等待时间与调整系数的乘积取整来获得所述优先级调整值;以及当所述待处理任务的原始优先级加上所述优先级调整值大于所述待处理任务的最大允许优先级时,将所述待处理任务的优先级设置为所述待处理任务的最大允许优先级。
- 根据权利要求1至12中任一项所述的任务调度方法,其特征在于,在接收新的待处理任务时,获得所述新的待处理任务的属性参数,所述属性参数包括以下项目中的一项或多项:任务的最大允许等待时间,任务的预估执行时间,任务的原始优先级,任务的优先级调整系数以及任务是否允许强制终止。
- 根据权利要求1至13中任一项所述的任务调度方法,其特征在于,所述任务调度方法包括:根据待处理任务队列中的任务的预估执行时间,将待处理任务队列中的任务分配给不同的空闲处理核,使得不同的处理核执行任务的完成时间错开。
- 根据权利要求14所述的任务调度方法,其特征在于,分配给一个空闲处理核的一个或多个任务的预估执行时间的总和与相继分配给另一个空闲处理核的一个或多个任务的预估执行时间的总和的差值大于或等于预设的时间间隔。
- 根据权利要求14或15所述的任务调度方法,其特征在于,根据待处理任务队列中的任务的预估执行时间分配任务包括:将第一待处理任务分配给第一空闲处理核;当第二待处理任务的预估执行时间与所述第一待处理任务的预估执行时间的差值大于或等于预设的时间间隔时,将所述第二待处理任务分配给第二空闲处理核;当所述第二待处理任务的预估执行时间与所述第一待处理任务的预估执行时间的差值小于预设的时间间隔时,判断所述第二待处理任务和第三待处理任务的预估执行时间的总和与所述第一待处理任务的预估执行时间的差值是否大于或等于预设的时间间隔;当所述第二待处理任务和第三待处理任务的预估执行时间的总和与所述第一待处理任务的预估执行时间的差值大于或等于预设的时间间隔时,将所述第二待处理任务和所述第三待处理任务分配给所述第二空闲处理核;以及当所述第二待处理任务和所述第三待处理任务的预估执行时间的总和与所述第一待处理任务的预估执行时间的差值小于预设的时间间隔时,将所述第二待处理任务、所述第三待处理任务和第四待处理任务分配给第二空闲处理核。
- 根据权利要求1至16中任一项所述的任务分配方法,其特征在于,根据待处理任务队列中的待处理任务的优先级由高到低依次排列所述待处理任务的分配顺序。
- 根据权利要求1至17中任一项所述的任务分配方法,其特征在于,根据空闲处理核的空闲时间由长到短依次排列所述空闲处理核的分配顺序。
- 一种计算机可读存储介质,所述计算机可读存储介质存储有指令,当由处理器执行所述指令时,所述指令使所述处理器实施根据权利要求1至18中任一项所述的任务调度方法。
- 一种多核处理器系统,其特征在于,所述多核处理器系统包括多个处理核,所述多个处理核中的一个处理核被配置成用于执行任务调度的管理核;所述管理核被配置成执行根据上述权利要求1至18中任一项所述的任务调度方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/141693 WO2023122891A1 (zh) | 2021-12-27 | 2021-12-27 | 任务调度方法及多核处理器系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117751351A true CN117751351A (zh) | 2024-03-22 |
Family
ID=86996822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180101376.XA Pending CN117751351A (zh) | 2021-12-27 | 2021-12-27 | 任务调度方法及多核处理器系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117751351A (zh) |
WO (1) | WO2023122891A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102572A (zh) * | 2013-04-01 | 2014-10-15 | 中兴通讯股份有限公司 | 一种系统故障检测及处理方法、装置 |
CN103454935B (zh) * | 2013-08-23 | 2016-08-10 | 广州中智融通金融科技有限公司 | 一种电子设备延时关机方法、装置及系统 |
CN104407847B (zh) * | 2014-10-29 | 2019-05-07 | 中国建设银行股份有限公司 | 一种批处理的方法及装置 |
US11076055B2 (en) * | 2016-01-19 | 2021-07-27 | Canon Kabushiki Kaisha | Control apparatus detects an error in image processor and reboots the image processor before transmits printing data to printing apparatus |
CN109491771B (zh) * | 2018-09-26 | 2023-07-11 | 深圳平安医疗健康科技服务有限公司 | 基于系统性能优化的任务处理方法及相关设备 |
CN112214319B (zh) * | 2020-09-29 | 2021-08-06 | 深圳大学 | 一种计算资源感知的任务调度方法 |
CN112817762A (zh) * | 2021-01-29 | 2021-05-18 | 中汽创智科技有限公司 | 一种基于自适应汽车开放系统架构标准的调度系统及其调度方法 |
-
2021
- 2021-12-27 CN CN202180101376.XA patent/CN117751351A/zh active Pending
- 2021-12-27 WO PCT/CN2021/141693 patent/WO2023122891A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2023122891A1 (zh) | 2023-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4049910B1 (en) | Automatic driving control system, control method and device | |
US8892803B2 (en) | Interrupt on/off management apparatus and method for multi-core processor | |
CN109992403B (zh) | 多租户资源调度的优化方法、装置、终端设备及存储介质 | |
CN111897637B (zh) | 作业调度方法、装置、主机及存储介质 | |
US8378520B2 (en) | Method for energy management | |
CN114189482A (zh) | 一种集群资源的控制方法、装置和系统 | |
CN114691340A (zh) | 基于多级反馈队列的异构多机器人任务调度方法及系统 | |
CN114968601A (zh) | 一种按比例预留资源的ai训练作业的调度方法和调度系统 | |
CN117751351A (zh) | 任务调度方法及多核处理器系统 | |
US20200310426A1 (en) | Real-time control system for a vehicle and a method of executing control of the vehicle via the real-time control system | |
CN108388230B (zh) | 任务调度方法、任务调度系统、车辆电子控制单元及车辆 | |
CN116450328A (zh) | 内存分配方法、装置、计算机设备和存储介质 | |
CN117875641A (zh) | 冷轧厂的钢卷运输任务分配方法、装置及设备 | |
CN118051299A (zh) | 一种云平台虚拟机性能调控方法、系统、设备及介质 | |
CN117234730A (zh) | 车辆控制单元的负载均衡方法、存储介质及车辆 | |
JP4363417B2 (ja) | コンピュータ装置およびコンピュータ制御方法 | |
CN115923844A (zh) | 车辆驾驶模式控制方法、装置、电子设备和存储介质 | |
JPWO2005013130A1 (ja) | リアルタイム制御システム | |
CN113590205B (zh) | Soc的休眠控制方法及装置 | |
CN116089033A (zh) | 一种基于多级异构动态队列的任务调度方法 | |
JP7414052B2 (ja) | 走行支援システム、走行支援方法、走行支援制御プログラム | |
KR102540724B1 (ko) | 멀티 코어 시스템에서의 태스크 실행 관리 방법, 그리고 이를 구현하기 위한 장치 | |
CN114398185A (zh) | 任务调度方法、装置、电子设备和存储介质 | |
KR102441045B1 (ko) | 멀티 코어 구조의 전자 제어 유닛에서 수행되는 방법, 그리고 이를 구현하기 위한 장치 | |
KR20230108508A (ko) | 자율주행차량의 제어 장치 및 그 방법 |
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 |