一种任务抢占的方法和装置的制造方法

文档序号:8319019阅读:501来源:国知局
一种任务抢占的方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别是涉及一种任务抢占的方法和装置。
【背景技术】
[0002]随着计算机技术的飞速发展,对计算能力和资源利用率的需求也不断提高,因此,云计算应运而生。在一方面,云计算以一种可管理、易扩展的方式提供计算能力;在另一方面,云计算以资源池的方式管理资源,用户对于资源可以随时获取,按需使用,以提高资源利用率。
[0003]目前,在一个云计算集群中运行多个计算框架(以下简称框架)是一种提高集群资源利用率行之有效的方法。现有方案中,多个框架可以通过共享资源池共享整个集群的资源,相应的资源共享流程具体可以包括:
[0004]步骤1、按照某种资源分配算法将该共享资源池中资源分配给某个框架;
[0005]步骤2、框架使用该资源运行任务;
[0006]步骤3、任务完成,释放资源,资源重新回到该共享资源池;
[0007]重复执行步骤1-3。
[0008]从上述资源共享流程可以看出,不管资源分配算法是怎样实现的,总是会经历资源释放重新回到该共享资源池这个步骤,然后再由资源分配算法来分配该资源;也即,资源作为该共享资源池的组成部分,分配给哪个框架具有不确定性,这种不确定性是由资源分配算法、及当前资源状态、当前框架状态等运行状态决定的。
[0009]上述资源共享流程在提高集群资源利用率的同时,还带来了多框架之间资源竞争的问题:假设某一时刻,计算框架I上运行着低优先级的任务A,同时又收到了高优先级的任务B,此种情况下,为确保任务B能及时执行,需要通过杀死任务A来抢占任务A的资源1然而,由于资源I是由资源管理者统一管理的,所以杀死任务A后,原来被任务A占用的资源I将会重新回收到该共享资源池中,然后变成空闲资源供所有框架竞争。然而,共享资源分配的不确定性决定了该资源I不能确保能够被框架I竞争到。因此,对于框架I而言,牺牲了自己的任务A,释放的资源I却很有可能被其它框架竞争到。

【发明内容】

[0010]本发明实施例所要解决的技术问题是提供一种任务抢占的方法和装置,能够避免框架在牺牲自身的被抢占任务的情况下该被抢占任务释放的资源被其它框架所占用的问题。
[0011]为了解决上述问题,本发明公开了一种任务抢占的方法,包括:
[0012]杀死框架内的被抢占任务;
[0013]将所述被抢占任务占用的资源确定为所述框架的临时预留资源;其中,所述临时预留资源为预留给特定框架的非共享资源。
[0014]优选地,所述方法还包括:
[0015]为所述框架内的抢占任务分配所述框架的临时预留资源。
[0016]优选地,所述方法还包括:
[0017]在所述抢占任务执行完成后,将所述临时预留资源释放至共享资源池。
[0018]优选地,所述方法还包括:
[0019]当所述框架的临时预留资源不能满足所述抢占任务的资源需求时,杀死所述框架内的其它被抢占任务,并将所述其它被抢占任务占用的资源确定为所述框架的临时预留资源,直至所述框架的临时预留资源满足所述抢占任务的资源需求。
[0020]优选地,所述抢占任务的优先级大于所述被抢占任务的优先级,或者所述抢占任务的优先级小于所述被抢占任务的优先级。
[0021]依据本发明的另一个方面,本发明公开了一种任务抢占的装置,包括:
[0022]杀死任务模块,用于杀死框架内的被抢占任务;及
[0023]资源预留模块,用于将所述被抢占任务占用的资源确定为所述框架的临时预留资源;其中,所述临时预留资源为预留给特定框架的非共享资源。
[0024]优选地,所述装置还包括:
[0025]资源分配模块,用于为所述框架内的抢占任务分配所述框架的临时预留资源。
[0026]优选地,所述装置还包括:
[0027]资源回收模块,用于在所述抢占任务执行完成后,将所述临时预留资源释放至共享资源池。
[0028]优选地,所述装置还包括:
[0029]持续抢占模块,用于当所述框架的临时预留资源不能满足所述抢占任务的资源需求时,杀死所述框架内的其它被抢占任务,并将所述其它被抢占任务占用的资源确定为所述框架的临时预留资源,直至所述框架的临时预留资源满足所述抢占任务的资源需求。
[0030]优选地,所述抢占任务的优先级大于所述被抢占任务的优先级,或者所述抢占任务的优先级小于所述被抢占任务的优先级。
[0031]与现有技术相比,本发明实施例包括以下优点:
[0032]本发明提供了一种任务抢占的方案,该方案在杀死框架内的被抢占任务后,将所述被抢占任务占用的资源确定为所述框架的临时预留资源,由于所述临时预留资源为预留给特定框架的非共享资源,其对于该特定框架之外的其它框架是不可见的,只能被该特定框架申请,从而可以避免在牺牲自身的被抢占任务的情况下该被抢占任务释放的资源被其它框架所占用的问题。
【附图说明】
[0033]图1示出了本发明的一种任务抢占的方法实施例一的流程图;
[0034]图2示出了本发明的一种任务抢占的方法实施例二的流程图;以及
[0035]图3示出了本发明的一种任务抢占的装置实施例的结构框图。
【具体实施方式】
[0036]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0037]实施例一
[0038]参照图1,示出了本发明提供的一种任务抢占的方法实施例一的流程图,具体可以包括如下步骤:
[0039]步骤101、杀死框架内的被抢占任务;
[0040]由于集群内的资源有限,同一个框架内的抢占任务需要通过抢占被抢占任务的资源,才能确保抢占任务的及时执行。当框架内发生任务抢占时,会首先杀死框架内的被抢占任务。
[0041]步骤102、将所述被抢占任务占用的资源确定为所述框架的临时预留资源;其中,所述临时预留资源为预留给特定框架的非共享资源。
[0042]在框架杀死被抢占任务后,需要释放所述被抢占任务占用的资源。本发明释放所述被抢占任务占用的资源的过程具体为,将所述释放的资源确定为所述框架的临时预留资源;由于所述临时预留资源为预留给特定框架的非共享资源,其对于其它框架不而言是可见的,只能被该特定框架申请。
[0043]在本发明的一种应用示例中,假设框架I上运行着低优先级任务A,此时,又接收到高优先级任务B,由于集群中资源紧张,需要通过抢占任务A来获取资源,以保证高优先级任务B及时执行,则该示例对应的任务抢占流程具体可以包括:
[0044]首先,框架I会杀死任务A ;然后将任务A占用的资源I确定为框架I的临时预留资源,其中,所述临时预留资源为预留给框架I的非共享资源。在具体实现中,资源分配算法可以支持这种资源的临时预留方案,例如,资源分配算法可以将任务A释放的资源I临时添加到框架I的资源池中,而不是将其放入共享资源池中,以确保该临时预留资源对其它框架不可见,只能被框架I申请,从而可以保证框架I能够申请到资源来运行任务B。
[0045]在实际应用中,可以通过调用预置的API (Applicat1n Programming Interface,应用程序编程接口)来实现。例如,集群管理节点可以向各框架提供该API,当某框架需要通过任务抢占来获取临时预留资源时可以调用这个编程接口,该
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1