CN116414532A - 进程调度方法、装置、车辆及存储介质 - Google Patents
进程调度方法、装置、车辆及存储介质 Download PDFInfo
- Publication number
- CN116414532A CN116414532A CN202111669510.4A CN202111669510A CN116414532A CN 116414532 A CN116414532 A CN 116414532A CN 202111669510 A CN202111669510 A CN 202111669510A CN 116414532 A CN116414532 A CN 116414532A
- Authority
- CN
- China
- Prior art keywords
- scheduling
- policy
- strategy
- scheduling policy
- execution
- 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 522
- 230000008569 process Effects 0.000 title claims abstract description 459
- 230000011664 signaling Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 2
- 239000000758 substrate Substances 0.000 claims 1
- 230000001419 dependent effect Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000012384 transportation and delivery Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000007704 transition 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请涉及一种进程调度方法、装置、车辆及存储介质,该方法包括:获取第一调度策略和第二调度策略,第二进程被第一进程调用;在所述第二进程未被所述第一进程调用时,所述第一调度策略用于调度所述第一进程,所述第二调度策略用于调度所述第二进程;在所述第一调度策略与所述第二调度策略满足目标条件时,将所述第一进程的调度策略传递至所述第二进程,并在所述第一进程调用所述第二进程时,通过所述第一调度策略对所述第二进程进行调度。利用本申请的进程调度方法,能够实现以调用相依赖的多个进程均以较高的优先程度进行调度,从而提高任务被及时调度的概率,进而提升用户体验。
Description
技术领域
本申请涉及进程管理技术领域,特别是涉及一种应用于车辆的进程调度方法、装置、车辆及存储介质。
背景技术
此处的陈述仅提供与本申请有关的背景信息,而不必然地构成现有技术。
随着智能汽车的发展,人们对汽车的要求早已不再满足于作为一个简单的代步工具,而希望它是一个具备聪明“大脑”的好伙伴,人们希望自己在座舱内的每一次需求都能得到满足,不仅要准,而且要快。而相比于传统的诸如手机等移动设备,座舱系统业务的复杂性和并发性天生就复杂得多,完成一项任务需要经过的链路更长,依赖的服务也更多。因而,在智能座舱中,这种既快且准的诉求也就对系统的调度策略提出了更高的要求。
发明内容
本申请的目的在于提供一种进程调度方法、装置、车辆及存储介质。
第一方面,本申请提供一种进程调度方法,包括:获取第一调度策略和第二调度策略;第二进程被第一进程调用;在所述第二进程未被所述第一进程调用时,所述第一调度策略用于调度所述第一进程,所述第二调度策略用于调度所述第二进程;在所述第一调度策略与所述第二调度策略满足目标条件时,将所述第一调度策略传递至所述第二进程,并在所述第一进程调用所述第二进程时,通过所述第一调度策略对所述第二进程进行调度。
通过高优先级的业务进程向低优先级的进程发起请求,要求完成某种任务时,通过调度器逐级传递自身进程的调度策略,来实现以调用相依赖的多个进程(例如整条调用依赖链上的进程)均以较高优先程度参与调度,从而提高任务被及时调度的概率,进而提升用户体验。
一种可能的实现方式,所述第一调度策略包括以下至少一项:为第一进程分配资源的方式、为第一进程分配调度优先级的方式;所述第二调度策略包括以下至少一项:为第二进程分配资源的方式、为第二进程分配调度优先级的方式;所述目标条件包括以下至少一项:所述第二进程所分配的资源量少于所述第一进程所分配的资源量、所述第二进程的调度优先级低于所述第一进程的调度优先级。
一种可能的实现方式,所述第一进程分配的资源和所述第二进程分配的资源包括:计算资源、存储资源、信号传输资源中的至少一个。
一种可能的实现方式,所述获取第一调度策略具体包括:在所述第一进程等待执行时、或在所述第一进程在执行中时,获取所述第一调度策略;所述获取第二调度策略具体包括:在所述第一进程向所述第二进程发起调用请求时、或在所述第二进程等待执行时、或在所述第二进程在执行中时,获取所述第二调度策略。
一种可能的实现方式,所述进程调度方法还包括:利用队列管理第一进程和第二进程的执行状态,所述执行状态包括等待执行和在执行中。
一种可能的实现方式,所述第一进程和所述第二进程是车辆系统中的用于完成目标任务的进程;所述目标条件还包括所述第一进程和/或所述第二进程包括第一标识,所述第一标识为根据所述目标任务的优先程度确定的,所述第一标识用于表示所述第一进程与所述第二进程之间是可传递调度策略的。
一种可能的实现方式,所述方法还包括:若所述第一进程和/或所述第二进程不包括所述第一标识,则在所述第一进程调用所述第二进程时,通过所述第二调度策略调度所述第二进程。
一种可能的实现方式,所述方法还包括:在更新所述第二进程的调度策略为所述第一调度策略后,所述第二进程还包括第二标识,所述第二标识用于表示所述第二进程的调度策略已更新。
一种可能的实现方式,所述进程调度方法还包括:在所述第二进程执行完毕后,清除所述第二进程的所述第二标识,并恢复所述第二进程的调度策略为所述第二调度策略。
一种可能的实现方式,所述第一调度策略或所述第二调度策略包括以下至少一项:轮询调度、先进先出调度、完全公平调度。
第二方面,本申请提供一种进程调度装置,包括:获取单元,用于获取第一调度策略和第二调度策略;其中,第二进程被第一进程调用,在所述第二进程未被所述第一进程调用时,所述第一调度策略用于调度所述第一进程,所述第二调度策略用于调度所述第二进程;传递单元,用于在所述第一调度策略与所述第二调度策略满足目标条件时,将所述第一调度策略传递至所述第二进程,并在所述第一进程调用所述第二进程时,通过所述第一调度策略对所述第二进程进行调度。
一种可能的实现方式,所述第一调度策略包括以下至少一项:为第一进程分配资源的方式、为第一进程分配调度优先级的方式;所述第二调度策略包括以下至少一项:为第二进程分配资源的方式、为第二进程分配调度优先级的方式;所述目标条件包括以下至少一项:所述第二进程所分配的资源量少于所述第一进程所分配的资源量、所述第二进程的调度优先级低于所述第一进程的调度优先级。
一种可能的实现方式,所述第一进程分配的资源和所述第二进程分配的资源包括:计算资源、存储资源、信号传输资源中的至少一个。
一种可能的实现方式,所述获取单元具体用于:在所述第一进程等待执行时、或在所述第一进程在执行中时,获取所述第一调度策略;在所述第一进程向所述第二进程发起调用请求时、或在所述第二进程等待执行时、或在所述第二进程在执行中时,获取所述第二调度策略。
一种可能的实现方式,所述进程调度装置还包括:管理单元,用于利用队列管理第一进程和第二进程的执行状态,所述执行状态包括等待执行和在执行中。
一种可能的实现方式,所述第一进程和所述第二进程是车辆系统中的用于完成目标任务的进程;所述目标条件还包括所述第一进程和/或所述第二进程包括第一标识,所述第一标识为根据所述目标任务的优先程度确定的,所述第一标识用于表示所述第一进程与所述第二进程之间是可传递调度策略的。
一种可能的实现方式,所述装置还包括:处理单元,用于若所述第一进程和/或所述第二进程不包括所述第一标识,则在所述第一进程调用所述第二进程时,通过所述第二调度策略调度所述第二进程。
一种可能的实现方式,所述处理单元还用于:在更新所述第二进程的调度策略为所述第一调度策略后,所述第二进程还包括第二标识,所述第二标识用于表示所述第二进程的调度策略已更新。
一种可能的实现方式,所述处理单元还用于:在所述第二进程执行完毕后,清除所述第二进程的所述第二标识,并恢复所述第二进程的调度策略为所述第二调度策略。
一种可能的实现方式,所述第一调度策略或所述第二调度策略包括以下至少一项:轮询调度、先进先出调度、完全公平调度。
第三方面,一种进程调度装置,所述装置包括:存储器,用于存储非暂时性计算机可读指令;以及处理器,用于运行所述计算机可读指令,使得所述计算机可读指令被所述处理器执行时实现前述任意一种进程调度方法。
第四方面,本申请提供一种车辆,包括前述任意一种进程调度装置。
第五方面,本申请提供一种计算机可读存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时,使得所述计算机执行前述任意一种进程调度方法。
附图说明
图1是本申请一个实施例的系统架构图;
图2是本申请另一实施例的系统架构图;
图3是本申请一个实施例的进程调度方法的流程示意图;
图4是本申请另一实施例的进程调度方法的流程示意图;
图5是本申请一个实施例的进程调度装置的示意图;
图6是本申请另一实施例的进程调度装置的示意图。
具体实施方式
以下,首先对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
在本申请中,一个进程可以是用于完成某种任务(也称为业务)的一系列进程中的一个,因此也可称为业务进程或任务进程。属于同一任务的这一系列进程,通过调用关系,形成为链式关系、或更复杂的树状关系等进程拓扑关系。在调度和执行时根据该调用关系依次唤醒相应的进程,以顺利完成整个任务。需注意,在本申请中,对进程、线程、协程等相似概念不做区分,可统称为进程或线程。
在本申请中,进程调度也称为进程管理、资源调度,用于在进程在被执行前或被执行时,以一定策略来为其分配诸如计算资源、存储资源、信号传输资源等资源,例如动态地把资源分配给处于就绪队列中的多个进程中某一个或某一些进程。可选的,调度策略包括进程所分配的资源量和所分配的调度优先程度。
在传统的移动设备中,进程被分为前台和后台两种状态,前台进程默认为当前用户正在操作的进程,通常会被赋予较高的调度优先级,位于后台的进程通常为服务进程,具备普通调度优先级。
而车辆系统与传统移动设备系统具有诸多不同。以车辆的智能座舱系统为例,智能座舱系统中的进程具有完成一项任务需要的进程链路长、功能依赖复杂度高、并发性高、前后台概念相对模糊等特点,因此,如果仍然仅基于前述的前后台的调度策略,仅提高前台应用进程的调度优先级,已不能满足车辆系统的需求。
例如,当高调度优先级的进程依赖某个后台服务进程来完成某项操作时,若被依赖的进程的调度优先级并不高,这就会导致在系统资源紧张时,该低调度优先级的进程因为调度不及时而导致用户发起的操作得不到立即处理,从而造成不好的性能体验。
请参阅图1,在一些可选示例,调度系统可以是车辆系统的一个子系统,用于调度车辆系统中的业务层中的进程;具体的,调度系统和被调度的对象可以是车辆系统中的两个软件进程。请参阅图2,在另一些可选示例中,调度系统可以设置于独立于车辆的另一装置中,通过与车辆系统进行交互以调度车辆系统中的进程。
基于上述问题,本申请提供一种进程调度方法、装置、车辆及存储介质。如图2所示,图2为本申请的进程调度方法一个实施例的示意性流程框图。在本申请的一些实施例中,请参阅图1,本申请示例的进程调度方法应用于车辆,主要包括以下的步骤S11至步骤S12。
步骤S11,获取第一调度策略和第二调度策略。
其中,第二进程被第一进程调用,或者说,第二进程是被第一进程发起的请求所唤醒的进程。因此,第一进程也称为请求进程、唤醒进程或调用进程,第二进程也称为被请求进程、被唤醒进程或被调用进程。在第二进程尚未被第一进程调用时,第一调度策略用于调度第一进程,第二调度策略用于调度第二进程。
需注意,前述第一进程和第二进程仅是进程拓扑中的任意两个具有调用关系的进程,事实上,一个目标任务所对应的进程拓扑可以包括任意数量的进程。
具体的,第一进程和第二进程是车辆系统中的用于完成目标任务的进程;例如,第一进程和第二进程可以是车辆座舱系统中的完成目标任务的进程。作为一个具体示例,当驾驶员说出“我想去A位置”,那么第一进程可以是语音识别(简称ASR)进程,第一进程在执行时会调用第二进程,该第二进程是自然语意理解(简称NLU)进程;接着第二进程在执行时可以调用第三进程,该第三进程是地图搜索线程;第三进程在执行时可以调用第四进程,该第四进程是地图算路线程;第四进程在执行时可以调用第五进程,该第五进程是地图渲染线程。
可选的,在第一调度策略中可以包含以下的至少一项:为第一进程分配资源的方式、为第一进程分配调度优先级的方式。可选的,在第二调度策略中可以包含以下至少一项:为第二进程分配资源的方式、为第二进程分配调度优先级的方式。其中,第一进程分配的资源包括但不限于计算资源、存储资源、信号传输资源中的至少一个;第二进程分配的资源包括但不限于计算资源、存储资源、信号传输资源中的至少一个。
需注意,可以同时获取第一调度策略和第二调度策略,例如预先获取目标任务对应的每个进程的调度策略;或者,也可以分别获取第一调度策略、第二调度策略。具体的,在一些可选示例中,本步骤S11中的获取第一调度策略可以具体包括:在第一进程等待执行时,获取第一调度策略;或者,在第一进程在执行中时,获取第一调度策略。在一些可选示例中,本步骤S11中的获取第二进程的调度策略可以具体包括:在第一进程向第二进程发起调用请求时,获取第二调度策略;或者,在第二进程等待执行时,获取第二调度策略;或者,在第二进程在执行中时,获取第二调度策略。需要说明的是,前述的在第一进程向第二进程发起调用请求时指的是:在第一进程唤醒第二进程时,例如,第一进程要求第二进程来完成某种任务。
需注意,在一些示例中,可以利用队列管理第一进程和第二进程的执行状态。具体的,进程的执行状态可以包括等待执行和在执行中。具体的,在一个可选示例中,可以利用一个队列(不妨称为runnable队列、或称为可执行队列)管理进程:一个进程存入该队列表示该进程等待执行,从该队列中取出一个进程表示该进程被执行。在另一可选示例中,可以利用多个队列来管理进程:每个队列对应于不同的执行状态;例如,可以利用两个队列来管理进程,第一队列用于记录等待执行的进程,第二队列用于记录在执行中的进程,当一个进程从第一队列取出并存入第二队列时,表示该进程从等待执行状态转换为在执行中状态。
从而,在利用一个队列管理第一进程和第二进程的执行状态的示例中,本步骤S11中的获取第一调度策略可以具体包括:在第一进程存入可执行队列时,获取第一调度策略;或者,在第一进程从该可执行队列中取出时,获取第一调度策略。本步骤S11中的获取第二调度策略可以具体包括:在第一进程向第二进程发起调用请求时,获取第二调度策略;或者,在第二进程存入可执行队列时,获取第二调度策略;或者,在第二进程从该可执行队列中取出时,获取第二调度策略。另外,在利用两个队列管理第一进程和第二进程的执行状态的示例中,本步骤S11中的获取第一调度策略可以具体包括:在第一进程存入第一队列时,获取第一调度策略;或者,在第一进程存入第二队列时,获取第一调度策略。本步骤S11中的获取第二调度策略可以具体包括:在第一进程向第二进程发起调用请求时,获取第二调度策略;或者,在第二进程存入第一队列时,获取第二调度策略;或者,在第二进程存入第二队列时,获取第二调度策略。
步骤S12,在第一调度策略与第二调度策略满足目标条件时,将第一调度策略传递至(也称为赋予)第二进程,并在第一进程调用第二进程时,通过第一调度策略对第二进程进行调度。通过在进程间进行调度策略的传递,可以实现整条调用链上的进程都能以较优的调度策略参与调度。
可选的,前述的目标条件包括以下至少一项:第二进程所分配的资源量少于第一进程所分配的资源量、第二进程的调度优先级低于第一进程的调度优先级。
具体的,调度策略可以包括调度方法和优先级。每种调度策略具有对应的资源分配方式和调度优先程度。其中,调度方法也称为调度算法、调度方式,可以包括但不限于轮询调度(RR)、先进先出调度(FIFO)、完全公平调度(CFS)等方式。而每种调度方法可以对应多个优先级。需注意,除优先级外,调度方法也会影响优先程度,在一些示例中,轮询调度的最低的优先级也高于完全公平调度的最高的优先级。
以基于Linux的车辆系统的进程管理为例,调度算法可以分为实时调度方法和普通调度方法(SCHED_NORMAL),而实时进程又包括轮询调度(SCHED_RR)和先进先出调度(SCHED_FIFO)等方式。其中,SCHED_NORMAL也称为SCHED_OTHER,基于完全公平调度算法CFS来实现分时调度;SCHED_RR是一种实时调度策略,完全基于优先级来实现调度时间片轮转;SCHED_FIFO是另一种实时调度策略,遵循先到先得的原则,需要适用方(某个进程)主动放弃运行权,方可将资源释放给其它进程,否则将一直占用。以上三种调度策略的优先程度关系如下:SCHED_NORMAL<SCHED_RR<SCHED_FIFO。另外,这三种调度方法均分别包括多种优先级。
需注意,一个目标任务所对应的进程拓扑可以包括任意数量的进程,前述第一进程和第二进程仅是进程拓扑中的任意两个具有调用关系的进程,而对于三个或三个以上的进程的情形,可以在多个进程中的具有调用关系的任意两个进程中,将发起调用的进程作为本申请示例的方法步骤中的第一进程,将被调用的进程作为本申请示例的方法步骤中的第二进程,并且根据多个进程之间的调用关系依次执行本申请示例的方法步骤,以多次进行调度策略的传递,从而将调度策略传递至进程拓扑中的所有进程。
利用本申请提出的进程调度方法,能够实现以调用相依赖的多个进程均以较高优先程度参与调度,从而提高任务被及时调度的概率,进而提升用户体验。
在本申请的一些实施例中,前述的目标条件还包括第一进程和/或第二进程包括第一标识,第一标识为根据目标任务的优先程度确定的,第一标识用于表示第一进程与第二进程之间是可传递调度策略的。
图4为本申请实施例提供的进程调度方法的另一个实施例示意图。请参阅图4,在本申请的一个具体实施例中,本申请的进程调度方法可以包括如下的步骤S21至步骤S29。
步骤S21,基于目标任务的优先程度,为任务对应的进程添加第一标识(也可以为标签、标志)。
可选的,可以设置调度监视器层,并在该调度监视器层为进程添加第一标识。
可选的,可以在目标任务上加第一标识,用于表征目标任务对应的所有进程均可传递调度策略;可选的,可以在第一进程或第二进程上添加第一标识,以分别表征各个进程是否是可传递调度策略的。
步骤S22,在内核调度器调度第一进程的过程中,检查第一进程是否具有第一标识。
步骤S23,若第一进程具有第一标识,则提取第一进程的当前的调度策略,记为第一调度策略。
可选的,也可以不包括前述步骤S22,并且无论第一进程是否具有第一标识,都提取第一进程的当前的调度策略,记为第一调度策略。
步骤S24,第一进程向第二进程发起请求,传递请求以唤醒被请求的第二进程。
步骤S25,内核调度器提取第二进程的当前的调度策略,记为第二调度策略。
步骤S26,调度器判断目标条件是否满足,若目标条件满足,则将第二进程的调度策略更新为第一调度策略。
可选的,该目标条件包括第一目标条件和第二目标条件。其中,第一目标条件为:第一调度策略优于第二调度策略,例如第二调度策略的优先级低于第一调度策略的优先级、第二调度策略为进程分配的资源少于第一调度策略为进程分配的资源;第二目标条件为:第一进程和/或第二进程具有第一标识。若同时满足第一目标条件和第二目标条件,才传递调度策略。而若不满足目标条件,例如若第一进程和/或第二进程不包括第一标识,则在第一进程调用第二进程时,通过第二调度策略调度第二进程。
需要说明的是,前述的检查第一进程和/或第二进程是否具有第一标识,以及前述的若第一进程和/或第二进程不包括第一标识,则在第一进程调用第二进程时,通过第二调度策略调度第二进程,指的是:可以仅检查第一进程是否具有第一标识,若第一进程具有该第一标识则表示满足第二目标条件,事实上这时该第一标识用于表示进程的调度策略是否可以传递给其他进程;或者可以仅检查第二进程是否具有第一标识,若第二进程具有该第一标识则表示满足第二目标条件,事实上这时该第一标识用于表示进程的调度策略是否可以改变为其他进程的调度策略;或者,还可以既检查第一进程是否具有第一标识、又检查第二进行是否具有第一标识,并且若这两个进程都具有该第一标识,则表示满足第二目标条件。
步骤S27,在更新第二进程的调度策略为第一调度策略后,第二进程还包括第二标识,第二标识用于表示第二进程的调度策略已更新。
可选的,将第二进程的调度策略更新为第一调度策略的具体过程可以包括:将第二进程的调度策略替换为第一进程的调度策略,并记录第二进程的原始的调度策略(即第二调度策略),并为第二进程添加第二标识。或者,可选的,将第二进程的调度策略更新为第一调度策略的具体过程可以包括:将第二进程的调度策略重新写为第一调度策略,而第二进程的原始的调度策略(即第二调度策略)失效。
步骤S28,第二进程被调度并执行,若第二进程触发请求其它依赖线程,则将发起调用的进程视为第一进程、将被调用的进程视为第二进程、并重复前述的步骤S22至步骤S28。
步骤S29,任务执行结束时,例如任务对应的所有进程均执行完毕或任务被中止,调度器清除以上进程的第二标识,并恢复各个进程的调度策略为各进程原本的调度策略。
需注意,本申请不限制前述的添加第一标识的时机和利用第一标识进行判断的时机,只需在利用第一标识判断是否执行前述的将第一调度策略传递至第二进程之前即可。
需注意,本申请对于第一标识和第二标识的具体形式不做限定,例如,可以为需要进行调度策略传递的进程设置一个用于表示可传递的字段作为第一标识,而对于不需要进行调度策略传递的进程不设置该字段;或者,也可以为每个进程均添加一个是否需要进行调度策略传递的字段作为第一标识,如果该字段取第一值(例如取值为1)则表示可传递,如果该字段取第二值(例如取值为0)则表示不需要或不能传递。
需注意,本申请的前述实施例虽然仅描述了两个进程之间的调度策略的传递,事实上,对于超过两个的多个进程的情形,例如在属于同一任务的依次调用的整个进程链(或进程树)中,在两两进程之间通过本申请前述实施例示出的进程调度方法进行的调度策略的传递后,即可以实现逐级传递进程的调度策略。
图5为根据本申请的一个实施例的进程调度装置的示意性框图。请参阅图5,本申请的实施例还提供一种进程调度装置100,该装置主要包括:获取单元101和传递单元102。
其中,该获取单元101用于:获取第一调度策略和第二调度策略。其中,第二进程被第一进程调用,在第二进程未被第一进程调用时,第一调度策略用于调度第一进程,第二调度策略用于调度第二进程。
该传递单元102用于:在第一调度策略与第二调度策略满足目标条件时,将第一调度策略传递至第二进程,并在第一进程调用第二进程时,通过第一调度策略对第二进程进行调度。
另外,本申请实施例示出的各种进程调度装置100包括有用于执行前述各个实施例所述方法对应的模块和单元,而其详细说明和技术效果可以参考前述各实施例中的相应说明,在此不再赘述。
图6是图示根据本发明的一个实施例的进程调度装置的示意性框图。如图6所示,根据本公开实施例的进程调度装置200包括存储器201和处理器202。
该存储器201用于存储非暂时性计算机可读指令。具体地,存储器201可以包括一个或多个计算机程序产品,该计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。该易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。该非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。
该处理器202可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制进程调度装置200中的其它组件以执行期望的功能。在本公开的一个实施例中,该处理器202用于运行该存储器201中存储的该计算机可读指令,使得该进程调度装置200执行前述的本公开各实施例的进程调度方法的全部或部分步骤。
有关本实施例的详细说明和技术效果可以参考前述各实施例中的相应说明,在此不再赘述。
本申请的实施例还提供一种车辆,该车辆包括任意一个上述实施例中的进程调度装置。
本申请的实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在设备上运行时,使得设备执行上述相关方法步骤实现上述实施例中的进程调度方法。
本申请的实施例还提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的进程调度方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的进程调度方法。
其中,本申请提供的装置、车辆、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
需要说明的是,在本文中,诸如“第一”、“第二”等关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。另外,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅是本申请的较佳实施例而已,并非对本申请做任何形式上的限制,虽然本申请已以较佳实施例揭露如上,然而并非用以限定本申请,任何熟悉本专业的技术人员,在不脱离本申请技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所做的任何简单修改、等同变化与修饰,均仍属于本申请技术方案的范围内。
Claims (14)
1.一种进程调度方法,其特征在于,应用于车辆,所述方法包括:
获取第一调度策略和第二调度策略;第二进程被第一进程调用;在所述第二进程未被所述第一进程调用时,所述第一调度策略用于调度所述第一进程,所述第二调度策略用于调度所述第二进程;
在所述第一调度策略与所述第二调度策略满足目标条件时,将所述第一调度策略传递至所述第二进程,并在所述第一进程调用所述第二进程时,通过所述第一调度策略对所述第二进程进行调度。
2.根据权利要求1所述的方法,其特征在于,
所述第一调度策略包括以下至少一项:为第一进程分配资源的方式、为第一进程分配调度优先级的方式;
所述第二调度策略包括以下至少一项:为第二进程分配资源的方式、为第二进程分配调度优先级的方式;
所述目标条件包括以下至少一项:所述第二进程所分配的资源量少于所述第一进程所分配的资源量、所述第二进程的调度优先级低于所述第一进程的调度优先级。
3.根据权利要求2所述的方法,其特征在于,所述第一进程分配的资源和所述第二进程分配的资源包括:计算资源、存储资源、信号传输资源中的至少一个。
4.根据权利要求1至3中任一项所述的方法,其特征在于,
所述获取第一调度策略具体包括:在所述第一进程等待执行时、或在所述第一进程在执行中时,获取所述第一调度策略;
所述获取第二调度策略具体包括:在所述第一进程向所述第二进程发起调用请求时、或在所述第二进程等待执行时、或在所述第二进程在执行中时,获取所述第二调度策略。
5.根据权利要求4所述的方法,其特征在于,所述进程调度方法还包括:
利用队列管理第一进程和第二进程的执行状态,所述执行状态包括等待执行和在执行中。
6.根据权利要求1至5中任一项所述的方法,其特征在于,
所述第一进程和所述第二进程是车辆系统中的用于完成目标任务的进程;
所述目标条件还包括所述第一进程和/或所述第二进程包括第一标识,所述第一标识为根据所述目标任务的优先程度确定的,所述第一标识用于表示所述第一进程与所述第二进程之间是可传递调度策略的。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述第一进程和/或所述第二进程不包括所述第一标识,则在所述第一进程调用所述第二进程时,通过所述第二调度策略调度所述第二进程。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
在更新所述第二进程的调度策略为所述第一调度策略后,所述第二进程还包括第二标识,所述第二标识用于表示所述第二进程的调度策略已更新。
9.根据权利要求8所述的方法,其特征在于,所述进程调度方法还包括:在所述第二进程执行完毕后,清除所述第二进程的所述第二标识,并恢复所述第二进程的调度策略为所述第二调度策略。
10.根据权利要求1-9任一项所述的方法,其特征在于,
所述第一调度策略或所述第二调度策略包括以下至少一项:轮询调度、先进先出调度、完全公平调度。
11.一种进程调度装置,其特征在于,所述装置包括:
获取单元,用于获取第一调度策略和第二调度策略;其中,第二进程被第一进程调用,在所述第二进程未被所述第一进程调用时,所述第一调度策略用于调度所述第一进程,所述第二调度策略用于调度所述第二进程;
传递单元,用于在所述第一调度策略与所述第二调度策略满足目标条件时,将所述第一调度策略传递至所述第二进程,并在所述第一进程调用所述第二进程时,通过所述第一调度策略对所述第二进程进行调度。
12.一种进程调度装置,包括:
存储器,用于存储非暂时性计算机可读指令;以及
处理器,用于运行所述计算机可读指令,使得所述计算机可读指令被所述处理器执行时实现权利要求1至10中任一项所述的进程调度方法。
13.一种车辆,其特征在于,包括如权利要求11所述的进程调度装置。
14.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在设备上运行时,使得所述设备执行如权利要求1至10中任一项所述的进程调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111669510.4A CN116414532A (zh) | 2021-12-31 | 2021-12-31 | 进程调度方法、装置、车辆及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111669510.4A CN116414532A (zh) | 2021-12-31 | 2021-12-31 | 进程调度方法、装置、车辆及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116414532A true CN116414532A (zh) | 2023-07-11 |
Family
ID=87055094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111669510.4A Pending CN116414532A (zh) | 2021-12-31 | 2021-12-31 | 进程调度方法、装置、车辆及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116414532A (zh) |
-
2021
- 2021-12-31 CN CN202111669510.4A patent/CN116414532A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107038069B (zh) | Hadoop平台下动态标签匹配DLMS调度方法 | |
CN107977268B (zh) | 人工智能的异构硬件的任务调度方法、装置及可读介质 | |
CN109034396B (zh) | 用于处理分布式集群中的深度学习作业的方法和装置 | |
US8539498B2 (en) | Interprocess resource-based dynamic scheduling system and method | |
CN104951372A (zh) | 一种基于预测的Map/Reduce数据处理平台内存资源动态分配方法 | |
CN108737560A (zh) | 云计算任务智能调度方法及系统、可读存储介质、终端 | |
CN112363821A (zh) | 一种计算资源调度方法、装置及计算机设备 | |
CN109117280B (zh) | 电子装置及其限制进程间通信的方法、存储介质 | |
CN111897637B (zh) | 作业调度方法、装置、主机及存储介质 | |
CN109947552A (zh) | 基于进程与线程调度的边缘控制器动态任务调度方法 | |
WO2016074130A1 (zh) | 一种系统调用命令的批处理方法及装置 | |
WO2022002247A1 (zh) | 资源调度方法、电子设备及存储介质 | |
CN108874549A (zh) | 资源复用方法、装置、终端和计算机可读存储介质 | |
US10606650B2 (en) | Methods and nodes for scheduling data processing | |
CN109117279B (zh) | 电子装置及其限制进程间通信的方法、存储介质 | |
CN114327894A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN112073532A (zh) | 一种资源分配的方法及装置 | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
CN111597035A (zh) | 基于多线程的仿真引擎时间推进方法及系统 | |
CN110928649A (zh) | 资源调度的方法和装置 | |
CN113301087B (zh) | 资源调度方法、装置、计算设备和介质 | |
CN116414532A (zh) | 进程调度方法、装置、车辆及存储介质 | |
CN113254143B (zh) | 虚拟化网络功能网元编排调度方法、装置和系统 | |
CN111277663B (zh) | 一种双服务池建筑智能管控方法及系统 | |
EP1659493A1 (en) | Replacing idle process when doing fast messaging |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |