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

文档序号:8319019阅读:来源:国知局
API在被调用时将执行上述步骤101和102。当然,本领域技术人员也可以采用其它方法来实现上述步骤,本发明对此不作具体限制。
[0046]此外,本领域技术人员应该知悉,上述高优先级任务B抢占低优先级任务A只是作为一种应用示例,在具体实施时,可以根据实际需要执行本发明提供的任务抢占的方法,并不局限于被抢占任务为低优先级任务的情况,例如,被抢占任务的优先级也可以高于抢占任务的优先级,总之,本发明实施例对抢占任务和被抢占任务的优先级关系等条件不加以限制。
[0047]综上,本发明提供了一种任务抢占的方案,该方案在杀死框架内的被抢占任务后,将所述被抢占任务占用的资源确定为所述框架的临时预留资源,由于所述临时预留资源为预留给特定框架的非共享资源,其对于该特定框架之外的其它框架是不可见的,只能被该特定框架申请,从而可以避免在牺牲自身的被抢占任务的情况下该被抢占任务释放的资源被其它框架所占用的问题。
[0048]实施例二
[0049]参照图2,示出了本发明提供的一种任务抢占的方法实施例二的流程图,具体可以包括以下步骤:
[0050]步骤201、杀死框架内的被抢占任务;
[0051]步骤202、将所述被抢占任务占用的资源确定为所述框架的临时预留资源;其中,所述临时预留资源为预留给特定框架的非共享资源。
[0052]步骤203、为所述框架内的抢占任务分配所述框架的临时预留资源。
[0053]本实施例在上述实施例一的基础上增加了步骤203,框架可以将自身的临时预留资源分配给本框架的其它任务。
[0054]在本发明的一种应用示例中,框架I杀死任务A后,可以将任务A占用的资源I确定为框架I的临时预留资源,其中,所述临时预留资源为预留给框架I的非共享资源。当框架I接收到需要抢占其它任务才能得以执行的任务B时,可以将该资源I分配给任务B,使得任务B能够及时执行。当然,也可以将该资源I分配给抢占任务C、抢占任务D等等,具体分配给哪个抢占任务本发明不做具体限制,只要是框架I中的任务即可,该资源I作为框架I的临时预留资源,为框架I所独享,具体怎样分配也可以由框架I来决定。
[0055]在本发明的另一优选实施例中,所述方法具体还可以包括以下步骤:
[0056]在所述抢占任务执行完成后,将所述临时预留资源释放至共享资源池。
[0057]例如,当抢占任务B执行完成后,其获取的临时预留资源(即资源I)也已经使用完毕,则可以将该临时预留资源释放至共享资源池变成空闲资源。这样,集群中的其它框架又可以共享该空闲资源,对该空闲资源进行公平竞争,因此能够避免框架对临时预留资源的长期占用,还能够避免当框架内没有足够多的任务时,临时预留资源将被闲置导致的资源浪费情况,从而提高了集群中资源的利用率。
[0058]在本发明的又一优选实施例中,所述方法具体还可以包括以下步骤:
[0059]当所述框架的临时预留资源不能满足所述抢占任务的资源需求时,杀死所述框架内的其它被抢占任务,并将所述其它被抢占任务占用的资源确定为所述框架的临时预留资源,直至所述框架的临时预留资源满足所述抢占任务的资源需求。
[0060]需要注意的是,本发明实施例中以高优先级任务抢占低优先级任务为例进行说明,但在实际应用中,也可以是低优先级任务抢占高优先级任务的情况。
[0061 ] 为使本领域技术人员更好地本发明,下面给出任务抢占的应用示例。
[0062]应用示例I
[0063]在本发明的一种应用示例中,示出了本申请一种任务抢占的过程,具体可以包括:
[0064]在TO时刻,框架I上运行着任务A ;
[0065]在Tl时刻,框架I接收到任务B,其中,任务B的优先级大于任务A的优先级;
[0066]在T2时刻,为了能够及时执行任务B,框架I杀死任务A ;
[0067]在T3时刻,将任务A占用的资源I释放至框架I的临时资源池,作为框架I的临时预留资源;
[0068]在T4时刻,若资源I不能满足任务B的需求,例如,资源I为大小为IG的内存,而执行任务B需要5G的内存,资源I的大小不能够满足任务B的需求,而任务C占用了 IG的内存,则框架I杀死任务C,其中,任务C的优先级小于任务B的优先级;
[0069]在T5时刻,将任务C占用的资源2释放至框架I的临时资源池,作为框架I的临时预留资源;
[0070]在T6时刻,若资源I和资源2还不能满足任务B的需求,则框架I杀死任务D,其中,任务D的优先级小于任务B的优先级;
[0071]框架I重复执行对其它任务抢占的过程,直到框架I的临时资源池中的资源能够满足任务B的需求为止;
[0072]在Tn时刻,若资源1,资源2,…,资源η能够满足任务B的需求,则框架I将所述资源1,资源2,…,资源η分配给任务B;
[0073]在Τη+1时刻,执行任务B ;
[0074]在Τη+2时刻,任务B执行完成,将资源1,资源2,…,资源η释放至共享资源池,供所有的框架自由竞争。
[0075]从上述示例可以看出,对于框架内高优先级任务,总能够保证申请到足够的资源,从而得以及时执行。
[0076]此外,框架内只要有高优先级任务没有处理完,就可以重复执行本发明的任务抢占方法来获取框架内的临时预留资源,所述临时预留资源只有在高优先级任务执行完成后才会回到共享资源池。
[0077]应用示例2
[0078]下面通过一个应用示例来说明上述重复抢占的过程,具体可以包括:
[0079]在TO时刻,框架I上运行着任务A ;
[0080]在Tl时刻,框架I接收到任务B,并且任务B的优先级大于任务A的优先级;
[0081]在Τ2时刻,为了能够及时执行任务B,框架I杀死任务A ;
[0082]在Τ3时刻,将任务A占用的资源I释放至框架I的临时资源池,作为框架I的临时预留资源;
[0083]在Τ4时刻,框架I将所述资源I分配给任务B ;
[0084]在Τ5时刻,执行任务B ;
[0085]在Τ6时刻,框架I接收到任务Ε,并且任务E的优先级大于任务B的优先级;
[0086]在Τ7时刻,为了能够及时执行任务Ε,框架I杀死任务B ;
[0087]在Τ8时刻,将任务B占用的资源I释放至框架I的临时资源池,作为框架I的临时预留资源;
[0088]在T9时刻,框架I将所述资源I分配给任务E ;
[0089]在10时刻,执行任务E ;
[0090]在Tll时刻,任务E执行完成,将资源I释放至共享资源池。
[0091]本发明实施例提供的任务抢占的方法,将框架内的被抢占任务释放的资源作为框架的临时预留资源,对于其它框架不可见,只能够被本框架所申请,避免了牺牲自身的被抢占任务的情况下该被抢占任务释放的资源被其它框架所占用的问题。此外,框架可以将所述临时预留资源分配给高优先级任务,从而保证框架内高优先级任务总是能够申请到足够的资源,以及本发明提供的任务抢占方法支持重复抢占的情况,即一个资源可以被多个任务不断抢占,从而进一步保证高优先级任务能够及时获取足够的资源,能够及时执行。最后,当高优先级任务执行完成后,将占用的临时预留资源释放至共享资源池,供所有的框架自由竞争,避免了资源浪费的情况。
[0092]装置实施例
[0093]参照图3,示出了本发明一种任务抢占的装置的结构框图,具体可以包括:
[009
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1