CN100578459C - 线程调度方法及其装置 - Google Patents
线程调度方法及其装置 Download PDFInfo
- Publication number
- CN100578459C CN100578459C CN200710110988A CN200710110988A CN100578459C CN 100578459 C CN100578459 C CN 100578459C CN 200710110988 A CN200710110988 A CN 200710110988A CN 200710110988 A CN200710110988 A CN 200710110988A CN 100578459 C CN100578459 C CN 100578459C
- Authority
- CN
- China
- Prior art keywords
- thread
- threads
- pending
- ready state
- state
- 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
Landscapes
- Multi Processors (AREA)
Abstract
本发明公开了一种应用于对称多处理器***的线程调度方法及其装置。本发明方法包括以下步骤:接收线程调度请求,选择一个处于就绪状态的待执行线程,获取与所述待执行线程相关联的线程,并将获取到的线程中处于就绪状态的待执行线程设置为非就绪状态;将被选择的待执行线程分配给所述发出调度请求的处理器执行,并在所述被选择的线程执行完成时,将被设置为非就绪状态的与所述被选择的线程相关联的线程恢复为就绪状态。采用本发明,可减小对称多处理器***对线程的自由调度所带来的争夺、同步资源开销,并且还可避免将线程指定到固定处理器上执行所造成的***效率低,提高了***运行效率。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种应用于对称多处理器***的线程调度方法及其装置。
背景技术
进程通常被定义为一个正在运行的程序的实例,它是资源分配的单位。进程可以支持多个线程,一个进程中的多个线程共享相同的内存地址空间。
线程是进程中的实体,一个线程必须有一个父进程。线程不拥有***资源,只有运行必须的一些数据结构;它与父进程的其它线程共享该进程所拥有的全部资源。线程可以创建和撤消线程,从而实现程序的并发执行。线程一般具有就绪、阻塞和运行三种基本状态。
某一线程的执行有可能依赖于其他线程的执行,或某一线程的开始需要等待其他线程的结束以获得资源的访问权限。从时间上看,这两个线程在时间上不能并行执行或很难并行执行。这样的线程被认为是有关联度的线程。
目前在对称多处理***中,所有的处理器都可以平等地访问内存、I/O和外部中断。***资源被***中所有CPU共享,工作负载能够相对均匀地分配到所有可用处理器之上。在多处理器的***中,不同线程可以同时在不同的中央处理器上运行,甚至当它们属于同一个进程时也是如此。例如,当对称多处理***处理多线程的任务时,如果线程没有指定在某个处理器上运行,空闲的处理器会执行调度程序以取得可运行而暂时没有被运行的线程。大多数支持多处理器的操作***都提供编程接口来让进程可以控制自己的线程与各处理器之间的关联度。对称多处理***在处理有关联的多线程的任务时,需要解决多个处理器的相互通讯和协调,以及共享数据的同步保护。
目前的对称多处理器***执行应用程序时,大多以线程为调度单位执行。目前的对称多处理器***中,有两种线程调用方法。
在第一种线程调用方法中,不指定线程在哪个处理器上执行,由对称多处理器***的调度程序对线程进行自由调度。相对空闲的处理器会从待执行线程队列取得线程执行。
由对称多处理器***的调度程序自由调度线程,会出现多个相互关联的线程同时分别运行于不同的处理器上的情况。由于这些相互关联的线程的资源是共享的,在这些线程的执行过程中,不可避免地会发生处理器抢夺资源或等待其他线程释放资源,以执行本处理器上的线程。这样,在一个处理器上本来应该顺畅执行完的时间片内,增加了因其他处理器的抢夺而被打断的可能,导致线程切换的机会大大高于正常水平。因此,两个处理器同时处理关联度比较高的两个线程,由于抢夺、等待资源的开销,***中如果还有其他任务等待执行,处理器就不能及时执行却把时间浪费在抢夺、等待资源上,从而降低了***的总体效率。
为了解决上述问题,现有技术还提供了一种线程调度方法。在该方法中,通过绑定一组关联度较高的线程到某个固定的处理器上执行,使这些相互关联的线程从始至终绑定在该固定的处理器上执行。当有多组线程被绑定在相同的处理器上执行时,就有可能造成该处理器忙于处理这些线程,即使当前有空闲的处理器请求调度,***也不会将这些已经被绑定在固定处理器上的线程调度到其它发出调度请求的处理器上执行。
由于无法预知处理器的运行与空闲的情况,因此将线程绑定在某个处理器上运行,容易发生上述被绑定的处理器很忙,而其他处理器却空闲的情况,因而无法发挥多处理器自由调度和并行处理的优势,会导致压力分布不均衡。
综上所述,目前的对称对处理器处理关联度比较高的多线程时,不能充分体现对称多处理器***的优势,降低了***效率。
发明内容
本发明实施例提供了一种线程调度方法,以提高对称多处理器***的运行效率,该方法将彼此有关联的线程被绑定为线程集合,包括如下步骤:
接收线程调度请求,选择一个处于就绪状态的待执行线程;
获取与所述待执行线程相关联的线程,与所述待执行线程相关联的线程和所述待执行线程绑定于线程集合或线程簇;
并将获取到的与所述待执行线程相关联的线程中处于就绪状态的待执行线程设置为非就绪状态;
将被选择的待执行线程分配给所述发出调度请求的处理器执行,并在所述被选择的线程执行完成时,将被设置为非就绪状态的与所述被选择的线程相关联的线程恢复为就绪状态。
本发明的另一个实施例还提供了一种线程调度方法,该方法包括如下步骤:
根据线程间的关联关系将所有线程分别绑定于线程集合,所述线程集合中包含多个彼此关联的线程,或者包含一个与其它线程没有关联关系的独立线程;
接收线程调度请求,选择一个处于就绪状态的待执行线程集合,并将所述线程集合的状态设置为非就绪状态;
将被选择的待执行线程集合分配给所述发出调度请求的处理器执行,并在该线程簇中的线程执行完成时,将所述线程集合的状态设置为就绪状态。
本发明的另一个实施例提供了一种线程调度处理装置,该装置包括:线程绑定单元、调度单元、状态设置单元和状态恢复单元,其中
线程绑定单元,用于将彼此有关联的线程绑定为线程集合;
调度单元,用于接收线程调度请求,选择一个处于就绪状态的待执行线程;将该待执行线程分配给发出调度请求的处理器执行;
状态设置单元,用于获取与所述待执行线程相关联的线程,与所述待执行线程相关联的线程和所述待执行线程绑定于线程集合或线程簇;并将获取到的与所述待执行线程相关联的线程中处于就绪状态的待执行线程设置为非就绪状态;
状态恢复单元,用于在所述被选择的线程执行完成时,将被设置为非就绪状态的与所述被选择的线程相关联的线程恢复为就绪状态。
本发明的另一个实施例还提供了一种线程调度装置,该装置包括:线程绑定单元、调度单元、状态设置单元和状态恢复单元,其中
线程绑定单元,用于根据线程间的关联关系将所有线程分别绑定于线程集合;所述线程集合中包含多个彼此关联的线程,或者包含一个与其它线程没有关联关系的独立线程;
调度单元,用于接收线程调度请求,选择一个处于就绪状态的待执行线程集合,将该被选择的待执行线程集合分配给所述发出调度请求的处理器执行;
状态设置单元,用于将所述被选择的线程集合的状态设置为非就绪状态;
状态恢复单元,用于在所述线程簇中的线程执行完成时,将该线程集合的状态设置为就绪状态。
本发明的上述实施例中,将线程调度到发出调度请求的处理器上执行,并将与其关联的就绪状态的线程设置为非就绪状态,使该被调度的线程执行过程中,与该被调度的线程关联的其他线程不会被调度到其他处理器上执行,从而减少了对称多处理器***对线程的自由调度所带来的争夺、同步资源开销;并且,在该线程执行完成之后,将设置为非就绪状态的线程恢复为就绪状态,以使这些相互关联的线程可以被其他处理器调度执行,从而避免了将相关联的线程绑定到固定的处理器上执行所造成的***压力分布不均衡,因此提高了***效率。
附图说明
图1为本发明实施例一的线程调度流程示意图;
图2为本发明实施例的线程调度处理装置的结构示意图之一;
图3为本发明实施例的线程调度处理装置的结构示意图之二。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
实施例一
本实施例描述了以线程为调度单位,并将相互关联的线程绑定于线程簇(也可称为线程集合,以下同),进行线程调度的流程。
参见图1,为本发明实施例一的线程调度流程示意图,具体步骤包括:
步骤101、当某个处理器因当前空闲而发出调度请求时,线程调度程序接收该处理器发出的调度请求,并根据线程调度规则,从待执行线程队列中选择一个线程。待执行线程队列中排列有处于就绪状态的线程。线程的调度规则,可以是根据调度方式或线程优先级进行调度。例如,线程调度程序从待执行线程队列中选择一个优先级最高的线程。
步骤102、调度程序获取与被选择的线程有关联关系的线程的信息。可以事先将彼此有关联关系的线程进行标识,如将彼此有关联关系的线程绑定为线程簇,并保存线程与线程簇的绑定关系。当调度程序选择一个线程进行调度时,调度程序查询线程与线程簇的绑定关系,获取该线程所在的线程簇,并从该线程簇中获取除该线程以外的其它线程的线程标识,如线程名称。
步骤103、调度程序将待执行线程队列中的线程名称与步骤102中获取到的线程名称进行比较,查找线程队列中是否具有相同名称的线程,如果有,则将查找到的线程的状态设置为非就绪状态,使该线程从待执行线程队列中被移除。
步骤104、处理器获得调度程序分配的线程后执行该线程,在该线程执行完毕时,调度程序将步骤103中被设置为非就绪状态的线程恢复为就绪状态,这些被恢复为就绪状态的线程又回到待执行线程队列中。
线程簇(thread bundle)是一个或多个线程的集合,一个线程簇由一个或多个有一定关联的线程组成。一个线程从属于一个线程簇。可根据需要创建一个或多个线程簇。线程簇中的每个线程仍然保持自己的优先级等属性。
线程簇可通过应用函数接口实现,例如:
创建一个线程簇bundle1,其中包含2个线程thread1和thread2,其实现过程为:
int ret;
bundle_t bundle1;
thread_t thread1,thread2;
ret=bundle_create(bundle1);
assert(0==ret);
printf(″Create bundle success.″);
ret=bundle_append(bundle1,thread1);
if(0==ret)printf(″thread1 add to bundle1.″);
ret=bundle_append(bundle1,thread2);
if(0==ret)printf(″thread2 add to bundle2.″);
......
当移出bundle1中的线程thread1时,执行:
bundle_remove(bundle1,thread1);
当删除bundle1时,执行:
bundle_destroy(bundle1);
删除线程簇只是解除对该线程簇中所包含的线程的绑定,因此当删除线程簇时,即使该线程簇中有线程,也不会因此而删除这些线程。
创建线程簇的目的是对相互关联的线程之间的关联关系进行标识,从而使调度程序能够通过查询线程与线程簇的绑定关系,获取与其中某个被调度的线程相关联的线程。
以下是对称多处理器***调度线程的一个实例:
本实例中创建了1个线程簇bundle1,bundle1中包含3个相互关联的线程thread1、thread2和thread3,***保存线程簇bundle1的信息,以及bundle1与thread1、thread2和thread3的对应关系。对称多处理器***有2个处理器CPU1和CPU2。当前待执行线程队列中有thread1、thread2、thread3,以及其他线程待执行。
CPU1当前空闲,请求调度程序执行调度;
调度程序从待执行线程队列中选择线程thread1,分配给CPU1(可以根据优先级或调度方式选择待执行线程,此为现有技术,在此不详述),此时,thread1的状态从就绪状态转为运行状态,并被从待执行线程队列中移除。同时,调度程序从保存的线程簇与线程的对应关系中,获取到thread1所属的线程簇是bundle1,从bundle1中获取到与thread1关联的线程有thread2和thread3,并查询当前的待执行线程队列,查找到thread2和thread3,于是调度程序将待执行队列中的thread2和thread3的状态设置为阻塞状态,使thread2和thread3从待执行队列中被移除,例如将被移除的线程保存到被移除线程队列中。CPU1得到thread1后执行该线程。
在CPU1执行thread1的过程中,CPU2空闲,请求调度程序执行调度;
调度程序从待执行线程队列中选择线程分配给CPU2执行。由于在thread1执行期间内,与thread1关联的线程thread2和thread3已经被设置为阻塞状态而从待执行线程队列中移除,因此,在CPU2请求调度时,不可能将不在待执行线程队列中的thread2或thread3调度到CPU2上执行,因此避免了与thread1相关联的线程在同一时刻被不同的CPU执行。
thread1执行完毕后从运行状态转为就绪状态,进入到待执行线程队列,同时,调度程序将被设置为阻塞状态的thread2和thread3转为就绪状态,例如将被移除线程队列中的thread2和thread3的状态设置为就绪,使thread2和thread3重新进入到待执行线程队列。当任何一个CPU2请求调度时,可从待执行线程队列中获得thread1或thread2或thread3执行,至于选择哪个线程调度到CPU2,需要依据调度策略,此为现有技术,在此不详述。
由此可以看出,调度程序将与被调度的线程相关联的线程从待执行线程队列中移除,使某个处理器在执行该被调度的线程的时间段内,使其它处理器不可能得到与该被调度的线程相关联的线程执行,从而避免了处理器之间为了执行相互关联的线程而抢夺资源,减少了在执行线程过程中被打断的几率。并且,由于本实施例中并没有将线程簇绑定到固定的处理器上,因此,一旦被调度的线程调度完成后回到待执行线程队列,以及与该线程相关联的线程被恢复为就绪状态回到待执行线程队列中时,这些线程可被自由调度,而不会象现有技术中一样只能由固定的处理器执行,因而使***压力分布均衡,提高了***效率。
本实施例是通过将相互关联的多个线程绑定于线程簇实现线程调度,也可通过将相互关联的多个线程绑定于进程实现线程调度。将相互关联的线程绑定于进程,可通过应用函数接口实现,如通过应用函数接口实现在进程中创建或删除线程。当调度线程时,可通过与上述流程类似的方式,保证CPU执行该进程中的某个线程的过程中,其他CPU不会得到该进程中的任何线程执行,在该被调度的线程执行完毕后,该进程中的处于就绪状态的线程可以被自由调度。
实施例二
本实施例描述了将相互关联的线程绑定于线程簇,并以线程簇为调度单位进行线程调度的流程。
首先,以与实施例一相同的方式创建并设置线程簇,当线程之间不存在关联时,可将这些独立的线程分别独自设置为线程簇,以使所有线程都绑定在相应的线程簇中。线程簇中的线程保持各自的属性。
线程簇也具有属性,如优先级。线程簇的属性为该线程簇中处于就绪状态的最高优先级的线程的属性。调度程序可根据线程簇的优先级等属性调度线程簇,例如,优先级高的线程簇被优先调度,这样可保证优先级高的线程优先被执行。
线程簇也具有就绪、阻塞和运行等状态,并可在各状态之间进行转换。处于就绪状态的线程簇可排列在待执行线程簇队列中以等待调度程序的调度;处于运行状态或阻塞状态的线程簇不会出现在待执行线程簇队列中。当线程簇中的某个线程被执行的时间段内,该线程簇处于运行状态;当线程簇中的线程执行完毕后,该线程簇恢复到就绪状态。
以线程簇为调度单位进行调度的机制,与以线程为调度单位进行调度的机制相似。
以下为一个以线程簇为调度单位实现线程调度的实例。
例如,当前待执行线程簇队列中有两个待执行的线程簇bundle1和bundle2,***中有两个处理器CPU1和CPU2。当CPU1空闲时发出调度请求,调度程序接收到调度请求后,从待执行线程簇队列中选择一个线程簇,例如,选择优先级高的bundle1,并分配给CPU1执行。此时,bundle1当前为运行状态,从待执行线程簇队列中移除。在CPU1执行线程簇bundle1的过程中,CPU2空闲,并请求调度,调度程序从待执行线程簇队列中选择一个线程簇,例如,选择当前优先级高的bundle2,分配给CPU2执行。
CPU在得到线程簇执行时,可依据该线程簇中的线程状态和执行方式,执行其中的线程,例如根据就绪状态线程的优先级,先执行优先级高的线程。在根据优先级或线程执行方式执行完该线程簇中的全部或部分就绪状态线程后,该线程簇的状态变为就绪状态,重新回到待执行线程簇队列中。
通过本实例可以看出,由于本实例中没有将线程簇与处理器进行绑定,因而空闲的处理器有可能获得任何一个处于就绪状态的线程簇执行,从而解决了现有技术中由于将一组线程绑定于固定的处理器所造成的压力分布不均衡的问题。
本发明实施例还提供了线程调度处理装置。
参见图2,为本发明实施例提供的线程调度处理装置的结构示意图,该线程调度处理装置适用于实施例一所述的流程。该装置包括线程绑定单元、调度单元、状态设置单元和状态恢复单元。
线程绑定单元用于将相互关联的线程绑定于线程簇,并存储绑定信息,如线程及其所属的线程簇的隶属关系等信息;
调度单元用于根据处理器发出的调度请求,从待执行线程队列中选择一个线程,如选择一个优先级最高的线程,并向状态设置单元发送状态设置指令,状态设置指令中可以携带被选择的线程的信息,如线程名称;
状态设置单元用于根据调度单元发出的状态设置指令,从线程绑定单元获取被选择的线程所属的线程簇,并获取该线程簇内除该被选择的线程以外的线程,然后,查询待执行线程队列中是否有与获取到的线程相同的线程,并将查询到的相同的线程设置为阻塞状态,使这些线程被移除待执行线程队列;
状态恢复单元用于将状态设置单元设置为非就绪状态的与被选择的线程相关联的线程恢复为就绪状态,使这些线程又回到待执行线程队列。
参见图3,为本发明实施例提供的线程调度处理装置的结构示意图,该线程调度处理装置适用于实施例二所述的流程。该装置包括线程绑定单元、调度单元、状态设置单元和状态恢复单元。
线程绑定单元用于将相互关联的线程绑定于线程簇,并存储绑定信息。线程绑定单元还为线程簇设置属性,将线程簇中处于就绪状态的优先级最高的线程的属性设置为该线程集合的属性,如将优先级最高的线程的优先级作为所属线程簇的优先级。对于与其它线程没有关联关系的独立线程,线程绑定单元将其分别独自绑定于线程簇,这样使所有线程都绑定于相应的线程簇中。
调度单元调度用于根据处理器发出的调度请求,从待执行线程簇队列中选择一个待执行线程簇,并向状态设置单元发送状态设置指令,指令中可以携带线程簇的信息。调度单元调度线程簇时,可根据线程簇的属性进行调度,如优先调度优先级高的线程簇执行。待执行线程簇队列中存储有处于就绪状态的线程簇,如果一个线程簇中具有处于就绪状态的线程,则该线程簇处于就绪状态。
状态设置单元用于根据调度单元发出的状态设置指令,将被调度的线程簇的状态设置为运行状态,该线程簇被从待执行线程队列中移除;
状态恢复单元用于获取线程簇的执行状态,并在获知被调度的线程簇中的线程执行完成时,将该线程簇的状态设置为就绪,使该线程簇又回到待执行线程簇队列。
处理器在得到线程簇执行时,可依据该线程簇中的线程状态和执行方式,执行其中的线程,例如根据就绪状态线程的优先级,先执行优先级高的线程。在根据优先级或线程执行方式执行完该线程簇中的全部或部分就绪状态线程后,该线程簇的状态变为就绪状态,重新回到待执行线程簇队列中。
综上所述,本发明实施例通过将相互关联的线程绑定于线程簇,使同一线程簇内的线程同一时刻只在一个处理器上运行,可以避免对称多处理器***对线程的自由调度所带来的争夺、同步资源开销;同时,调度线程或线程簇时,仍采用自由调度的机制,即不将线程或线程集合绑定在指定的处理器上执行,避免由此带来的被绑定的处理器很忙,而其他处理器却空闲的请求发生,从而在处理相互关联的线程时,可发挥对称多处理器的优势,提高了***运行效率。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1、一种线程调度方法,其特征在于,包括如下步骤:
接收线程调度请求,选择一个处于就绪状态的待执行线程;
获取与所述待执行线程相关联的线程,与所述待执行线程相关联的线程和所述待执行线程绑定于线程集合或线程簇;
并将获取到的与所述待执行线程相关联的线程中处于就绪状态的待执行线程设置为非就绪状态;
将被选择的待执行线程分配给所述发出调度请求的处理器执行,并在所述被选择的线程执行完成时,将被设置为非就绪状态的与所述被选择的线程相关联的线程恢复为就绪状态。
2、如权利要求1所述的方法,其特征在于,所述获取与所述待执行线程相关联的线程具体包括:
获取所述被选择的待执行线程所属的线程集合,获取绑定于所述线程集合的线程中,除所述被选择的待执行线程以外的其它线程。
3、如权利要求1所述的方法,其特征在于,将获取到的与所述待执行线程相关联的线程中处于就绪状态的待执行线程设置为非就绪状态具体包括:
在待执行线程队列中查询与所述获取到的线程相同的线程,并将查询到的线程的就绪状态设置为非就绪状态。
4、如权利要求1所述的方法,其特征在于,所述非就绪状态为阻塞状态。
5、一种线程调度方法,其特征在于,包括如下步骤:
根据线程间的关联关系将所有线程分别绑定于线程集合,所述线程集合中包含多个彼此关联的线程,或者包含一个与其它线程没有关联关系的独立线程;
接收线程调度请求,选择一个处于就绪状态的待执行线程集合,并将所述线程集合的状态设置为非就绪状态;
将被选择的待执行线程集合分配给所述发出调度请求的处理器执行,并在该线程簇中的线程执行完成时,将所述线程集合的状态设置为就绪状态。
6、如权利要求5所述的方法,其特征在于,所述处于就绪状态的线程集合为具有就绪状态线程的线程集合,所述线程集合的优先级为所述线程集合中处于就绪状态的最高优先级线程的优先级;所述选择一个处于就绪状态的待执行线程集合具体包括:
根据所述处于就绪状态的线程集合的优先级选择线程集合。
7、如权利要求5所述的方法,其特征在于,所述非就绪状态为运行状态。
8、一种线程调度处理装置,其特征在于,包括线程绑定单元、调度单元、状态设置单元和状态恢复单元,其中
线程绑定单元,用于将彼此有关联的线程绑定为线程集合;
调度单元,用于接收线程调度请求,选择一个处于就绪状态的待执行线程;将该待执行线程分配给发出调度请求的处理器执行;
状态设置单元,用于获取与所述待执行线程相关联的线程,并将获取到的与所述待执行线程相关联的线程中处于就绪状态的待执行线程设置为非就绪状态;
状态恢复单元,用于在所述被选择的线程执行完成时,将被设置为非就绪状态的与所述被选择的线程相关联的线程恢复为就绪状态。
9、如权利要求8所述的线程调度处理装置,其特征在于,所述状态设置单元将获取到的与所述待执行线程相关联的线程中处于就绪状态的待执行线程设置为非就绪状态具体包括:
在待执行线程队列中查询与所述被选择的待执行线程相同的线程,并将查询到的线程的就绪状态设置为阻塞状态;
所述状态恢复单元将所述线程集合中被所述状态设置单元设置为阻塞状态的线程设置为就绪状态。
10、一种线程调度处理装置,其特征在于,包括:线程绑定单元、调度单元、状态设置单元和状态恢复单元,其中
线程绑定单元,用于根据线程间的关联关系将所有线程分别绑定于线程集合;所述线程集合中包含多个彼此关联的线程,或者包含一个与其它线程没有关联关系的独立线程;
调度单元,用于接收线程调度请求,选择一个处于就绪状态的待执行线程集合,将该被选择的待执行线程集合分配给所述发出调度请求的处理器执行;状态设置单元,用于将所述被选择的线程集合的状态设置为非就绪状态;
状态恢复单元,用于在所述线程簇中的线程执行完成时,将该线程集合的状态设置为就绪状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710110988A CN100578459C (zh) | 2007-06-12 | 2007-06-12 | 线程调度方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710110988A CN100578459C (zh) | 2007-06-12 | 2007-06-12 | 线程调度方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101324851A CN101324851A (zh) | 2008-12-17 |
CN100578459C true CN100578459C (zh) | 2010-01-06 |
Family
ID=40188398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710110988A Active CN100578459C (zh) | 2007-06-12 | 2007-06-12 | 线程调度方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100578459C (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2469822B (en) * | 2009-04-28 | 2011-04-20 | Imagination Tech Ltd | Method and apparatus for scheduling the issue of instructions in a multithreaded microprocessor |
US9274832B2 (en) * | 2013-02-07 | 2016-03-01 | Htc Corporation | Method and electronic device for thread scheduling |
CN103336574A (zh) * | 2013-07-23 | 2013-10-02 | 北京百度网讯科技有限公司 | 数据中心节能控制方法与装置 |
CN104460934A (zh) * | 2013-09-13 | 2015-03-25 | 华为终端有限公司 | 多cpu调度方法及装置 |
CN105528330B (zh) * | 2014-09-30 | 2019-05-28 | 杭州华为数字技术有限公司 | 负载均衡的方法、装置、丛集和众核处理器 |
US9916178B2 (en) * | 2015-09-25 | 2018-03-13 | Intel Corporation | Technologies for integrated thread scheduling |
US10140150B2 (en) * | 2016-02-08 | 2018-11-27 | Microsoft Technology Licensing, Llc | Thread diversion awaiting log call return |
CN105824703B (zh) * | 2016-03-30 | 2019-03-29 | 联想(北京)有限公司 | 一种线程管理方法和线程管理器 |
CN108572862B (zh) * | 2017-03-08 | 2021-12-03 | 华为技术有限公司 | 一种流程调度方法以及流程调度设备 |
CN107967150B (zh) * | 2017-12-19 | 2021-10-15 | 郑州云海信息技术有限公司 | 一种线程执行顺序确定方法、装置、设备及存储介质 |
CN110162387A (zh) * | 2019-04-09 | 2019-08-23 | 口口相传(北京)网络技术有限公司 | 线程调度方法、装置、计算机设备及计算机可读存储介质 |
CN110262839B (zh) * | 2019-06-17 | 2021-08-31 | 腾讯科技(深圳)有限公司 | 一种处理器的调度方法、装置及存储介质 |
CN112667369A (zh) * | 2020-06-08 | 2021-04-16 | 宸芯科技有限公司 | 一种线程调度方法、装置、存储介质及电子设备 |
CN113419841B (zh) * | 2021-08-24 | 2021-11-23 | 北京每日优鲜电子商务有限公司 | 消息调度方法、装置、电子设备和计算机可读介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1582428A (zh) * | 2001-11-07 | 2005-02-16 | 国际商业机器公司 | 用于在非均衡存储器存取计算机***中调度任务的方法和设备 |
-
2007
- 2007-06-12 CN CN200710110988A patent/CN100578459C/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1582428A (zh) * | 2001-11-07 | 2005-02-16 | 国际商业机器公司 | 用于在非均衡存储器存取计算机***中调度任务的方法和设备 |
Non-Patent Citations (1)
Title |
---|
特开2006-59052 2006.03.02 |
Also Published As
Publication number | Publication date |
---|---|
CN101324851A (zh) | 2008-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100578459C (zh) | 线程调度方法及其装置 | |
US20050022173A1 (en) | Method and system for allocation of special purpose computing resources in a multiprocessor system | |
US7137116B2 (en) | Method and system for performing a task on a computer | |
EP0969381A2 (en) | Method of efficient non-virtual main memory management | |
US8392920B2 (en) | Parallel query engine with dynamic number of workers | |
US20050125793A1 (en) | Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment | |
CN103729480B (zh) | 一种多核实时操作***多个就绪任务快速查找及调度方法 | |
JPH04195577A (ja) | マルチプロセッサにおけるタスクスケジューリング方式 | |
US8321874B2 (en) | Intelligent context migration for user mode scheduling | |
WO2007084700A2 (en) | System and method for thread handling in multithreaded parallel computing of nested threads | |
JP2012104140A (ja) | 待機状態にあるプロセッサ実行リソースの共有 | |
CN108920267A (zh) | 任务处理装置 | |
US20120284720A1 (en) | Hardware assisted scheduling in computer system | |
CN103365726A (zh) | 一种面向gpu集群的资源管理方法和*** | |
CN101414270A (zh) | 硬件辅助的辅核任务动态优先级调度的实现方法 | |
US20130097382A1 (en) | Multi-core processor system, computer product, and control method | |
JP2007257257A (ja) | マルチタスクシステムにおけるタスク実行環境切替え方法 | |
US7823158B2 (en) | Adaptive scheduling and management of work processing in a target context in resource contention | |
CN100468342C (zh) | 基于硬件资源的多核多中央处理器的执行绪分配方法 | |
US20130117754A1 (en) | Multi-core system and scheduling method | |
JPH11259318A (ja) | ディスパッチ方式 | |
CN102760073A (zh) | 一种任务调度方法、***及装置 | |
Horowitz | A run-time execution model for referential integrity maintenance | |
WO2014120304A1 (en) | System and method for supporting work sharing muxing in a cluster | |
US8327383B2 (en) | Cancellation of concurrent worker objects |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20160504 Address after: American California Patentee after: Snaptrack, Inc. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: Huawei Technologies Co., Ltd. |