CN106020979B - 进程的调度方法及装置 - Google Patents
进程的调度方法及装置 Download PDFInfo
- Publication number
- CN106020979B CN106020979B CN201610330180.9A CN201610330180A CN106020979B CN 106020979 B CN106020979 B CN 106020979B CN 201610330180 A CN201610330180 A CN 201610330180A CN 106020979 B CN106020979 B CN 106020979B
- Authority
- CN
- China
- Prior art keywords
- process queue
- queue
- processing unit
- locked
- processing units
- 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
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
技术领域
本发明涉及电子技术领域,特别涉及一种进程的调度方法及装置。
背景技术
进程是正在运行的程序的实例,是***进行资源分配和调度的基本单位。在具有多个处理单元的的电子设备中,每个处理单元都有单独的进程队列,该进程队列中可以包括多个按照优先级排列的进程,每个处理单元可以根据自身的进程队列对各个进程进行处理。同时,为了提高各个进程的处理速度,***可以根据每个处理单元进程队列上排列的进程个数检测每个处理单元的负载状态。当某个处理单元处于过载状态时,该过载处理单元可以将自身进程队列上的部分进程调度到空闲状态的处理单元的进程队列上。
相关技术中,进程的调度过程一般包括:过载处理单元向所有空闲状态的处理单元广播通知消息,以通知所有处于空闲状态的处理单元该过载处理单元需要进行进程调度,所有接收到该通知消息的空闲状态的处理单元均可以将自身的进程队列锁定,并试图锁定该过载处理单元的进程队列,当有任一空闲状态的处理单元锁定该过载处理单元的进程队列后,该过载处理单元即可将自身进程队列中的某个进程调度至该空闲状态的处理单元的进程队列中。
但是,如果空闲状态的处理单元在锁定过载处理单元的进程队列的过程中,又有新进程需要创建,由于所有空闲状态的处理单元的进程队列已被锁定,使得在该进程的调度过程中,该新进程无法及时创建。
发明内容
为了解决相关技术中在进行进程调度时,新进程可能无法创建的问题,本发明提供了一种进程的调度方法及装置。所述技术方案如下:
第一方面,提供一种进程的调度方法,所述方法包括:
电子设备中的第一处理单元接收第二处理单元发送的通知消息,所述通知消息用于指示所述第二处理单元为空闲状态,所述电子设备中包括至少两个处理单元,所述第一处理单元为所述至少两个处理单元中处于过载状态的处理单元;
根据所述通知消息将第一进程队列锁定,所述第一进程队列为所述第一处理单元的进程队列;
将第二进程队列锁定,所述第二进程队列为所述第二处理单元的进程队列;
将所述第一进程队列中的进程***至所述第二进程队列中。
第二方面,提供一种进程的调度方法,所述方法包括:
当电子设备中的第二处理单元确定自身处于空闲状态时,所述第二处理单元确定处于过载状态的第一处理单元,所述电子设备中包括至少两个处理单元;
所述第二处理单元将第一进程队列锁定,所述第一进程队列为所述第一处理单元的进程队列;
将第二进程队列锁定,所述第二进程队列为所述第二处理单元的进程队列;
将所述第一进程队列中的进程***至所述第二进程队列中。
第三方面,提供一种进程的调度装置,应用于电子设备中的第一处理单元,所述装置包括:
接收单元,用于接收第二处理单元发送的通知消息,所述通知消息用于指示所述第二处理单元为空闲状态,所述电子设备中包括至少两个处理单元,所述第一处理单元为所述至少两个处理单元中处于过载状态的处理单元;
第一锁定单元,用于根据所述通知消息将第一进程队列锁定,所述第一进程队列为所述第一处理单元的进程队列;
第二锁定单元,用于将第二进程队列锁定,所述第二进程队列为所述第二处理单元的进程队列;
调度单元,用于将所述第一进程队列中的进程***至所述第二进程队列中。
第四方面,提供一种进程的调度装置,应用于电子设备中的第二处理单元,所述装置包括:
确定单元,用于当所述第二处理单元确定自身处于空闲状态时,确定处于过载状态的第一处理单元,所述电子设备中包括至少两个处理单元;
第一锁定单元,用于将第一进程队列锁定,所述第一进程队列为所述第一处理单元的进程队列;
第二锁定单元,用于将第二进程队列锁定,所述第二进程队列为所述第二处理单元的进程队列;
调度单元,用于将所述第一进程队列中的进程***至所述第二进程队列中。
本发明提供的技术方案带来的有益效果是:
本发明提供了一种进程的调度方法及装置,处于空闲状态的第二处理单元可以主动向处于过载状态的第一处理单元发送通知消息,该第一处理单元可以根据该通知消息,在将第一进程队列锁定后,再去锁定第二处理单元的第二进程队列,避免了在进行进程调度时,处于空闲状态的多个处理单元的进程队列同时被锁定的情况,因此可以保证新进程能够及时***至空闲状态的处理单元的进程队列中,从而保证了新进程能够及时创建,避免了进程调度对新进程创建的影响。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图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 (6)
1.一种进程的调度方法,其特征在于,应用于电子设备中的第一处理单元,所述电子设备中包括至少两个处理单元,所述方法包括:
接收第二处理单元发送的通知消息,所述通知消息用于指示所述第二处理单元为空闲状态,所述第一处理单元为过载状态;
根据所述通知消息将第一进程队列锁定,所述第一进程队列为所述第一处理单元的进程队列;
检测第二进程队列是否已经被锁定,当所述第二进程队列未被锁定时,将所述第二进程队列锁定,所述第二进程队列为所述第二处理单元的进程队列;
将所述第一进程队列中的一个进程***至所述第二进程队列中。
2.根据权利要求1所述的方法,其特征在于,
所述电子设备中包括多核中央处理器CPU,每个所述处理单元为所述多核CPU中的一个内核。
3.一种进程的调度方法,其特征在于,应用于电子设备中的第二处理单元,所述电子设备至少包括两个处理单元,所述方法包括:
当所述第二处理单元确定自身处于空闲状态时,确定处于过载状态的第一处理单元,并将第一进程队列锁定,所述第一进程队列为所述第一处理单元的进程队列;
检测第二进程队列是否已经被锁定,当所述第二进程队列未被锁定时,将所述第二进程队列锁定,所述第二进程队列为所述第二处理单元的进程队列;
将所述第一进程队列中的一个进程***至所述第二进程队列中。
4.根据权利要求3所述的方法,其特征在于,所述至少两个处理单元包括第三处理单元,且所述第三处理单元为空闲状态,在所述检测所述第二进程队列是否已经被锁定之后,所述方法还包括:
当所述第二进程队列已被锁定时,向所述第三处理单元发送通知消息,使得所述第三处理单元根据所述通知消息将自身的进程队列锁定,将所述第二进程队列的一个进程***至所述第三处理单元的进程队列中。
5.一种进程的调度装置,其特征在于,应用于电子设备中的第一处理单元,所述电子设备中包括至少两个处理单元,所述装置包括:
接收单元,用于接收第二处理单元发送的通知消息,所述通知消息用于指示所述第二处理单元为空闲状态,所述第一处理单元为过载状态;
第一锁定单元,用于根据所述通知消息将第一进程队列锁定,所述第一进程队列为所述第一处理单元的进程队列;
第二锁定单元,用于检测第二进程队列是否已经被锁定,当所述第二进程队列未被锁定时,将所述第二进程队列锁定,所述第二进程队列为所述第二处理单元的进程队列;
调度单元,用于将所述第一进程队列中的一个进程***至所述第二进程队列中。
6.一种进程的调度装置,其特征在于,应用于电子设备中的第二处理单元,所述电子设备至少包括两个处理单元,所述装置包括:
确定单元,用于当所述第二处理单元确定自身处于空闲状态时,确定处于过载状态的第一处理单元,并将第一进程队列锁定,所述第一进程队列为所述第一处理单元的进程队列;
第二锁定单元,用于检测第二进程队列是否已经被锁定,当所述第二进程队列未被锁定时,将所述第二进程队列锁定,所述第二进程队列为所述第二处理单元的进程队列;
调度单元,用于将所述第一进程队列中的一个进程***至所述第二进程队列中。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910346386.4A CN110109755B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
CN201610330180.9A CN106020979B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
CN201910346385.XA CN110109754B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610330180.9A CN106020979B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910346386.4A Division CN110109755B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
CN201910346385.XA Division CN110109754B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106020979A CN106020979A (zh) | 2016-10-12 |
CN106020979B true CN106020979B (zh) | 2019-05-31 |
Family
ID=57097707
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610330180.9A Active CN106020979B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
CN201910346385.XA Active CN110109754B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
CN201910346386.4A Active CN110109755B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910346385.XA Active CN110109754B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
CN201910346386.4A Active CN110109755B (zh) | 2016-05-17 | 2016-05-17 | 进程的调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (3) | CN106020979B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112654092B (zh) * | 2019-10-09 | 2023-05-30 | 中盈优创资讯科技有限公司 | 资源调度方法、装置及*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11306035A (ja) * | 1998-04-27 | 1999-11-05 | Nec Software Ltd | 共有資源排他制御方式およびそのプログラム記録媒体 |
CN101542448A (zh) * | 2006-11-27 | 2009-09-23 | 思科技术公司 | 多处理器存储区域网中锁定管理器的轮换 |
CN102103523A (zh) * | 2009-12-22 | 2011-06-22 | 国际商业机器公司 | 锁分配控制的方法和装置 |
CN103227747A (zh) * | 2012-03-14 | 2013-07-31 | 微软公司 | 针对消息收发服务的高密度托管 |
CN103488530A (zh) * | 2013-09-17 | 2014-01-01 | 新浪网技术(中国)有限公司 | 一种锁迁移方法及装置 |
CN104346286A (zh) * | 2013-07-25 | 2015-02-11 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
CN104871129A (zh) * | 2012-12-28 | 2015-08-26 | 华为技术有限公司 | 基于软件的并行处理中的包有序调度的方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100456744C (zh) * | 2006-07-13 | 2009-01-28 | 华为技术有限公司 | 一种数据调度方法及*** |
CN100562854C (zh) * | 2008-03-11 | 2009-11-25 | 浙江大学 | 多核处理器操作***负载均衡的实现方法 |
EP2437168B1 (en) * | 2011-04-18 | 2023-09-06 | Huawei Technologies Co., Ltd. | Method and device for balancing load of multiprocessor system |
US20130160028A1 (en) * | 2011-12-14 | 2013-06-20 | John E. Black | Method and apparatus for low latency communication and synchronization for multi-thread applications |
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 |
TWI503742B (zh) * | 2014-04-21 | 2015-10-11 | Nat Univ Tsing Hua | 多核心處理器系統及其排程方法 |
CN105117292B (zh) * | 2015-07-31 | 2018-09-14 | 华南理工大学 | 随机扩散动态负载均衡方法 |
-
2016
- 2016-05-17 CN CN201610330180.9A patent/CN106020979B/zh active Active
- 2016-05-17 CN CN201910346385.XA patent/CN110109754B/zh active Active
- 2016-05-17 CN CN201910346386.4A patent/CN110109755B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11306035A (ja) * | 1998-04-27 | 1999-11-05 | Nec Software Ltd | 共有資源排他制御方式およびそのプログラム記録媒体 |
CN101542448A (zh) * | 2006-11-27 | 2009-09-23 | 思科技术公司 | 多处理器存储区域网中锁定管理器的轮换 |
CN102103523A (zh) * | 2009-12-22 | 2011-06-22 | 国际商业机器公司 | 锁分配控制的方法和装置 |
CN103227747A (zh) * | 2012-03-14 | 2013-07-31 | 微软公司 | 针对消息收发服务的高密度托管 |
CN104871129A (zh) * | 2012-12-28 | 2015-08-26 | 华为技术有限公司 | 基于软件的并行处理中的包有序调度的方法 |
CN104346286A (zh) * | 2013-07-25 | 2015-02-11 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
CN103488530A (zh) * | 2013-09-17 | 2014-01-01 | 新浪网技术(中国)有限公司 | 一种锁迁移方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110109755A (zh) | 2019-08-09 |
CN110109754A (zh) | 2019-08-09 |
CN106020979A (zh) | 2016-10-12 |
CN110109755B (zh) | 2023-07-07 |
CN110109754B (zh) | 2023-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109471705B (zh) | 任务调度的方法、设备及***、计算机设备 | |
US10754690B2 (en) | Rule-based dynamic resource adjustment for upstream and downstream processing units in response to a processing unit event | |
US8402466B2 (en) | Practical contention-free distributed weighted fair-share scheduler | |
US20120144138A1 (en) | Locking Access To Data Storage Shared By A Plurality Of Compute Nodes | |
US9858115B2 (en) | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium | |
CN102902589B (zh) | 一种集群mic作业的管理及调度方法 | |
CN111950988A (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 | |
CN112087503A (zh) | 集群任务调度方法、***、计算机和计算机可读存储介质 | |
CN110362401A (zh) | 数据跑批方法、装置、存储介质及集群中的成员主机 | |
US20120284720A1 (en) | Hardware assisted scheduling in computer system | |
CN108228330B (zh) | 一种串行化的多进程任务调度方法和装置 | |
US10733022B2 (en) | Method of managing dedicated processing resources, server system and computer program product | |
CN104102548A (zh) | 任务资源调度处理方法和*** | |
US8132171B2 (en) | Method of controlling thread access to a synchronization object | |
CN109766172A (zh) | 一种异步任务调度方法以及装置 | |
CN106020984B (zh) | 电子设备中进程的创建方法及装置 | |
CN114090207A (zh) | 一种异步任务执行的方法 | |
CN106020979B (zh) | 进程的调度方法及装置 | |
CN109670932B (zh) | 信贷数据核算方法、装置、***和计算机存储介质 | |
EP3652895B1 (en) | Method and apparatus for monitoring performance of virtualized network functions | |
CN102567120B (zh) | 一种节点调度优先级确定方法及装置 | |
CN108600008B (zh) | 服务器管理方法、服务器管理装置及分布式*** | |
CN103823712A (zh) | 一种多cpu虚拟机***的数据流处理方法和装置 | |
CN111052083A (zh) | 用于在启动期间管理服务的调度的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |