CN106775975A - 进程调度方法及装置 - Google Patents
进程调度方法及装置 Download PDFInfo
- Publication number
- CN106775975A CN106775975A CN201611122050.2A CN201611122050A CN106775975A CN 106775975 A CN106775975 A CN 106775975A CN 201611122050 A CN201611122050 A CN 201611122050A CN 106775975 A CN106775975 A CN 106775975A
- Authority
- CN
- China
- Prior art keywords
- cpu
- parent
- ready queue
- currently performed
- ready
- 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.)
- Granted
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种进程调度的方法及装置。该方法包括:确定第一目标中央处理器CPU当前执行的进程的父进程号;从多个就绪队列中选择父进程号与所述第一目标CPU当前执行的进程的父进程号一致的进程;将选择的进程添加到所述第一目标CPU的就绪队列中,以实现进程的调度。本发明实施例通过将父进程号与第一目标CPU当前执行的进程的父进程号一致的进程添加到第一目标CPU的就绪队列中,使得父进程号一致的进程可以通过已经执行该父进程所属的子进程的CPU执行,并使得终端可以从该CPU的缓存中直接调用数据,而不是从内存中调用数据,从而避免了终端资源的浪费,缩短了执行进程的时间,进而提高了终端系统的实时性。
Description
技术领域
本发明涉及终端技术领域,特别涉及一种进程调度方法及装置。
背景技术
随着终端技术的快速发展,终端中可以设有多个CPU(Central Processing Unit,中央处理器),终端可以通过该多个CPU执行进程,但是一个CPU同一时间只能执行一个进程,因此,终端需要对当前待执行的多个进程进行调度,并将该多个进程分配给不同的CPU去执行。
目前,终端通常采用的进程调度方法为:当一个进程被创建时,终端遍历多个CPU中的每个CPU的就绪队列,以从该多个CPU中确定待执行的进程最少的PCU,就绪队列用于存储终端为CPU分配的多个待执行的进程。之后,该终端可以将创建的进程分配给确定的CPU。
现有的进程调度控制中,大多仅考虑就绪队列中待执行的进程的数量,而对其他相关因素的考虑很少,因此进程的调度控制策略有待优化。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种进程调度方法及装置,能够优化进程的调度控制,提高系统资源的利用效率。
一方面,提供了一种进程调度方法,所述方法包括:
确定第一目标中央处理器CPU当前执行的进程的父进程号,所述第一目标CPU为多个CPU中的任一个;
从多个就绪队列中选择父进程号与所述第一目标CPU当前执行的进程的父进程号一致的进程,所述多个就绪队列与所述多个CPU一一对应,且各个就绪队列用于存储各个CPU待执行的进程;
将选择的进程添加到所述第一目标CPU的就绪队列中,以实现进程的调度。
可选地,所述从多个就绪队列中选择父进程号与所述第一目标CPU当前执行的进程的父进程号一致的进程,包括:
对多个就绪队列进行遍历,得到所述多个就绪队列中每个进程的父进程号;
判断所述每个进程的父进程号是否与所述第一目标CPU当前执行的进程的父进程号相同,若是,则确定出父进程号与所述第一目标CPU当前执行的进程的父进程号一致的进程。
可选地,所述确定第一目标中央处理器CPU当前执行的进程的父进程号,包括:
获取所述第一目标CPU当前执行的进程的进程信息;
从所述第一目标CPU当前执行的进程的进程信息中,确定所述第一目标CPU当前执行的进程的父进程号。
可选地,所述将选择的进程添加到所述第一目标CPU的就绪队列中之前,还包括:
确定所述第一目标CPU的就绪队列中的进程数量,判断确定的进程数量是否超过预设数量,若否,执行所述将选择的进程添加到所述第一目标CPU的就绪队列中的步骤。
可选地,所述将选择的进程添加到所述第一目标CPU的就绪队列中之前,还包括:
判断所述多个CPU中是否存在第二目标CPU,所述第二目标CPU当前执行的进程的父进程号与所述第一目标CPU当前执行的进程的父进程号一致;
若否,则执行所述将选择的进程添加到所述第一目标CPU的就绪队列中的步骤;
若是,则确定所述第一目标CPU的就绪队列中的进程数量,以及所述第二目标CPU的就绪队列中的进程数量,并判断所述第一目标CPU的就绪队列中的进程数量是否小于所述第二目标CPU的就绪队列中的进程数量,若是,则执行所述将选择的进程添加到所述第一目标CPU的就绪队列中的步骤。
另一方面,提供了一种进程调度装置,所述装置包括:
第一确定模块,用于确定第一目标中央处理器CPU当前执行的进程的父进程号,所述第一目标CPU为多个CPU中的任一个;
选择模块,用于从多个就绪队列中选择父进程号与所述第一目标CPU当前执行的进程的父进程号一致的进程,所述多个就绪队列与所述多个CPU一一对应,且各个就绪队列用于存储各个CPU待执行的进程;
调度模块,用于将选择的进程添加到所述第一目标CPU的就绪队列中,以实现进程的调度。
可选地,所述选择模块从多个就绪队列中选择父进程号与所述第一目标CPU当前执行的进程的父进程号一致的进程,包括:
对多个就绪队列进行遍历,得到所述多个就绪队列中每个进程的父进程号;
判断所述每个进程的父进程号是否与所述第一目标CPU当前执行的进程的父进程号相同,若是,则确定出父进程号与所述第一目标CPU当前执行的进程的父进程号一致的进程。
可选地,所述第一确定模块确定第一目标中央处理器CPU当前执行的进程的父进程号,包括:
获取所述第一目标CPU当前执行的进程的进程信息;
从所述第一目标CPU当前执行的进程的进程信息中,确定所述第一目标CPU当前执行的进程的父进程号。
可选地,所述装置还包括:
第二确定模块,用于确定所述第一目标CPU的就绪队列中的进程数量,判断确定的进程数量是否超过预设数量,若否,调用所述调度模块将选择的进程添加到所述第一目标CPU的就绪队列中。
可选地,所述装置还包括:
判断模块,用于判断所述多个CPU中是否存在第二目标CPU,其中,所述第二目标CPU当前执行的进程的父进程号与所述第一目标CPU当前执行的进程的父进程号一致;
若否,则调用所述调度模块将选择的进程添加到所述第一目标CPU的就绪队列中,
若是,则确定所述第一目标CPU的就绪队列中的进程数量,以及所述第二目标CPU的就绪队列中的进程数量,并判断所述第一目标CPU的就绪队列中的进程数量是否小于所述第二目标CPU的就绪队列中的进程数量,若第一目标CPU的就绪队列中的进程数量小于第二目标CPU的就绪队列中的进程数量,则调用所述调度模块将选择的进程添加到所述第一目标CPU的就绪队列中。
本发明实施例提供的技术方案带来的有益效果是:
首先,本发明通过确定第一目标CPU当前执行的进程的父进程号,然后可以从多个就绪队列中,选择父进程号与第一目标CPU当前执行的进程的父进程号一致的进程,并将选择的进程添加到第一目标CPU的就绪队列中,也即是终端可以将父进程号一致的进程添加到同一CPU的就绪队列中,进而可以通过同一CPU执行父进程号一致的进程。当终端通过该CPU执行父进程号一致的任一进程时,可以直接从该CPU的缓存中调用数据,而不是从内存中调用数据,提高了数据调用的效率,优化了进程调度的策略,而且能够避免终端资源的浪费,缩短执行进程的时间,进而改善终端系统的实时性。
其次,本发明通过在将所选择的进程添加到目标CPU的进程队列之前判断目标CPU的就绪队列的进程数量,将目标CPU的就绪进程数量作为进程调度的又一考虑因素,在上述考虑同一父进程所属的各子进程之间共享部分信息从而在已执行该父进程所属子进程的CPU上执行的基础上,进一步优化了进程调度的策略,能够进一步改善终端系统的实时性。
再次,本发明通过在将所选择的进程添加到第一目标CPU的就绪队列之前判断是否存在同样执行该第一目标CPU当前执行进程的父进程所属的子进程的第二目标CPU,并判断第一和第二目标CPU的就绪队列的进程数量,选择将待添加的进程添加到进程数量较小的就绪队列中,将执行同一父进程所属的各个子进程的多个CPU作为进程调度的又一考虑因素,在上述考虑同一父进程所属的各子进程之间共享部分信息从而在已执行该父进程所属子进程的CPU上执行的基础上,对能够执行同一父进程所属的各子进程的CPU进行了细化,进一步优化了进程调度的策略,能够进一步改善终端系统的实时性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种进程调度方法的流程图;
图2是本发明实施例提供的另一种进程调度方法的流程图;
图3A是本发明实施例提供的一种进程调度装置的框图;
图3B是本发明实施例提供的另一种进程调度装置的框图;
图3C是本发明实施例提供的第三种进程调度装置的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在对本发明实施例进行详细的解释说明之前,先对本发明实施例的应用场景予以介绍。在终端中,一个进程可以创建多个子进程,其中,创建子进程的进程被称为父进程,且属于同一父进程的多个子进程的父进程号均相同。当一个父进程创建多个子进程之后,终端可以为该多个子进程分别分配内存空间,然后将父进程的代码、堆、栈等数据拷贝到该多个子进程各自的内存空间中,使得当终端执行任一子进程出现错误时,不会破坏父进程的内存空间中的数据。
当终端通过任一个CPU执行某个子进程时,可能会将执行该子进程用到的某些数据和指令存储在该CPU的缓存中,而终端执行属于同一个父进程的其他子进程时可能也会用到一部分相同的数据和指令。当属于同一个父进程的其他子进程在该CPU上执行时,终端可以直接从该CPU的缓存中调取这些数据和指令,而当属于同一个父进程的其他子进程在该CPU之外的其他CPU上执行时,终端则需要从内存中调取这些数据和指令,从而延长了执行子进程的时间,造成了终端资源的浪费,并降低了终端系统的实时性。
为此,本发明通过如下任一实施例,将与第一目标CPU当前执行的进程的父进程号一致的进程调度到第一目标CPU上执行。需要说明的是,本发明实施例提供的进程调度方法可以应用于Linux系统,当然,实际应用中,还可以应用于其他系统,比如Unix系统等等。
本发明实施例提供了一种进程调度方法,参见图1,该方法包括:
步骤101:确定第一目标中央处理器CPU当前执行的进程的父进程号,该第一目标CPU为多个CPU中的任一个。
步骤102:从多个就绪队列中选择父进程号与第一目标CPU当前执行的进程的父进程号一致的进程,该多个就绪队列与多个CPU一一对应,且各个就绪队列用于存储各个CPU待执行的进程。
步骤103:将选择的进程添加到第一目标CPU的就绪队列中,以实现进程的调度。
在本发明实施例中,第一目标CPU可以是终端上多个CPU中的任意一个。首先确定第一目标CPU当前执行的进程的父进程号,然后可以从多个就绪队列中,选择父进程号与第一目标CPU当前执行的进程的父进程号一致的进程,并将选择的进程添加到第一目标CPU的就绪队列中,也即是终端可以将父进程号一致的进程添加到同一CPU的就绪队列中,进而可以通过同一CPU执行父进程号一致的进程。当终端通过该CPU执行父进程号一致的任一进程时,可以直接从该CPU的缓存中调用数据,而不是从内存中调用数据,提高了数据调用的效率,从而避免了终端资源的浪费,缩短了执行进程的时间,进而有利于改善终端系统的实时性。
本发明实施例提供了一种进程调度方法,参见图2,该方法包括:
步骤201:确定第一目标CPU当前执行的进程的父进程号,第一目标CPU为多个CPU中的任一个CPU。
其中,终端首先获取第一目标CPU当前执行的进程的进程信息,然后从第一目标CPU当前执行的进程的进程信息中,确定第一目标CPU当前执行的进程的父进程号。
需要说明的是,该进程信息可以包括进程的进程号、父进程号、组进程号,当然,实际应用中,还可以包括实际用户ID(Identity,身份标识号码)、有效用户ID等等。
步骤202:对多个就绪队列进行遍历,得到该多个就绪队列中每个进程的父进程号,该多个就绪队列与多个CPU一一对应,且各个就绪队列用于存储各个CPU待执行的进程。
其中,终端对多个就绪队列进行遍历,然后从各个就绪队列存储的每个进程的进程信息中,获取每个进程的父进程号。
需要说明的是,当一个进程被创建时,终端会为该进程分配一个CPU,以执行该进程,此时终端会将该进程的进程信息添加到该CPU的就绪队列中,以将该进程存储到该CPU的就绪队列中。
另外,由于终端中不断有进程被创建,因此多个就绪队列也在实时更新,此时终端可以通过设置定时器,以实现每隔预设时长对多个就绪队列进行遍历,从而提高对多个就绪队列进行遍历的实时性。
步骤203:判断每个进程的父进程号是否与第一目标CPU当前执行的进程的父进程号相同,若是,则执行步骤S204,
步骤S204:确定出父进程号与第一目标CPU当前执行的进程的父进程号一致的进程。
将对多个就绪队列进行遍历得到的每个进程的父进程号与第一目标CPU当前执行的进程的父进程号进行比较,从而可以确定出父进程号与第一目标CPU当前执行的进程的父进程号一致的进程。由于多个就绪队列用于存储各个CPU待执行的进程,也即是,该多个就绪队列中存储的进程还未开始执行,因此,从该多个就绪队列中确定出父进程号与第一目标CPU当前执行的进程的父进程号一致的进程,不会对该多个CPU当前正在执行的进程造成影响,从而可以保证终端的稳定运行。
步骤205:将选择的进程添加到第一目标CPU的就绪队列中,以实现进程的调度。
其中,终端实现进程调度的方式可以包括下述两种实现方式:
第一种实现方式:
确定第一目标CPU的就绪队列中的进程数量,判断确定的进程数量是否超过预设数量;
若否,将选择的进程添加到第一目标CPU的就绪队列中,
否是,结束操作,并通过原先分配的CPU执行该进程。
由于终端中每个CPU的就绪队列中都存储有多个待执行的进程,而对于终端中的各个CPU,当该CPU的就绪队列中待执行的进程数量较少时,说明该CPU的负荷较轻,当该CPU的就绪队列中待执行的进程数量较多时,说明该CPU的负荷较重。因此,当确定的进程数量不超过预设数量时,也即是当第一目标CPU的就绪队列中待执行的进程数量较少时,说明第一目标CPU的负荷较轻,此时终端可以将选择的进程添加到第一目标CPU的就绪队列中,通过第一目标CPU执行选择的进程,从而不至于超出第一目标CPU的负荷,也可以兼顾终端中各个CPU的负荷,使得每个CPU的负荷不至于过重,进而提高终端的运行速度,改善终端系统的实时性。
进一步地,当确定的进程数量超过预设数量时,也即是当第一目标CPU的就绪队列中待执行的进程的数量较多时,说明第一目标CPU的负荷较重,此时终端可以结束操作,并通过原先分配的CPU执行该进程,从而减轻第一目标CPU的负荷。
其中,该预设数量可以为终端根据CPU的性能参数等事先设置的数量,比如该预设数量可以为40、50等等。
本发明的实施方式通过在将所选择的进程添加到目标CPU的进程队列之前判断目标CPU的就绪队列的进程数量,将目标CPU的就绪进程数量作为进程调度的又一考虑因素,在上述考虑同一父进程所属的各子进程之间共享部分信息从而在已经执行该父进程所属的子进程的CPU上执行的基础上,进一步优化了进程调度的策略,从而能够进一步改善终端系统的实时性。
第二种实现方式:
判断多个CPU中是否存在第二目标CPU,第二目标CPU当前执行的进程的父进程号与第一目标CPU当前执行的进程的父进程号一致;
若否,则将选择的进程添加到第一目标CPU的就绪队列中;
若是,则确定第一目标CPU的就绪队列中的进程数量,以及第二目标CPU的就绪队列中的进程数量,并判断第一目标CPU的就绪队列中的进程数量是否小于第二目标CPU的就绪队列中的进程数量,若是,则执行将选择的进程添加到第一目标CPU的就绪队列中的步骤,若否,则将所选择的进程添加到第二目标CPU的就绪队列。
由于该多个CPU当前执行的进程的父进程号可能相同,也可能不同,而当该多个CPU中至少两个CPU当前执行的进程的父进程号相同时,终端进行进程调度时,可能不知道该将选择的进程添加到哪个CPU的就绪队列中,因此,终端可以先判断多个CPU中是否存在第二目标CPU,判断多个CPU中哪个CPU当前执行的进程的父进程号与第一目标CPU当前执行的进程的父进程号一致,进而当多个CPU中不存在第二目标CPU时,说明终端中不存在与第一目标CPU当前执行的进程的父进程号一致的CPU,此时终端可以将选择的进程添加到第一目标CPU的就绪队列中,以实现进程的调度。
进一步地,当多个CPU中存在第二目标CPU时,说明终端中存在与第一目标CPU当前执行的进程的父进程号一致的CPU,此时终端可以从第一目标CPU和第二目标CPU中,选择就绪队列中进程数量较少的CPU来执行选择的进程,也即是选择负荷较轻的CPU来执行选择的进程。因此,终端可以确定第一目标CPU的就绪队列中的进程数量,以及第二目标CPU的就绪队列中的进程数量,当第一目标CPU的就绪队列中的进程数量小于第二目标CPU的就绪队列中的进程数量时,说明第一目标CPU的负荷比第二目标CPU的负荷小,此时终端可以将选择的进程添加到第一目标CPU的就绪队列中,以实现进程的调度,从而提高了终端系统的实时性,同时也兼顾第一目标CPU和第二目标CPU的负荷,通过负荷较轻的第一目标CPU执行选择的进程,可以提高终端的运行速度。
更进一步地,当第一目标CPU的就绪队列中的进程数量大于第二目标CPU的就绪队列中的进程数量时,说明第一目标CPU的负荷比第二目标CPU的负荷大,此时终端可以将选择的进程添加到第二目标CPU的就绪队列中,以实现进程的调度,同时也兼顾第一目标CPU和第二目标CPU的负荷,通过负荷较轻的第二目标CPU执行选择的进程,可以提高终端的运行速度,从而提高了终端系统的实时性。
值得注意的是,当第一目标CPU的就绪队列中的进程数量等于第二目标CPU的就绪队列中的进程数量时,说明第一目标CPU的负荷和第二目标CPU的负荷相同,此时终端可以将选择的进程添加到第一目标CPU的就绪队列中,当然,也可以将选择的进程添加到第二目标CPU的就绪队列中,以实现进程的调度。
需要说明的是,当多个CPU中存在多个第二目标CPU时,终端可以从第一目标CPU,以及多个第二目标CPU中,选择就绪队列中进程数量最少的CPU,并将选择的进程添加到就绪队列中进程数量最少的CPU的就绪队列中,以实现进程的调度。
本发明的实施方式通过在将所选择的进程添加到第一目标CPU的就绪队列之前判断是否存在同样执行该第一目标CPU当前执行进程的父进程所属的子进程的第二目标CPU,并判断第一和第二目标CPU的就绪队列的进程数量,选择将待添加的进程添加到进程数量较小的就绪队列中,将执行同一父进程所属的各个子进程的多个CPU作为进程调度的又一考虑因素,在上述考虑同一父进程所属的各子进程之间共享部分信息从而在已执行该父进程所属子进程的CPU上执行的基础上,对能够执行同一父进程所属的各子进程的CPU进行了细化,进一步优化了进程调度的策略,能够进一步改善终端系统的实时性。
综上所述,本发明通过获取多个就绪队列中每个进程的父进程号,以及第一目标CPU当前执行的进程的父进程号,然后从多个就绪队列中,选择父进程号与第一目标CPU当前执行的进程的父进程号一致的进程,当第一目标CPU的就绪队列中的进程数量不超过预设数量时,或者当多个CPU中不存在第二目标CPU时,或者当多个CPU中存在第二目标CPU,且第一目标CPU的就绪队列中的进程数量小于第二目标CPU的就绪队列中的进程数量时,终端可以将选择的进程添加到第一目标CPU的就绪队列中,也即是终端可以将父进程号一致的进程添加到同一CPU的就绪队列中,进而可以通过同一CPU执行父进程号一致的进程。当终端通过该CPU执行父进程号一致的任一进程时,可以直接从该CPU的缓存中调用相关数据,而不是从内存中调用相关数据,从而避免了终端资源的浪费,缩短了进程执行的时间,也可以兼顾各个CPU的负荷,使得每个CPU的负荷不至于过重,综合优化进程调度的策略,从而提高终端系统的资源利用效率,改善系统的实时性。
上面结合具体实施方式和附图对本发明的进程调度方法进行了说明,下面将结合附图对与上述方法对应的装置进行说明。
参见图3A,本发明实施例提供了一种进程调度装置300,该装置包括:第一确定模块301、选择模块302和调度模块303。
第一确定模块301,用于确定第一目标中央处理器CPU当前执行的进程的父进程号,第一目标CPU为多个CPU中的任一个;
选择模块302,用于从多个就绪队列中选择父进程号与第一目标CPU当前执行的进程的父进程号一致的进程,多个就绪队列与多个CPU一一对应,且各个就绪队列用于存储各个CPU待执行的进程;
调度模块303,用于将选择的进程添加到第一目标CPU的就绪队列中,以实现进程的调度。
可选地,选择模块302从多个就绪队列中选择父进程号与第一目标CPU当前执行的进程的父进程号一致的进程,包括:
对多个就绪队列进行遍历,得到多个就绪队列中每个进程的父进程号;
判断每个进程的父进程号是否与第一目标CPU当前执行的进程的父进程号相同,若是,则确定出父进程号与第一目标CPU当前执行的进程的父进程号一致的进程。
可选地,第一确定模块301确定第一目标中央处理器CPU当前执行的进程的父进程号,包括:
获取第一目标CPU当前执行的进程的进程信息;
从第一目标CPU当前执行的进程的进程信息中,确定第一目标CPU当前执行的进程的父进程号。
可选地,参见图3B,该装置还包括:
第二确定模块304,用于确定第一目标CPU的就绪队列中的进程数量,判断确定的进程数量是否超过预设数量,若否,调用调度模块将选择的进程添加到第一目标CPU的就绪队列中。
可选地,参见图3C,该装置还包括:
判断模块305,用于:
判断多个CPU中是否存在第二目标CPU,其中,第二目标CPU当前执行的进程的父进程号与第一目标CPU当前执行的进程的父进程号一致;
若否,则调用调度模块将选择的进程添加到第一目标CPU的就绪队列中,
若是,则确定第一目标CPU的就绪队列中的进程数量,以及第二目标CPU的就绪队列中的进程数量,并判断第一目标CPU的就绪队列中的进程数量是否小于第二目标CPU的就绪队列中的进程数量,若是,则调用调度模块将选择的进程添加到第一目标CPU的就绪队列中。
综上所述,在本发明实施例中,首先确定第一目标CPU当前执行的进程的父进程号,然后可以从多个就绪队列中,选择父进程号与第一目标CPU当前执行的进程的父进程号一致的进程,并将选择的进程添加到第一目标CPU的就绪队列中,也即是终端可以将父进程号一致的进程添加到同一CPU的就绪队列中,进而可以通过同一CPU执行父进程号一致的进程。当终端通过该CPU执行父进程号一致的任一进程时,可以直接从该CPU的缓存中调用数据,而不是从内存中调用数据,从而避免了终端资源的浪费,缩短了执行进程的时间,进而提高了终端系统的实时性。
需要说明的是:上述实施例提供的进程调度装置在调度进程时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的进程调度装置与进程调度方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种进程调度方法,其特征在于,所述方法包括:
确定第一目标中央处理器CPU当前执行的进程的父进程号,所述第一目标CPU为多个CPU中的任一个;
从多个就绪队列中选择父进程号与所述第一目标CPU当前执行的进程的父进程号一致的进程,所述多个就绪队列与所述多个CPU一一对应,且各个就绪队列用于存储各个CPU待执行的进程;
将选择的进程添加到所述第一目标CPU的就绪队列中,以实现进程的调度。
2.如权利要求1所述的方法,其特征在于,所述从多个就绪队列中选择父进程号与所述第一目标CPU当前执行的进程的父进程号一致的进程,包括:
对多个就绪队列进行遍历,得到所述多个就绪队列中每个进程的父进程号;
判断所述每个进程的父进程号是否与所述第一目标CPU当前执行的进程的父进程号相同,若是,则确定出父进程号与所述第一目标CPU当前执行的进程的父进程号一致的进程。
3.如权利要求1所述的方法,其特征在于,所述确定第一目标中央处理器CPU当前执行的进程的父进程号,包括:
获取所述第一目标CPU当前执行的进程的进程信息;
从所述第一目标CPU当前执行的进程的进程信息中,确定所述第一目标CPU当前执行的进程的父进程号。
4.如权利要求1至3中任意一项所述的方法,其特征在于,所述将选择的进程添加到所述第一目标CPU的就绪队列中之前,还包括:
确定所述第一目标CPU的就绪队列中的进程数量,判断确定的进程数量是否超过预设数量,若否,执行所述将选择的进程添加到所述第一目标CPU的就绪队列中的步骤。
5.如权利要求1至3中任意一项所述的方法,其特征在于,所述将选择的进程添加到所述第一目标CPU的就绪队列中之前,还包括:
判断所述多个CPU中是否存在第二目标CPU,其中,所述第二目标CPU当前执行的进程的父进程号与所述第一目标CPU当前执行的进程的父进程号一致;
若否,则执行所述将选择的进程添加到所述第一目标CPU的就绪队列中的步骤;
若是,则确定所述第一目标CPU的就绪队列中的进程数量,以及所述第二目标CPU的就绪队列中的进程数量,并判断所述第一目标CPU的就绪队列中的进程数量是否小于所述第二目标CPU的就绪队列中的进程数量,若是,则执行所述将选择的进程添加到所述第一目标CPU的就绪队列中的步骤。
6.一种进程调度装置,其特征在于,所述装置包括:
第一确定模块,用于确定第一目标中央处理器CPU当前执行的进程的父进程号,所述第一目标CPU为多个CPU中的任一个;
选择模块,用于从多个就绪队列中选择父进程号与所述第一目标CPU当前执行的进程的父进程号一致的进程,所述多个就绪队列与所述多个CPU一一对应,且各个就绪队列用于存储各个CPU待执行的进程;
调度模块,用于将选择的进程添加到所述第一目标CPU的就绪队列中,以实现进程的调度。
7.如权利要求6所述的装置,其特征在于,所述选择模块从多个就绪队列中选择父进程号与所述第一目标CPU当前执行的进程的父进程号一致的进程,包括:
对多个就绪队列进行遍历,得到所述多个就绪队列中每个进程的父进程号;
判断所述每个进程的父进程号是否与所述第一目标CPU当前执行的进程的父进程号相同,若是,则确定出父进程号与所述第一目标CPU当前执行的进程的父进程号一致的进程。
8.如权利要求6所述的装置,其特征在于,所述第一确定模块确定第一目标中央处理器CPU当前执行的进程的父进程号,包括:
获取所述第一目标CPU当前执行的进程的进程信息;
从所述第一目标CPU当前执行的进程的进程信息中,确定所述第一目标CPU当前执行的进程的父进程号。
9.如权利要求6至8中任意一项所述的装置,其特征在于,所述装置还包括:
第二确定模块,用于确定所述第一目标CPU的就绪队列中的进程数量,判断确定的进程数量是否超过预设数量,若否,调用所述调度模块将选择的进程添加到所述第一目标CPU的就绪队列中。
10.如权利要求6至8中任意一项所述的装置,其特征在于,所述装置还包括:
判断模块,用于:
判断所述多个CPU中是否存在第二目标CPU,其中,所述第二目标CPU当前执行的进程的父进程号与所述第一目标CPU当前执行的进程的父进程号一致,
若否,则调用所述调度模块将选择的进程添加到所述第一目标CPU的就绪队列中,
若是,则确定所述第一目标CPU的就绪队列中的进程数量,以及所述第二目标CPU的就绪队列中的进程数量,并判断所述第一目标CPU的就绪队列中的进程数量是否小于所述第二目标CPU的就绪队列中的进程数量,若是,则调用所述调度模块将选择的进程添加到所述第一目标CPU的就绪队列中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611122050.2A CN106775975B (zh) | 2016-12-08 | 2016-12-08 | 进程调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611122050.2A CN106775975B (zh) | 2016-12-08 | 2016-12-08 | 进程调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106775975A true CN106775975A (zh) | 2017-05-31 |
CN106775975B CN106775975B (zh) | 2020-02-14 |
Family
ID=58881628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611122050.2A Active CN106775975B (zh) | 2016-12-08 | 2016-12-08 | 进程调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106775975B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949471A (zh) * | 2019-05-16 | 2020-11-17 | 珠海格力电器股份有限公司 | 一种用于终端进程的监听控制方法 |
CN111949385A (zh) * | 2019-05-16 | 2020-11-17 | 珠海格力电器股份有限公司 | 一种用于终端进程的监听控制方法 |
CN112989323A (zh) * | 2021-02-03 | 2021-06-18 | 成都欧珀通信科技有限公司 | 进程检测方法、装置、终端及存储介质 |
CN115408160A (zh) * | 2022-09-16 | 2022-11-29 | 湖南胜云光电科技有限公司 | 一种进程监控的数据处理系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030120713A1 (en) * | 2001-12-20 | 2003-06-26 | Fenchel Gary G. | Method and apparatus for a fast process monitor suitable for a high availability system |
US20050039184A1 (en) * | 2003-08-13 | 2005-02-17 | Intel Corporation | Assigning a process to a processor for execution |
CN101256515A (zh) * | 2008-03-11 | 2008-09-03 | 浙江大学 | 多核处理器操作系统负载均衡的实现方法 |
US20130160023A1 (en) * | 2010-08-10 | 2013-06-20 | Fujitsu Limited | Scheduler, multi-core processor system, and scheduling method |
CN104090747A (zh) * | 2014-05-22 | 2014-10-08 | 清华大学 | 利用实时调度优化器对Linux智能终端进行优化的方法 |
US20140337389A1 (en) * | 2013-05-08 | 2014-11-13 | Nvidia Corporation | System, method, and computer program product for scheduling tasks associated with continuation thread blocks |
US20150154054A1 (en) * | 2013-11-29 | 2015-06-04 | Fujitsu Limited | Information processing device and method for assigning task |
CN105988872A (zh) * | 2015-02-03 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种cpu资源分配的方法、装置及电子设备 |
CN106020957A (zh) * | 2016-04-27 | 2016-10-12 | 青岛海信移动通信技术股份有限公司 | 移动通信终端进程创建方法和移动通信终端 |
-
2016
- 2016-12-08 CN CN201611122050.2A patent/CN106775975B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030120713A1 (en) * | 2001-12-20 | 2003-06-26 | Fenchel Gary G. | Method and apparatus for a fast process monitor suitable for a high availability system |
US20050039184A1 (en) * | 2003-08-13 | 2005-02-17 | Intel Corporation | Assigning a process to a processor for execution |
CN101256515A (zh) * | 2008-03-11 | 2008-09-03 | 浙江大学 | 多核处理器操作系统负载均衡的实现方法 |
US20130160023A1 (en) * | 2010-08-10 | 2013-06-20 | Fujitsu Limited | Scheduler, multi-core processor system, and scheduling method |
US20140337389A1 (en) * | 2013-05-08 | 2014-11-13 | Nvidia Corporation | System, method, and computer program product for scheduling tasks associated with continuation thread blocks |
US20150154054A1 (en) * | 2013-11-29 | 2015-06-04 | Fujitsu Limited | Information processing device and method for assigning task |
CN104090747A (zh) * | 2014-05-22 | 2014-10-08 | 清华大学 | 利用实时调度优化器对Linux智能终端进行优化的方法 |
CN105988872A (zh) * | 2015-02-03 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种cpu资源分配的方法、装置及电子设备 |
CN106020957A (zh) * | 2016-04-27 | 2016-10-12 | 青岛海信移动通信技术股份有限公司 | 移动通信终端进程创建方法和移动通信终端 |
Non-Patent Citations (1)
Title |
---|
ROBERT LOVE: "《linux kernel development》", 30 June 2010 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949471A (zh) * | 2019-05-16 | 2020-11-17 | 珠海格力电器股份有限公司 | 一种用于终端进程的监听控制方法 |
CN111949385A (zh) * | 2019-05-16 | 2020-11-17 | 珠海格力电器股份有限公司 | 一种用于终端进程的监听控制方法 |
CN112989323A (zh) * | 2021-02-03 | 2021-06-18 | 成都欧珀通信科技有限公司 | 进程检测方法、装置、终端及存储介质 |
CN112989323B (zh) * | 2021-02-03 | 2024-02-13 | 成都欧珀通信科技有限公司 | 进程检测方法、装置、终端及存储介质 |
CN115408160A (zh) * | 2022-09-16 | 2022-11-29 | 湖南胜云光电科技有限公司 | 一种进程监控的数据处理系统 |
CN115408160B (zh) * | 2022-09-16 | 2023-05-05 | 湖南胜云光电科技有限公司 | 一种进程监控的数据处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106775975B (zh) | 2020-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3073374B1 (en) | Thread creation method, service request processing method and related device | |
CN106775975A (zh) | 进程调度方法及装置 | |
CN105389206B (zh) | 一种云计算数据中心虚拟机资源快速配置方法 | |
CN107357661A (zh) | 一种针对混合负载的细粒度gpu资源管理方法 | |
CN111782355B (zh) | 一种基于混合负载的云计算任务调度方法及系统 | |
CN104834561A (zh) | 一种数据处理方法及装置 | |
WO2024021489A1 (zh) | 一种任务调度方法、装置及Kubernetes调度器 | |
CN113434284B (zh) | 一种隐私计算服务端设备、系统及任务调度方法 | |
CN102469126A (zh) | 一种应用调度系统、方法和相关装置 | |
CN104199912B (zh) | 一种任务处理的方法及装置 | |
CN106776395A (zh) | 一种共享集群的任务调度方法及装置 | |
CN112905342A (zh) | 资源调度方法、装置、设备及计算机可读存储介质 | |
CN111158875B (zh) | 基于多模块的多任务处理方法、装置及系统 | |
CN109189581B (zh) | 一种作业调度方法和装置 | |
CN111597035A (zh) | 基于多线程的仿真引擎时间推进方法及系统 | |
CN105955816A (zh) | 一种事件调度方法及装置 | |
CN117909061A (zh) | 基于gpu混合集群的模型任务处理系统和资源调度方法 | |
CN111240824A (zh) | 一种cpu资源调度方法及电子设备 | |
CN111143063B (zh) | 任务的资源预约方法及装置 | |
CN111866159A (zh) | 人工智能服务的调用方法、系统、设备和存储介质 | |
WO2024001411A1 (zh) | 多线程调度方法及装置 | |
CN114896295B (zh) | 大数据场景下的数据脱敏方法、脱敏装置及脱敏系统 | |
CN114116220B (zh) | 一种gpu共享控制方法、gpu共享控制装置及存储介质 | |
CN107809323B (zh) | 一种资源的控制方法、装置及系统 | |
CN115964152A (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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: 266071 Shandong city of Qingdao province Jiangxi City Road No. 11 Patentee after: Qingdao Hisense Mobile Communication Technology Co.,Ltd. Address before: 266071 Shandong city of Qingdao province Jiangxi City Road No. 11 Patentee before: HISENSE MOBILE COMMUNICATIONS TECHNOLOGY Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |