CN110109755B - 进程的调度方法及装置 - Google Patents
进程的调度方法及装置 Download PDFInfo
- Publication number
- CN110109755B CN110109755B CN201910346386.4A CN201910346386A CN110109755B CN 110109755 B CN110109755 B CN 110109755B CN 201910346386 A CN201910346386 A CN 201910346386A CN 110109755 B CN110109755 B CN 110109755B
- Authority
- CN
- China
- Prior art keywords
- processing unit
- process queue
- queue
- locking
- locked
- 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
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/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/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
-
- 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)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种进程的调度方法及装置,属于电子技术领域。该方法包括:电子设备中的第一处理单元接收第二处理单元发送的通知消息,并根据该通知消息将第一进程队列锁定,该第一进程队列为该第一处理单元的进程队列;然后该第一处理单元再将第二处理单元的第二进程队列锁定,以实现将该第一进程队列中的进程插入至该第二进程队列中的目的。该进程的调度方法,避免了多个空闲状态的处理单元的进程队列同时处于锁定状态,导致新进程无法及时创建的问题,避免了进程调度对新进程创建的影响。本发明用于进程的调度。
Description
本申请是2016年5月17日提出的发明名称为“进程的调度方法及装置”的中国发明专利申请201610330180.9的分案申请。
技术领域
本发明涉及电子技术领域,特别涉及一种进程的调度方法及装置。
背景技术
进程是正在运行的程序的实例,是系统进行资源分配和调度的基本单位。在具有多个处理单元的的电子设备中,每个处理单元都有单独的进程队列,该进程队列中可以包括多个按照优先级排列的进程,每个处理单元可以根据自身的进程队列对各个进程进行处理。同时,为了提高各个进程的处理速度,系统可以根据每个处理单元进程队列上排列的进程个数检测每个处理单元的负载状态。当某个处理单元处于过载状态时,该过载处理单元可以将自身进程队列上的部分进程调度到空闲状态的处理单元的进程队列上。
相关技术中,进程的调度过程一般包括:过载处理单元向所有空闲状态的处理单元广播通知消息,以通知所有处于空闲状态的处理单元该过载处理单元需要进行进程调度,所有接收到该通知消息的空闲状态的处理单元均可以将自身的进程队列锁定,并试图锁定该过载处理单元的进程队列,当有任一空闲状态的处理单元锁定该过载处理单元的进程队列后,该过载处理单元即可将自身进程队列中的某个进程调度至该空闲状态的处理单元的进程队列中。
但是,如果空闲状态的处理单元在锁定过载处理单元的进程队列的过程中,又有新进程需要创建,由于所有空闲状态的处理单元的进程队列已被锁定,使得在该进程的调度过程中,该新进程无法及时创建。
发明内容
为了解决相关技术中在进行进程调度时,新进程可能无法创建的问题,本发明提供了一种进程的调度方法及装置。所述技术方案如下:
第一方面,提供一种进程的调度方法,所述方法包括:
电子设备中的第一处理单元接收第二处理单元发送的通知消息,所述通知消息用于指示所述第二处理单元为空闲状态,所述电子设备中包括至少两个处理单元,所述第一处理单元为所述至少两个处理单元中处于过载状态的处理单元;
根据所述通知消息将第一进程队列锁定,所述第一进程队列为所述第一处理单元的进程队列;
将第二进程队列锁定,所述第二进程队列为所述第二处理单元的进程队列;
将所述第一进程队列中的进程插入至所述第二进程队列中。
第二方面,提供一种进程的调度方法,所述方法包括:
当电子设备中的第二处理单元确定自身处于空闲状态时,所述第二处理单元确定处于过载状态的第一处理单元,所述电子设备中包括至少两个处理单元;
所述第二处理单元将第一进程队列锁定,所述第一进程队列为所述第一处理单元的进程队列;
将第二进程队列锁定,所述第二进程队列为所述第二处理单元的进程队列;
将所述第一进程队列中的进程插入至所述第二进程队列中。
第三方面,提供一种进程的调度装置,应用于电子设备中的第一处理单元,所述装置包括:
接收单元,用于接收第二处理单元发送的通知消息,所述通知消息用于指示所述第二处理单元为空闲状态,所述电子设备中包括至少两个处理单元,所述第一处理单元为所述至少两个处理单元中处于过载状态的处理单元;
第一锁定单元,用于根据所述通知消息将第一进程队列锁定,所述第一进程队列为所述第一处理单元的进程队列;
第二锁定单元,用于将第二进程队列锁定,所述第二进程队列为所述第二处理单元的进程队列;
调度单元,用于将所述第一进程队列中的进程插入至所述第二进程队列中。
第四方面,提供一种进程的调度装置,应用于电子设备中的第二处理单元,所述装置包括:
确定单元,用于当所述第二处理单元确定自身处于空闲状态时,确定处于过载状态的第一处理单元,所述电子设备中包括至少两个处理单元;
第一锁定单元,用于将第一进程队列锁定,所述第一进程队列为所述第一处理单元的进程队列;
第二锁定单元,用于将第二进程队列锁定,所述第二进程队列为所述第二处理单元的进程队列;
调度单元,用于将所述第一进程队列中的进程插入至所述第二进程队列中。
本发明提供的技术方案带来的有益效果是:
本发明提供了一种进程的调度方法及装置,处于空闲状态的第二处理单元可以主动向处于过载状态的第一处理单元发送通知消息,该第一处理单元可以根据该通知消息,在将第一进程队列锁定后,再去锁定第二处理单元的第二进程队列,避免了在进行进程调度时,处于空闲状态的多个处理单元的进程队列同时被锁定的情况,因此可以保证新进程能够及时插入至空闲状态的处理单元的进程队列中,从而保证了新进程能够及时创建,避免了进程调度对新进程创建的影响。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种进程的调度方法的流程图;
图2-1是本发明实施例提供的另一种进程的调度方法的流程图;
图2-2是本发明实施例提供的一种进程的调度过程的示意图;
图3是本发明实施例提供的又一种进程的调度方法的流程图;
图4是本发明实施例提供的再一种进程的调度方法的流程图;
图5是本发明实施例提供的一种进程的调度装置的结构示意图;
图6是本发明实施例提供的另一种进程的调度装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在本发明实施例中,电子设备可以包括至少两个处理单元,当电子设备中的中央处理器(英文:Central Processing Unit;简称CPU)为多核CPU时,每个处理单元可以为该多核CPU中的一个内核;当电子设备中的CPU为CPU集群(英文:CPU Cluster)时,每个处理单元可以为该CPU Cluster中的一个单核CPU。
图1是本发明实施例提供的一种进程的调度方法的流程图,参考图1,该方法包括:
步骤101、电子设备中的第一处理单元接收第二处理单元发送的通知消息,该通知消息用于指示该第二处理单元为空闲状态,该电子设备中包括至少两个处理单元,该第一处理单元为该至少两个处理单元中处于过载状态的处理单元。
步骤102、根据该通知消息将第一进程队列锁定,该第一进程队列为该第一处理单元的进程队列。
步骤103、将第二进程队列锁定,该第二进程队列为该第二处理单元的进程队列。
步骤104、将该第一进程队列中的进程插入至第二进程队列中。
综上所述,本发明实施例提供的进程的调度方法,处于空闲状态的第二处理单元可以主动向处于过载状态的第一处理单元发送通知消息,该第一处理单元可以根据该通知消息,在将第一进程队列锁定后,再去锁定第二处理单元的第二进程队列,避免了在进行进程调度时,处于空闲状态的多个处理单元的进程队列同时被锁定的情况,因此可以保证新进程能够及时插入至空闲状态的处理单元的进程队列中,从而保证了新进程能够及时创建,避免了进程调度对新进程创建的影响。
图2-1是本发明实施例提供的一种进程的调度方法的流程图,该方法可以应用于电子设备中的第一处理单元,该电子设备包括至少两个处理单元,该第一处理单元为过载状态,该至少两个处理单元中的第二处理单元为空闲状态,参考图2-1,该方法包括:
步骤201、第一处理单元接收第二处理单元发送的通知消息。
该通知消息用于指示该第二处理单元为空闲状态。在本发明实施例中,每个处理单元都有单独的进程队列,该进程队列中可以包括多个按照优先级排列的进程。电子设备的操作系统可以周期性的对每个处理单元的进程队列中的进程个数以及该处理单元的负载进行检测,并对每个处理单元的负载状态进行标记。例如当某个处理单元的进程队列中的进程个数为0时,操作系统可以将该处理单元的负载状态标记为空闲状态;当某个处理单元的负载不超过预设阈值时,操作系统可以将该处理单元的负载状态标记为正常状态;当某个处理单元的负载超过预设阈值时,操作系统可以将该处理单元的负载状态标记为过载状态。每个处理单元根据操作系统的标记,不仅可以确定自身的负载状态,还可以获取到其他处理单元的负载状态。当第一处理单元确定自身为空闲状态时,可以向处于过载状态的第二处理单元发送通知消息,以便对该第二处理单元的进程队列中的进程进行调度。若该处于过载状态的第二处理单元包括多个,则该第一处理单元可以根据每个第二处理单元的负载情况,向负载最大的第二处理单元发送该通知消息。
示例的,假设如图2-2所示,电子设备中包括4个处理单元:CPU1至CPU4,其中CPU1为过载状态(overload),CPU2为空闲状态(idle),则该CPU2可以向该CPU1发送通知消息,同时,若CPU3和CPU4也为空闲状态,则该CPU3和CPU4也可以向该CPU1发送通知消息。
步骤202、根据该通知消息将第一进程队列锁定。
该第一进程队列为该第一处理单元的进程队列。第一处理单元接收到处于空闲状态的第二处理单元发送的通知消息后,可以确定能够将该第一进程队列中的进程调度至该第二处理单元中,因此该第一处理单元可以将该第一进程队列锁定。进程队列锁定后,只能由锁定该进程队列的处理单元对该进程队列进行操作(例如插入进程或者迁移进程等),此时系统中新创建的进程无法插入至该已锁定的进程队列中。示例的,CPU1接收到CPU2发送的通知消息后,可以将获取自身进程队列(CPU-RT-RQ)的队列锁,并将该CPU-RT-RQ锁定。
步骤203、检测该第二进程队列是否已经被锁定。
当该第二进程队列未被锁定时,执行步骤204;当该第二进程队列已经被锁定时,执行步骤206。其中,该第二进程队列为该第二处理单元的进程队列。
当第一处理单元将第一进程队列锁定后,为了将该第一进程队列中的进程调度至第二处理处理单元的第二进程队列中,该第一处理单元还需要将该第二进程队列锁定,由于进程队列锁定后,只能由锁定该进程队列的处理单元对该进程队列进行操作,因此只有当第一处理单元将两个进程队列都锁定后,才可以实现该进程的调度。在第一处理单元锁定第二进程队列之前,还需要先对该第二进程队列的锁定状态进行检测,若该第二进程队列未被锁定,则可以执行步骤204;如果当该第二处理单元向第一处理发送通知消息后,系统中有新进程需要创建时,该第二处理单元可以将自身的第二进程队列锁定,以便将该新进程插入至该第二进程队列中,此时,该第一处理单元可以检测到该第二进程队列已经被锁定,并执行步骤206。
需要说明的是,在实际应用中,每个处理单元中可以设置有用于指示该处理单元的锁定状态的锁定变量,该锁定变量在不同取值时可以分别表示该处理单元已被锁定或者未被锁定,且该锁定变量的取值可以由该处理单元自身进行调整,也可以由其他处理单元进行调整,关于进程队列锁定的具体实现方式可以参考相关技术,本发明实施例对此不做赘述。
步骤204、将第二进程队列锁定。执行步骤205。
当该第二进程队列未被锁定时,该第一处理单元可以将该第二进程队列锁定。若存在多个第二处理单元向该第一处理单元发送了通知消息,则该第一处理单元可以根据各个第二处理单元的标识,对优先级最高的第二处理单元的进程队列进行锁定。
示例的,假设每个CPU的标识为该CPU的编号,CPU编号的数字越小,其优先级越高,如图2-2所示,CPU2、CPU3和CPU4同时向CPU1发送了通知消息,当该CPU1锁定第一进程队列后,由于CPU2至CPU4中CPU2的优先级最高,则该CPU1可以先获取该CPU2的队列锁(获取队列锁是指调整锁定变量的取值,使得该锁定变量指示该处理单元已被锁定),以便将该CPU2锁定。由于此时其他处于空闲状态的CPU3和CPU4的进程队列并未锁定,因此当有新进程需要创建时,可以及时将该新进程插入至该处于空闲状态且未被锁定的处理单元中,由此避免了进程调度对新进程创建的影响。
步骤205、将该第一进程队列中的进程插入至第二进程队列中。
当该第一处理单元将第一进程队列和第二进程队列均锁定后,即可将第一进程队列中的进程插入至第二处理单元的第二进程队列中,由此即完成了该进程的调度。其中,该插入至第二进程队列中的进程可以为该第一进程队列中,除正在运行的进程之外,优先级最高的进程。示例的,CPU1可以将第一进程队列中的进程:RT-task1插入至CPU2的第二进程队列中。
在该进程的调度过程中,过载状态的第一处理单元将第一进程队列锁定后,再去锁定第二处理单元的第二进程队列,由于该第一处理单元只能锁定一个第二处理单元的进程队列(例如,锁定CPU2的进程队列),因此避免了进程调度时,多个空闲状态的处理单元的进程队列同时处于锁定状态,导致新进程无法创建的情况。该进程的调度不仅降低了第一处理单元的负载,并且由于在进程调度前,该第二处理单元为空闲状态,进程插入至该第二进程队列后,可以得到及时运行,使得电子设备中各个进程能够均匀分配,各个处理单元的资源能够合理利用。
步骤206、锁定备选处理单元的进程队列。执行步骤207。
该备选处理单元是在该第二处理单元向该第一处理单元发送该通知消息之后,向该第一处理单元发送通知消息的处理单元。
在本发明实施例中,当该第二处理单元的第二进程队列已经被锁定时,第一处理单元可以继续对备选处理单元的进程队列进行锁定。若该备选处理单元包括多个,则该第一处理单元可以根据各个备选处理单元的标识,对优先级最高的备选处理单元的进程队列进行锁定。示例的,假设如图2-2所示,CPU3和CPU4在CPU2之后向该CPU1发送了通知消息,当该CPU1未获取到CPU2的队列锁时,可以继续获取CPU3的队列锁,若该CPU3的进程队列也已经被锁定,则该CPU1可以继续获取CPU4的队列锁。其中,每个CPU的标识可以为该CPU的编号,CPU编号的数字越小,其优先级可以越高。
步骤207、将该第一进程队列中的进程插入至该备选处理单元的进程队列中。
当该第一处理单元获取到该备选处理单元的进程队列的队列锁,将该备选处理单元的进程队列锁定后,第一处理单元即可将该进程插入至该备选处理单元的进程队列中。示例的,CPU1可以将第一进程队列中的进程:RT-task1插入至CPU3的进程队列中。
需要说明的是,在本发明实施例中,该各个处理单元中的进程队列中的进程可以均为实时进程。
综上所述,本发明实施例提供的进程的调度方法,处于空闲状态的第二处理单元可以主动向处于过载状态的第一处理单元发送通知消息,该第一处理单元可以根据该通知消息,在将第一进程队列锁定后,再去锁定第二处理单元的第二进程队列,避免了在进行进程调度时,处于空闲状态的多个处理单元的进程队列同时被锁定的情况,例如,CPU1可以先将自身的第一进程队列锁定后,再去锁定CPU2的进程队列,此时其他空闲状态的处理单元:CPU3和CPU4的进程队列均未被锁定,因此可以保证新进程能够及时插入至该空闲状态的处理单元的进程队列中,从而保证了新进程能够及时创建,避免了进程调度对新进程创建的影响。
需要说明的是,本发明实施例提供的进程的调度方法的步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。
图3是本发明实施例提供的另一种进程的调度方法的流程图,参考图3,该方法可以包括:
步骤301、当电子设备中的第二处理单元确定自身处于空闲状态时,该第二处理单元确定处于过载状态的第一处理单元,该电子设备中包括至少两个处理单元。
步骤302、第二处理单元将第一进程队列锁定,该第一进程队列为该第一处理单元的进程队列。
步骤303、将第二进程队列锁定,该第二进程队列为该第二处理单元的进程队列。
步骤304、将该第一进程队列中的进程插入至该第二进程队列中。
综上所述,本发明实施例提供的进程的调度方法,处于空闲状态的第二处理单元可以主动向处于过载状态的第一处理单元发送通知消息,并可以在将该第一处理单元的第一进程队列锁定后,再去锁定自身的第二进程队列,避免了在进行进程调度时,处于空闲状态的多个处理单元的进程队列同时被锁定的情况,因此可以保证新进程能够及时插入至空闲状态的处理单元的进程队列中,从而保证了新进程能够及时创建。
图4是本发明实施例提供的另一种进程的调度方法的流程图,该方法可以应用于电子设备的第二处理单元,该电子设备包括至少两个处理单元,该第二处理单元为空闲状态,该至少两个处理单元中的第一处理单元为过载状态,参考图4,该方法可以包括:
步骤401、当第二处理单元确定自身处于空闲状态时,确定处于过载状态的第一处理单元。
步骤402、将第一进程队列锁定。执行步骤403。
该第一进程队列为该第一处理单元的进程队列。在本发明实施例中,第二处理单元确定自身为空闲状态后,可以直接将处于过载状态的第一处理单元的第一进程队列进行锁定;或者,该第二处理单元也可以先向该第一处理单元发送用于指示该第二处理单元为空闲状态的通知消息后,再将该第一处理单元的第一进程队列锁定。
步骤403、检测第二进程队列是否已经被锁定。
该第二进程队列为第二处理单元的进程队列。
当该第二进程队列未被锁定时,执行步骤404;当该第二进程队列已被锁定时,执行步骤406。
步骤404、将该第二进程队列锁定。执行步骤405。
步骤405、将该第一进程队列中的进程插入至该第二进程队列中。
步骤406、向第三处理单元发送通知消息。
当该第二进程队列已被锁定时,该第二处理单元可以向第三处理单元发送通知消息,以便该第三处理单元将自身的进程队列锁定,使得该进程能够插入至该第三处理单元的进程队列中,该至少两个处理单元包括该第三处理单元,且该第三处理单元为空闲状态。
示例的,参考图2-2,假设CPU2将CPU1的进程队列锁定后,检测到该CPU2自身的进程队列已被锁定,则该CPU2可以向CPU3发送通知消息,以便CPU3将自身的进程队列锁定,使得CPU1的进程队列中的进程:RT-task1可以插入至CPU3的进程队列中。
上述步骤402至步骤405的具体实现过程可以参考前述步骤302至步骤305中的描述,本发明实施例不再重复赘述。
综上所述,本发明实施例提供的进程的调度方法,处于空闲状态的第二处理单元可以主动向处于过载状态的第一处理单元发送通知消息,并可以在将该第一处理单元的第一进程队列锁定后,再去锁定自身的第二进程队列,避免了在进行进程调度时,处于空闲状态的多个处理单元的进程队列同时被锁定的情况,因此可以保证新进程能够及时插入至空闲状态的处理单元的进程队列中,从而保证了新进程能够及时创建。
图5是本发明实施例提供的一种进程的调度装置,该装置可以应用于电子设备中的第一处理单元,如图5所示,该装置可以包括:
接收单元501,用于接收第二处理单元发送的通知消息,该通知消息用于指示该第二处理单元为空闲状态,该电子设备中包括至少两个处理单元,该第一处理单元为该至少两个处理单元中处于过载状态的处理单元。
第一锁定单元502,用于根据该通知消息将第一进程队列锁定,该第一进程队列为该第一处理单元的进程队列。
第二锁定单元503,用于将第二进程队列锁定,该第二进程队列为该第二处理单元的进程队列。
调度单元504,用于将该第一进程队列中的进程插入至第二进程队列中。
综上所述,本发明实施例提供的进程的调度装置,处于过载状态的第一处理单元接收到处于空闲状态的第二处理单元发送的通知消息后,可以根据该通知消息,在将自身的第一进程队列锁定后,再去锁定第二处理单元的第二进程队列,避免了在进行进程调度时,处于空闲状态的多个处理单元的进程队列同时被锁定的情况,因此可以保证新进程能够及时插入至空闲状态的处理单元的进程队列中,从而保证了新进程能够及时创建。
可选的,该第二锁定单元503,还用于:
检测该第二进程队列是否已经被锁定;当该第二进程队列未被锁定时,将该第二进程队列锁定。
可选的,电子设备中包括多核中央处理器CPU,每个处理单元为该多核CPU中的一个内核。
综上所述,本发明实施例提供的进程的调度装置,处于过载状态的第一处理单元接收到处于空闲状态的第二处理单元发送的通知消息后,可以根据该通知消息,在将自身的第一进程队列锁定后,再去锁定第二处理单元的第二进程队列,避免了在进行进程调度时,处于空闲状态的多个处理单元的进程队列同时被锁定的情况,因此可以保证新进程能够及时插入至空闲状态的处理单元的进程队列中,从而保证了新进程能够及时创建。
图6是本发明实施例提供的另一种进程的调度装置,该装置可以应用于电子设备的第二处理单元,如图6所示,该装置可以包括:
确定单元601,用于当该第二处理单元确定自身处于空闲状态时,确定处于过载状态的第一处理单元,该电子设备中包括至少两个处理单元。
第一锁定单元602,用于将第一进程队列锁定,该第一进程队列为该第一处理单元的进程队列。
第二锁定单元603,用于将第二进程队列锁定,该第二进程队列为该第二处理单元的进程队列。
调度单元604,用于将该第一进程队列中的进程插入至该第二进程队列中。
综上所述,本发明实施例提供的进程的调度装置,处于空闲状态的第二处理单元可以主动向处于过载状态的第一处理单元发送通知消息,并可以在将该第一处理单元的第一进程队列锁定后,再去锁定自身的第二进程队列,避免了在进行进程调度时,处于空闲状态的多个处理单元的进程队列同时被锁定的情况,因此可以保证新进程能够及时插入至空闲状态的处理单元的进程队列中,从而保证了新进程能够及时创建。
可选的,该第二锁定单元603,还用于:
检测该第二进程队列是否已经被锁定;当该第二进程队列未被锁定时,将该第二进程队列锁定。
可选的,该第二锁定单元603,还用于:
当该第二进程队列已被锁定时,向第三处理单元发送通知消息,以便该第三处理单元将自身的进程队列锁定,使得该进程能够插入至该第三处理单元的进程队列中。
综上所述,本发明实施例提供的进程的调度装置,处于空闲状态的第二处理单元可以主动向处于过载状态的第一处理单元发送通知消息,并可以在将该第一处理单元的第一进程队列锁定后,再去锁定自身的第二进程队列,避免了在进行进程调度时,处于空闲状态的多个处理单元的进程队列同时被锁定的情况,因此可以保证新进程能够及时插入至空闲状态的处理单元的进程队列中,从而保证了新进程能够及时创建。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种进程的调度方法,其特征在于,应用于多核中央处理器CPU的电子设备,一个处理单元为所述多核CPU中的一个内核,所述方法包括:
过载状态的第一处理单元接收到至少二个其它处理单元发送的通知消息,所述通知消息用于指示所述处理单元自身为空闲状态;
所述第一处理单元根据所述通知消息将第一进程队列锁定,所述第一进程队列为所述第一处理单元的进程队列;
第一处理单元根据所述其它处理单元的内核标识,对优先级最高的处理单元的进程队列进行锁定;
将所述第一进程队列中的一个进程插入至所述优先级最高的处理单元的进程队列中。
2.根据权利要求1所述的方法,其特征在于,对优先级最高的处理单元的进程队列进行锁定,具体包括:
检测优先级最高的处理单元的进程队列是否已经被锁定;
当所述优先级最高的处理单元的进程队列未被锁定时,将所述优先级最高的处理单元的进程队列锁定。
3.根据权利要求1或者权利要求2所述的方法,其特征在于,还包括:
当所述优先级最高的处理单元的进程队列已被锁定时,对优先级次高的处理单元的进程队列锁定;
将所述第一进程队列中的一个进程插入至所述优先级次高的处理单元的进程队列中。
4.一种进程的调度方法,其特征在于,应用于多核中央处理器CPU的电子设备,一个处理单元为所述多核CPU中的一个内核,所述方法包括:
当第二处理单元确定自身处于空闲状态时,确定处于最大过载状态的第一处理单元,将第一进程队列锁定,所述第一进程队列为所述第一处理单元的进程队列;
将第二进程队列锁定,所述第二进程队列为所述第二处理单元的进程队列;
将所述第一进程队列中的一个进程插入至所述第二进程队列中。
5.根据权利要求4所述的方法,其特征在于,将所述第二进程队列锁定,具体包括:
检测第二进程队列是否已经被锁定,当所述第二进程队列未被锁定时,
将所述第二进程队列锁定。
6.一种进程的调度装置,其特征在于,应用于多核中央处理器CPU的电子设备,一个处理单元为所述多核CPU中的一个内核,所述装置包括:
接收单元,用于过载状态的第一处理单元接收到至少二个其它处理单元发送的通知消息,所述通知消息用于指示所述处理单元自身为空闲状态;
第一锁定单元,用于所述第一处理单元根据所述通知消息将第一进程队列锁定,所述第一进程队列为所述第一处理单元的进程队列;
第二锁定单元,用于第一处理单元根据所述其它处理单元的内核标识,对优先级最高的处理单元的进程队列进行锁定;
调度单元,用于将所述第一进程队列中的一个进程插入至所述优先级最高的处理单元的进程队列中。
7.根据权利要求6所述的装置,其特征在于,所述第二锁定单元还包括:
检测优先级最高的处理单元的进程队列是否已经被锁定;
当所述优先级最高的处理单元的进程队列未被锁定时,将所述优先级最高的处理单元的进程队列锁定。
8.根据权利要求6或者7所述的装置,其特征在于,所述第二锁定单元还包括:
当所述优先级最高的处理单元的进程队列已被锁定时,对优先级次高的处理单元的进程队列锁定;
将所述第一进程队列中的一个进程插入至所述优先级次高的处理单元的进程队列中。
9.一种进程的调度装置,其特征在于,应用于多核中央处理器CPU的电子设备,一个处理单元为所述多核CPU中的一个内核,所述装置包括:
确定单元,用于当第二处理单元确定自身处于空闲状态时,确定处于最大过载状态的第一处理单元,将第一进程队列锁定,所述第一进程队列为所述第一处理单元的进程队列;
第二锁定单元,用于将第二进程队列锁定,所述第二进程队列为所述第二处理单元的进程队列;
调度单元,用于将所述第一进程队列中的一个进程插入至所述第二进程队列中。
10.根据权利要求9所述的装置,其特征在于,所述第二锁定单元还包括:
检测第二进程队列是否已经被锁定,当所述第二进程队列未被锁定时,
将所述第二进程队列锁定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910346386.4A CN110109755B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610330180.9A CN106020979B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
CN201910346386.4A CN110109755B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610330180.9A Division CN106020979B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110109755A CN110109755A (zh) | 2019-08-09 |
CN110109755B true CN110109755B (zh) | 2023-07-07 |
Family
ID=57097707
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910346385.XA Active CN110109754B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
CN201610330180.9A Active CN106020979B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
CN201910346386.4A Active CN110109755B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910346385.XA Active CN110109754B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
CN201610330180.9A Active CN106020979B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (3) | CN110109754B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112654092B (zh) * | 2019-10-09 | 2023-05-30 | 中盈优创资讯科技有限公司 | 资源调度方法、装置及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889521A (zh) * | 2006-07-13 | 2007-01-03 | 华为技术有限公司 | 一种数据调度方法及系统 |
CN102834807A (zh) * | 2011-04-18 | 2012-12-19 | 华为技术有限公司 | 多处理器系统负载均衡的方法和装置 |
US20130160028A1 (en) * | 2011-12-14 | 2013-06-20 | John E. Black | Method and apparatus for low latency communication and synchronization for multi-thread applications |
US20150301858A1 (en) * | 2014-04-21 | 2015-10-22 | National Tsing Hua University | Multiprocessors systems and processes scheduling methods thereof |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3068556B2 (ja) * | 1998-04-27 | 2000-07-24 | エヌイーシーソフト株式会社 | 共有資源排他制御方式およびそのプログラム記録媒体 |
US7844784B2 (en) * | 2006-11-27 | 2010-11-30 | Cisco Technology, Inc. | Lock manager rotation in a multiprocessor storage area network |
CN100562854C (zh) * | 2008-03-11 | 2009-11-25 | 浙江大学 | 多核处理器操作系统负载均衡的实现方法 |
CN102103523A (zh) * | 2009-12-22 | 2011-06-22 | 国际商业机器公司 | 锁分配控制的方法和装置 |
US9344391B2 (en) * | 2012-03-14 | 2016-05-17 | Microsoft Technology Licensing, Llc | High density hosting for messaging service |
CN103514043B (zh) * | 2012-06-29 | 2017-09-29 | 华为技术有限公司 | 多处理器系统及该系统的数据处理方法 |
US9317294B2 (en) * | 2012-12-06 | 2016-04-19 | International Business Machines Corporation | Concurrent multiple instruction issue of non-pipelined instructions using non-pipelined operation resources in another processing core |
US9274826B2 (en) * | 2012-12-28 | 2016-03-01 | Futurewei Technologies, Inc. | Methods for task scheduling through locking and unlocking an ingress queue and a task queue |
TWI515736B (zh) * | 2013-07-25 | 2016-01-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
CN103488530B (zh) * | 2013-09-17 | 2016-10-19 | 新浪网技术(中国)有限公司 | 一种锁迁移方法及装置 |
CN105117292B (zh) * | 2015-07-31 | 2018-09-14 | 华南理工大学 | 随机扩散动态负载均衡方法 |
-
2016
- 2016-05-17 CN CN201910346385.XA patent/CN110109754B/zh active Active
- 2016-05-17 CN CN201610330180.9A patent/CN106020979B/zh active Active
- 2016-05-17 CN CN201910346386.4A patent/CN110109755B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889521A (zh) * | 2006-07-13 | 2007-01-03 | 华为技术有限公司 | 一种数据调度方法及系统 |
CN102834807A (zh) * | 2011-04-18 | 2012-12-19 | 华为技术有限公司 | 多处理器系统负载均衡的方法和装置 |
US20130160028A1 (en) * | 2011-12-14 | 2013-06-20 | John E. Black | Method and apparatus for low latency communication and synchronization for multi-thread applications |
US20150301858A1 (en) * | 2014-04-21 | 2015-10-22 | National Tsing Hua University | Multiprocessors systems and processes scheduling methods thereof |
Also Published As
Publication number | Publication date |
---|---|
CN110109754B (zh) | 2023-06-30 |
CN110109755A (zh) | 2019-08-09 |
CN110109754A (zh) | 2019-08-09 |
CN106020979A (zh) | 2016-10-12 |
CN106020979B (zh) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10802877B2 (en) | Task management methods and system, and computer storage medium | |
CN107145389B (zh) | 一种系统进程监控方法及计算设备 | |
CN104834506A (zh) | 一种采用多线程处理业务应用的方法 | |
US10778807B2 (en) | Scheduling cluster resources to a job based on its type, particular scheduling algorithm,and resource availability in a particular resource stability sub-levels | |
CN102902589B (zh) | 一种集群mic作业的管理及调度方法 | |
CN111258746B (zh) | 资源分配方法和服务设备 | |
CN104102548A (zh) | 任务资源调度处理方法和系统 | |
CN112087503A (zh) | 集群任务调度方法、系统、计算机和计算机可读存储介质 | |
CN110109755B (zh) | 进程的调度方法及装置 | |
CN107479966B (zh) | 一种基于多核心cpu的信令采集方法 | |
US20130117754A1 (en) | Multi-core system and scheduling method | |
CN110912967A (zh) | 一种服务节点调度方法、装置、设备及存储介质 | |
CN112860387A (zh) | 分布式任务调度方法、装置、计算机设备及存储介质 | |
CN103823712A (zh) | 一种多cpu虚拟机系统的数据流处理方法和装置 | |
JP2007172611A (ja) | 方法、記憶媒体(仮想共有環境におけるプロセッサの有効利用法) | |
CN112346836A (zh) | 共享计算资源的抢占方法、装置、用户设备及存储介质 | |
US10656967B1 (en) | Actor and thread message dispatching | |
CN111767122A (zh) | 分布式任务调度管理方法和装置 | |
CN107544840A (zh) | 一种进程管理方法及装置 | |
EP2610752B1 (en) | Parallel computer, job information acquisition program of parallel computer, and job information acquisition method for parallel computer | |
CN114153573A (zh) | 一种基于单线程池的多任务处理的方法及相关装置 | |
CN110928756A (zh) | 一种超算平台资源使用监控方法 | |
CN107665163B (zh) | 自动化数据回溯的方法与系统 | |
CN107733961B (zh) | 资源分配方法及装置 | |
CN112579616A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 266071 Shandong city of Qingdao province Jiangxi City Road No. 11 Applicant after: Qingdao Hisense Mobile Communication Technology Co.,Ltd. Address before: 266071 Shandong city of Qingdao province Jiangxi City Road No. 11 Applicant before: HISENSE MOBILE COMMUNICATIONS TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |