一种面向基站任务的调度方法和系统转让专利

申请号 : CN201711191937.1

文献号 : CN109842947B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郭亭亭孙茜田霖石晶林王园园

申请人 : 中国科学院计算技术研究所

摘要 :

本发明涉及一种面向基站任务的调度方法和系统,包括:通过识别各基站任务的标识符,运行硬实时任务;根据当前各协议处理实体内处理业务量的情况,为各协议处理实体的延缓服务器分配周期和执行预算,并结合当前系统的CPU状态信息,运行软实时任务;判断任务集中是否包含基站实体管控任务,若是,则根据基站实体管控任务的资源请求情况,为其分配CPU资源,运行基站实体管控任务。由此本发明能够保证基站软件的正常运行,即保证硬实时任务的截止期限,同时提高软实时任务的平均响应时间;并且考虑到了基站实体管控任务与实时任务之间的相互影响,适合应用在集中式基站架构中。

权利要求 :

1.一种面向基站任务的调度方法,其特征在于,包括:

步骤1、将系统内各协议处理实体的基站任务集合为任务集,其中该系统为基带处理系统或协议处理系统;

步骤2、通过识别各基站任务的标识符,判断该任务集中是否包含硬实时任务,若是,则执行步骤3,否则判断该任务集中是否包含软实时任务,若是,则执行步骤4,否则执行步骤

5;

步骤3、根据当前该系统的CPU状态信息,运行该硬实时任务,该硬实时任务运行完毕后返回该步骤2;

步骤4、为各协议处理实体中的全部软实时任务维护一个延缓服务器,根据当前各协议处理实体内处理业务量的情况,为各延缓服务器分配周期和执行预算,并结合当前该系统的CPU状态信息,运行延缓服务器所维护的软实时任务,该软实时任务运行完毕后返回该步骤2;

步骤5、判断该任务集中是否包含基站实体管控任务,若是,则根据该基站实体管控任务的资源请求情况,为其分配CPU资源,运行该基站实体管控任务,并设置隔离参数,禁止软实时任务抢占,否则执行步骤6;

步骤6、判断该任务集是否为空,若是,则结束任务调度,否则返回该步骤2;

其中该步骤5还包括,在运行该基站实体管控任务前判断该基站实体管控任务是否为迁移任务,若是则在该迁移任务运行到迁移停机阶段时,将当前该迁移任务绑定到该分配CPU资源上,并禁止一切抢占直到该迁移停机阶段结束;

其中该步骤2还包括:

步骤11、根据该硬实时任务传入的用户终端和无线资源,计算该硬实时任务的时间复杂度,并根据该时间复杂度为该硬实时任务分配优先级,根据优先级将该硬实时任务插入硬实时队列;

步骤12、根据协议处理实体中软实时任务处理的数据量,为协议处理实体的延缓服务器分配周期和执行预算,并计算优先级将该延缓服务器插入软实时队列。

2.如权利要求1所述的面向基站任务的调度方法,其特征在于,该步骤3还包括:步骤31、根据该CPU状态信息判断是否有空闲CPU资源,若有,则抢占空闲CPU资源,运行该硬实时队列中首个硬实时任务,否则根据该隔离参数判断能否抢占该基站实体管控任务的CPU资源,若能,则抢占其CPU资源,运行该硬实时队列中首个硬实时任务,否则抢占该软实时任务的CPU资源,运行该硬实时队列中首个硬实时任务,若该系统中,无可抢占CPU资源,则按照优先级顺序排队等待。

3.如权利要求1所述的面向基站任务的调度方法,其特征在于,该步骤4还包括:步骤41、运行过程中该执行预算相应减少,若该软实时任务运行完毕时该执行预算有剩余,则根据该延缓服务器的优先级判定是否运行下一个该软实时任务;若该执行预算已用完但该软实时任务没有运行完毕,则重新根据其所维护的协议处理实体中软实时任务所处理的数据量,补充该执行预算和该周期,并将该延缓服务器插入该软实时队列;若该软实时任务运行完毕时该执行预算已用完,则返回该步骤2。

4.如权利要求1或3所述的面向基站任务的调度方法,其特征在于,该执行预算的分配方法为:其中C为该执行预算,T为该周期,n为延缓服务器的个数。

5.如权利要求1所述的面向基站任务的调度方法,其特征在于,该步骤11还包括:采用比例公平算法计算该时间复杂度;

其中该比例公平算法计算的时间复杂度为O(KNlog2N),其中K为接入的该用户终端数,N为该无线资源的无线子载波数。

6.一种面向基站任务的调度系统,其特征在于,包括:

基站任务集合模块,用于将系统内各协议处理实体的基站任务集合为任务集,其中该系统为基带处理系统或协议处理系统;

任务识别模块,用于通过识别各基站任务的标识符,判断该任务集中是否包含硬实时任务,若是,则调用硬实时任务运行模块,否则判断该任务集中是否包含软实时任务,若是,则调用软实时任务运行模块,否则调用基站实体管控任务运行模块;

硬实时任务运行模块,用于根据当前该系统的CPU状态信息,运行该硬实时任务,该硬实时任务运行完毕后返回该任务识别模块;

软实时任务运行模块,用于根据当前各协议处理实体内处理业务量的情况,为各协议处理实体的延缓服务器分配周期和执行预算,并结合当前该系统的CPU状态信息,运行该软实时任务,该软实时任务运行完毕后返回该任务识别模块;

基站实体管控任务运行模块,用于判断该任务集中是否包含基站实体管控任务,若是,则根据该基站实体管控任务的资源请求情况,为其分配CPU资源,运行该基站实体管控任务,并设置隔离参数,禁止软实时任务抢占,否则执行判断模块;

判断模块,用于判断该任务集是否为空,若是,则结束任务调度,否则返回该任务识别模块;

其中该基站实体管控任务运行模块还包括,在运行该基站实体管控任务前判断该基站实体管控任务是否为迁移任务,若是则在该迁移任务运行到停机阶段时,将当前该迁移任务绑定到该分配CPU资源上,并禁止一切抢占直到迁移任务停机阶段结束;

其中,该任务识别模块还包括:

根据该硬实时任务传入的用户终端和无线资源,计算该硬实时任务的时间复杂度,并根据该时间复杂度为该硬实时任务分配优先级,根据优先级将该硬实时任务插入硬实时队列;

根据协议处理实体中软实时任务处理的数据量,为该协议处理实体的延缓服务器分配周期和执行预算,并计算优先级将该延缓服务器插入软实时队列。

7.如权利要求6所述的面向基站任务的调度系统,其特征在于,该硬实时任务运行模块还包括:根据该CPU状态信息判断是否有空闲CPU资源,若有,则抢占空闲CPU资源,运行该硬实时队列中首个硬实时任务,否则根据该隔离参数判断能否抢占该基站实体管控任务的CPU资源,若能,则抢占其CPU资源,运行该硬实时队列中首个硬实时任务,否则抢占该软实时任务的CPU资源,运行该硬实时队列中首个硬实时任务,若该系统中,无可抢占CPU资源,则按照优先级顺序排队等待。

8.如权利要求6所述的面向基站任务的调度系统,其特征在于,该软实时任务运行模块还包括:运行过程中该执行预算相应减少,若该软实时任务运行完毕时该执行预算有剩余,则根据该延缓服务器的优先级判定是否运行下一个该软实时任务;若该执行预算已用完但该软实时任务没有运行完毕,则重新根据其所维护的协议处理实体中软实时任务所处理的数据量,补充该执行预算和该周期,并将该延缓服务器插入该软实时队列;若该软实时任务运行完毕时该执行预算已用完,则返回该任务识别模块。

说明书 :

一种面向基站任务的调度方法和系统

技术领域

[0001] 本发明涉及无线通信系统领域中的任务调度领域,特别涉及一种面向基站任务的调度方法和系统。

背景技术

[0002] 近年来超级基站是由中科院提出的一种新型集中式接入网架构,超级基站系统包含可重定义基带处理池、集中式协议处理池以及集中式资源管控池,其中集中式协议处理池和可重定义基带处理池均采用开放的计算平台,集中式协议处理池作为协议处理的基础设施,完成基站的层2和层3协议处理任务,在无线网络中充当BSC/RNC/eNB等无线接入和协议处理的任务。可重定义基带处理池主要负责完成基带信号处理任务。
[0003] 集中式基站架构中协议处理系统和基带处理系统均采用通用的Linux操作系统,其包含的所有基站任务以及系统任务均由Linux的调度器进行统一调度,Linux系统的调度器决定一系列的运行任务何时得到何种资源,合理的调度算法既能保证充分的利用系统硬件资源,又可以保证任务的运行特性。因此,研究基站系统中任务调度机制非常关键。
[0004] 基站系统是对任务运行时限有一定要求的实时系统,在实时系统中,每个任务都有一个截止期限,依据对截止期限错失情况的要求可将实时任务分为硬实时任务和软实时任务,其中硬实时任务必须在其截止期限之内完成运行任务,如果产生的结果不符合时间约束,那么由此带来的错误将是严重的和不可恢复的;软实时任务可允许有一定的截止期限错失,虽然其产生的结果不符合时间约束,但由此带来的错误是可以接受、可以恢复的,不会影响系统的正常运行。
[0005] 以协议处理系统为例进行基站任务分析,如图1所示。协议处理系统中可开启若干协议处理实体,协议处理实体中运行协议栈软件,对于操作系统来说,每个协议处理实体的优先级都是相同的,但是每个协议处理实体中执行任务的优先级是不同的。协议栈软件中主要有调度任务、上行任务、下行任务(协议栈软件可采用不同的实现方式,但是不会影响以下的协议栈软件的实时特性分析),其中调度任务主要负责无线资源调度,考虑无线承载的QoS需求、各个用户终端(User Equipment,UE)的无线信道质量、缓冲区状态、干扰信息等,按照一定的调度规则,决定UE或者核心网传过来的数据包在哪些资源块(Resource Block,RB)上以何种调制编码方式传输,并在1ms的周期内发出一个子帧。调度任务严格遵循1ms的周期和截止期限,否则就会浪费有限的无线资源,属于硬实时任务;上行任务和下行任务负责接收UE发送的上行数据和核心网发送给UE的下行数据,并进行数据包加解密、分包组包。数据包重传等数据包处理工作。上行任务和下行任务周期为1ms,任务运行时超出1ms的运行周期不会影响系统的正常运行,属于软实时任务;在协议栈软件中还存在log等非实时任务。此外,在协议处理系统中,超级基站管控中心会根据系统需求,发起协议处理实体建立、删除、启动、暂停等生命周期管理任务;在资源池管理中,管控中心会根据负载均衡需求发起协议处理实体迁移任务,上述协议处理实体管控相关任务没有截止期限的要求,属于非实时任务。因此,协议栈处理系统是一个相对复杂的硬实时任务、软实时任务、非实时任务共存的混合实时系统,需要为其设计合理的调度方案,以保证协议栈软件的运行要求,即保证硬实时任务的截止期限,提高软实时任务的平均响应时间,并且合理调度非实时任务。
[0006] 基带处理系统中任务特性与协议处理系统类似,为混合实时系统,即基带处理实体中硬实时、软实时、非实时任务与基带处理实体管控非实时任务共存。本发明针对基站任务特性设计的调度方案同时适合基带处理系统和协议处理系统,本发明主要以协议处理系统为例进行说明,基带处理系统需要修改调度方案中相应的调度参数。(以下提到的基站实体包括基带处理实体和协议处理实体,基站任务包括基站实体中处理软件运行任务和基站实体的管控任务)
[0007] 本发明提出的基站任务调度方案主要面临的问题如下:
[0008] 1、实时任务调度:为了同时保证基站任务的运行要求和系统容量,需要联合考虑系统中每种任务类型的运行特点。针对实时任务调度传统的调度方案,一般都针对调度参数相对明确的任务类型,但是基站实体运行过程中,接入的UE数、信道质量、业务类型、数据量等因素随时都可能发生变化,相应会改变基站任务处理实体中运行任务的复杂度,改变系统运行负载。因此,需要研究符合每种任务类型运行要求,并且适应其变化特性的调度方案。
[0009] 2、实时任务与特殊非实时任务间相互影响:基站系统中基站实体管控任务属于非实时任务,此类非实时任务执行时间相对基站实体中运行任务周期内执行时间非常长,一般在s级,并且执行过程中需要占用较多的CPU资源,如图2为基站实体创建过程中,某一时刻的资源消耗情况,核4的资源占用为70%左右,核2的资源占用为30%左右,资源占用较多。任务调度过程中,会出现实时任务频繁抢占非实时任务,导致非实时任务执行时间延长,影响基站实体管控性能,并且增加系统开销,以致影响实时任务的截止期限。因此,整体调度方案设计过程中,需要联合考虑实时任务和特殊非实时任务之间的影响,最大程度降低系统开销。
[0010] 目前,针对Linux系统混合实时调度方案的研究有很多,大多采用了分层的调度思想,即分别设计硬实时调度器、软实时调度器和非实时调度器,并且为调度器设置优先级,硬实时调度器优先级最高,非实时任务优先级最低。非实时调度器一般采用Linux系统的CFS调度策略。实时调度器目前主要有3类:优先级驱动策略、时间驱动策略和共享驱动策略。
[0011] 优先级驱动策略:分为静态优先级和动态优先级,单调速率(RM)调度算法是典型的静态优先级算法,根据任务的周期的长短来确定任务的优先级;最早截止期优先调度算法(EDF)是典型的动态优先级调度算法,以任务的最迟完成时间来计算任务的优先级,这两种调度算法的最大处理机利用率都可以达到1,可用于硬实时系统,但是在突发过载的情况下,有些任务的实时性很难得到保证。
[0012] 时间驱动策略:是一种静态的调度,需要定时器的支持,在任务执行之前系统就要确定在哪些确定的时刻CPU执行哪些任务。这类调度算法适合于任务固定不变的硬实时系统中。
[0013] 共享驱动策略:Linux系统目前的采用的实时调度策略先到先服务(SCHED_FIFO)和轮询调度(SCHED_RR),以及服务器调度算法属于共享驱动策略。SCHED_FIFO调度算法只是根据简单的先来先服务的原则调度任务,运行完一个时间片后就转到队列的尾部;SCHED_RR为每个分配的时间片加一个权,即分配不同的时间片长度给不同的进程,轮转的方式占用CPU时间,因此不同重要程度的进程得到的处理器的时间是不一样的;服务器调度算法则是根据任务响应的敏感性,为其分配合理的处理器带宽。共享驱动调度策略只适合软实时任务调度。
[0014] 首先,现有的针对Linux混合实时系统的调度方案的研究中,大部分考虑的是实时任务的调度器设计,并没有考虑对于非实时任务来说,调度方案的合理性。但是在基站系统中,基站实体管控任务有一定的性能要求,例如,迁移过程中,迁移时间过长会持续占用系统资源,停机时间长会直接影响UE接入。此外,基站实体的生命周期管理任务运行时间相对较长,会频繁与非实时任务进行切换,导致系统开销增大,影响非实时任务的正常运行。因此,在基站系统中,非实时任务的合理调度也是很重要的一部分。
[0015] 其次,现有的针对Linux系统实时调度策略的研究,大部分是针对时间预测性比较强的实时任务。例如优先级驱动策略以及时间驱动策略,需要对任务的周期、运行时间、最早截止期限或者最迟运行时间等参数进行分析,从而确定任务的优先级。但是在基站系统中,各个基站实体中任务的运行时间或紧急性是随时在变化的,目前并没有对基站实体中任务的运行时间准确预测的方法,只有其运行周期是确定并且是相同的。因此,采用现有的调度方案,不能很好的保证任务的实时性能。
[0016] 本发明针对上述存在的问题,提出了一种联合考虑基站系统中基站实体中任务运行特性以及基站实体管控任务特性的调度方案,所提出的调度方案,基于现有的分层调度的思想,区分调度算法的优先级,并考虑基站实体中任务的运行特点,针对运行任务的不同实时性要求,设计相应的调度算法,同时针对基站实体的管控任务,将其与基站实体中任务的调度工作进行一定的分区调度,保证其能够正常运行的前提下不影响基站系统中实时任务的实时性能。
[0017] 现有的Linux系统调度算法大部分是针对有明确的运行时间、最早截止期限、分明的运行周期等特点的任务进行设计与实现的,并不适合基站实体中任务调度特点。另外,在集中式基站架构下,基站实体管控任务有一定的性能要求,已有的混合实时任务的调度方案中,主要是研究实时任务调度,基本不考虑非实时任务。本发明联合考虑集中式基站系统中基站任务处理软件的特有运行属性以及基站实体管控任务的特性,提出了一种面向基站任务的调度方案。在满足基站任务实体正常运行的情况下,最大化系统的容量。

发明内容

[0018] 本发明意在解决集中式基站架构下的单节点基站系统中任务调度存在的问题,针对基站实体中任务运行的实时性特点、调度参数难预测性以及基站实体管理任务和实时任务之间相互影响的特点,提出了一种联合考虑基站处理软件运行特性以及基站实体管控任务特性的调度方案。
[0019] 具体地说,本发明公开了一种面向基站任务的调度方法,其中包括:
[0020] 步骤1、将系统内各协议处理实体的基站任务集合为任务集,其中该系统为基带处理系统或协议处理系统;
[0021] 步骤2、通过识别各基站任务的标识符,判断该任务集中是否包含硬实时任务,若是,则执行步骤3,否则判断该任务集中是否包含软实时任务,若是,则执行步骤4,否则执行步骤5;
[0022] 步骤3、根据当前该系统的CPU状态信息,运行该硬实时任务,该硬实时任务运行完毕后返回该步骤2;
[0023] 步骤4、为各协议处理实体中的全部软实时任务维护一个延缓服务器,根据当前各协议处理实体内处理业务量的情况,为各延缓服务器分配周期和执行预算,并结合当前该系统的CPU状态信息,运行延缓服务器所维护的软实时任务,该软实时任务运行完毕后返回该步骤2;
[0024] 步骤5、判断该任务集中是否包含基站实体管控任务,若是,则根据该基站实体管控任务的资源请求情况,为其分配CPU资源,运行该基站实体管控任务,并设置隔离参数,禁止软实时任务抢占,否则执行步骤6;
[0025] 步骤6、判断该任务集是否为空,若是,则结束任务调度,否则返回该步骤2;
[0026] 其中该步骤5还包括,在运行该基站实体管控任务前判断该基站实体管控任务是否为迁移任务,若是则在该迁移任务运行到迁移停机阶段时,将当前该迁移任务绑定到该分配CPU资源上,并禁止一切抢占直到该迁移停机阶段结束。
[0027] 该面向基站任务的调度方法,其中该步骤2还包括:
[0028] 步骤11、根据该硬实时任务传入的用户终端和无线资源,计算该硬实时任务的时间复杂度,并根据该时间复杂度为该硬实时任务分配优先级,根据优先级将该硬实时任务插入硬实时队列;
[0029] 步骤12、根据协议处理实体中软实时任务处理的数据量,为协议处理实体的延缓服务器分配周期和执行预算,并计算优先级将该延缓服务器插入软实时队列。
[0030] 该面向基站任务的调度方法,其中该步骤3还包括:
[0031] 步骤31、根据该CPU状态信息判断是否有空闲CPU资源,若有,则抢占空闲CPU资源,运行该硬实时队列中首个硬实时任务,否则根据该隔离参数判断能否抢占该基站实体管控任务的CPU资源,若能,则抢占其CPU资源,运行该硬实时队列中首个硬实时任务,否则抢占该软实时任务的CPU资源,运行该硬实时队列中首个硬实时任务,若该系统中,无可抢占CPU资源,则按照优先级顺序排队等待。
[0032] 该面向基站任务的调度方法,其中该步骤4还包括:
[0033] 步骤41、运行过程中该执行预算相应减少,若该软实时任务运行完毕时该执行预算有剩余,则根据该延缓服务器的优先级判定是否运行下一个该软实时任务;若该执行预算已用完但该软实时任务没有运行完毕,则重新根据其所维护的协议处理实体中软实时任务所处理的数据量,补充该执行预算和该周期,并将该延缓服务器插入该软实时队列;若该软实时任务运行完毕时该执行预算已用完,则返回该步骤2。
[0034] 该面向基站任务的调度方法,其中该执行预算的分配方法为:
[0035]
[0036] 其中C为该执行预算,T为该周期。
[0037] 该面向基站任务的调度方法,其中该步骤11还包括:采用比例公平算法计算该时间复杂度;
[0038] 其中该比例公平算法计算的时间复杂度为O(KNlog2N),其中K为接入的该用户终端数,N为该无线资源的无线子载波数。
[0039] 本发明还公开了一种面向基站任务的调度系统,其中包括:
[0040] 基站任务集合模块,用于将系统内各协议处理实体的基站任务集合为任务集,其中该系统为基带处理系统或协议处理系统;
[0041] 任务识别模块,用于通过识别各基站任务的标识符,判断该任务集中是否包含硬实时任务,若是,则调用硬实时任务运行模块,否则判断该任务集中是否包含软实时任务,若是,则调用软实时任务运行模块,否则调用基站实体管控任务运行模块;
[0042] 硬实时任务运行模块,用于根据当前该系统的CPU状态信息,运行该硬实时任务,该硬实时任务运行完毕后返回该任务识别模块;
[0043] 软实时任务运行模块,用于根据当前各协议处理实体内处理业务量的情况,为各协议处理实体的延缓服务器分配周期和执行预算,并结合当前该系统的CPU状态信息,运行该软实时任务,该软实时任务运行完毕后返回该任务识别模块;
[0044] 基站实体管控任务运行模块,用于判断该任务集中是否包含基站实体管控任务,若是,则根据该基站实体管控任务的资源请求情况,为其分配CPU资源,运行该基站实体管控任务,并设置隔离参数,禁止软实时任务抢占,否则执行判断模块;
[0045] 判断模块,用于判断该任务集是否为空,若是,则结束任务调度,否则返回该任务识别模块;
[0046] 其中该基站实体管控任务运行模块还包括,在运行该基站实体管控任务前判断该基站实体管控任务是否为迁移任务,若是则在该迁移任务运行到停机阶段时,将当前该迁移任务绑定到该分配CPU资源上,并禁止一切抢占直到迁移任务停机阶段结束。
[0047] 该面向基站任务的调度系统,其中该任务识别模块还包括:
[0048] 根据该硬实时任务传入的用户终端和无线资源,计算该硬实时任务的时间复杂度,并根据该时间复杂度为该硬实时任务分配优先级,根据优先级将该硬实时任务插入硬实时队列;
[0049] 根据协议处理实体中软实时任务处理的数据量,为该协议处理实体的延缓服务器分配周期和执行预算,并计算优先级将该延缓服务器插入软实时队列。
[0050] 该面向基站任务的调度系统,其中该硬实时任务运行模块还包括:
[0051] 根据该CPU状态信息判断是否有空闲CPU资源,若有,则抢占空闲CPU资源,运行该硬实时队列中首个硬实时任务,否则根据该隔离参数判断能否抢占该基站实体管控任务的CPU资源,若能,则抢占其CPU资源,运行该硬实时队列中首个硬实时任务,否则抢占该软实时任务的CPU资源,运行该硬实时队列中首个硬实时任务,若该系统中,无可抢占CPU资源,则按照优先级顺序排队等待。
[0052] 该面向基站任务的调度系统,其中该软实时任务运行模块还包括:
[0053] 运行过程中该执行预算相应减少,若该软实时任务运行完毕时该执行预算有剩余,则根据该延缓服务器的优先级判定是否运行下一个该软实时任务;若该执行预算已用完但该软实时任务没有运行完毕,则重新根据其所维护的协议处理实体中软实时任务所处理的数据量,补充该执行预算和该周期,并将该延缓服务器插入该软实时队列;若该软实时任务运行完毕时该执行预算已用完,则返回该任务识别模块。
[0054] 由此本发明所提出的面向基站任务的调度方案,考虑了基站软件特有的运行特点,能够保证基站软件的正常运行,即保证硬实时任务的截止期限,同时提高软实时任务的平均响应时间;并且考虑到了基站实体管控任务与实时任务之间的相互影响,适合应用在集中式基站架构中。

附图说明

[0055] 图1为协议处理系统任务类型图;
[0056] 图2为基站实体创建消耗资源情况示意图;
[0057] 图3为基站任务调度流程图;
[0058] 图4A、图4B为本发明调度方案与WRR和EDF的性能对比图。

具体实施方式

[0059] 本发明提出了一种面向基站任务的调度方法,其中包括:
[0060] 步骤1、将系统内各协议处理实体的基站任务集合为任务集,其中该系统为基带处理系统或协议处理系统;
[0061] 步骤2、通过识别各基站任务的标识符,判断该任务集中是否包含硬实时任务,若是,则执行步骤3,否则判断该任务集中是否包含软实时任务,若是,则执行步骤4,否则执行步骤5;
[0062] 步骤3、根据当前该系统的CPU状态信息,运行该硬实时任务,该硬实时任务运行完毕后返回该步骤2;
[0063] 步骤4、为各协议处理实体中的全部软实时任务维护一个延缓服务器,根据当前各协议处理实体内处理业务量的情况,为各延缓服务器分配周期和执行预算,并结合当前该系统的CPU状态信息,运行延缓服务器所维护的软实时任务,该软实时任务运行完毕后返回该步骤2;
[0064] 步骤5、判断该任务集中是否包含基站实体管控任务,若是,则根据该基站实体管控任务的资源请求情况,为其分配CPU资源,运行该基站实体管控任务,并设置隔离参数,禁止软实时任务抢占,否则执行步骤6;
[0065] 步骤6、判断该任务集是否为空,若是,则结束任务调度,否则返回该步骤2;
[0066] 其中该步骤5还包括,在运行该基站实体管控任务前判断该基站实体管控任务是否为迁移任务,若是则在该迁移任务运行到迁移停机阶段时,将当前该迁移任务绑定到该分配CPU资源上,并禁止一切抢占直到该迁移停机阶段结束。
[0067] 该面向基站任务的调度方法,其中该步骤2还包括:
[0068] 步骤11、根据该硬实时任务传入的用户终端和无线资源,计算该硬实时任务的时间复杂度,并根据该时间复杂度为该硬实时任务分配优先级,根据优先级将该硬实时任务插入硬实时队列;
[0069] 步骤12、根据协议处理实体中软实时任务处理的数据量,为协议处理实体的延缓服务器分配周期和执行预算,并计算优先级将该延缓服务器插入软实时队列。
[0070] 该面向基站任务的调度方法,其中该步骤3还包括:
[0071] 步骤31、根据该CPU状态信息判断是否有空闲CPU资源,若有,则抢占空闲CPU资源,运行该硬实时队列中首个硬实时任务,否则根据该隔离参数判断能否抢占该基站实体管控任务的CPU资源,若能,则抢占其CPU资源,运行该硬实时队列中首个硬实时任务,否则抢占该软实时任务的CPU资源,运行该硬实时队列中首个硬实时任务,若该系统中,无可抢占CPU资源,则按照优先级顺序排队等待。
[0072] 该面向基站任务的调度方法,其中该步骤4还包括:
[0073] 步骤41、运行过程中该执行预算相应减少,若该软实时任务运行完毕时该执行预算有剩余,则根据该延缓服务器的优先级判定是否运行下一个该软实时任务;若该执行预算已用完但该软实时任务没有运行完毕,则重新根据其所维护的协议处理实体中软实时任务所处理的数据量,补充该执行预算和该周期,并将该延缓服务器插入该软实时队列;若该软实时任务运行完毕时该执行预算已用完,则返回该步骤2。
[0074] 为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
[0075] 本发明提出的调度方案中,将基站处理系统中的任务类型分为3类,硬实时任务、软实时任务、非实时任务,其中非实时任务包括一般非实时任务和基站实体管控任务,一般非实时任务没有性能要求,这里不做考虑,考虑到迁移任务的性能要求更高,将基站实体管控任务分为基站实体生命周期管理任务和迁移任务,调度方案设计的原则是:满足硬实时任务的截止期限的前提下,提高软实时任务的平均响应时间,并且尽量降低非实时任务与实时任务之间的相互影响。以下是具体的实施方式。
[0076] 本发明提出的调度方案中,维护3个运行队列,硬实时任务队列hrt_rq,软实时任务队列srt_rq,非实时任务运行队列nrt_rq,运行队列共享CPU资源,调度原则:(1)优先为硬实时任务分配CPU资源,若硬实时任务为非空时,触发硬实时调度器,抢占资源;(2)当系统中有空闲CPU资源、或更高优先级的软实时任务到来时,抢占空闲资源和低优先级的软实时任务;(3)检测非实时任务类型,不同的非实时任务类型,采取不同的资源分配措施。
[0077] 任务标识:本发明在分层调度的思想基础上设计调度算法,将非实时任务和实时任务采用局部分区调度,在进程控制块(task_struct)数据结构中添加识别不同类型任务的标识符,添加识别硬实时任务的标识符hrt_iden,0代表非硬实时任务,1代表硬实时任务;添加识别软实时任务的标识符srt_iden,若为0则表示为非软实时任务,若为1则表示为软实时任务;在task_struck数据结构中添加识别非实时任务中迁移任务的标识符mig_iden,0代表非迁移任务,1代表迁移任务;添加识别基站实体生命周期管理任务的标识符vbs_iden,0代表非基站实体生命周期管理任务,1为基站实体生命周期管理任务。
[0078] 针对迁移任务,在非实时任务属性数据结构中加入停机阶段stop_period参数,默认为0,当置为1时,做特殊处理。
[0079] 实时任务优先级(以协议处理系统为例进行说明):实时任务的优先级根据不同的任务采用不同的判断标准。硬实时任务即调度任务,根据协议栈软件采用调度算法的时间复杂度来判断其优先级,工程实现中协议栈软件主要采用的调度算法有3类:比例公平、轮询和最大载干比,本发明以比例公平算法为例来进行调度任务的优先级计算(其他算法分析方法相同),比例公平算法的时间复杂度为O(KNlog2N),其中K为接入的UE数,N为无线子载波数。协议栈软件统计当前1ms的周期内接入的UE数和无线资源情况,得到的时间复杂度作为调度任务优先级的判断依据。
[0080] 软实时任务即上行任务和下行任务的优先级主要与处理的数据量的大小有关系,每个1ms周期内需要处理的数据量不同,那么其上下行任务的运行时间也会不同,因此以需处理的数据量的大小来作为其优先级的判断依据。
[0081] 需要从协议栈软件中,获取各个任务在其1ms的周期内影响其任务运行时间的因素,将判断优先级的参数加入相应的任务调度属性描述数据结构中。
[0082] 调度器设计:为硬实时任务设计负载感知的全局EDF调度方案,根据负载情况调整硬实时任务的优先级,并可总是优先得到CPU资源;为软实时任务设计优先级动态变化的延缓服务器调度方案,考虑到每个协议处理实体接入的用户数和业务数的不同,为了避免优先级低的任务总是得不到处理器资源,为每个协议处理实体的软实时任务都维护一个延缓服务器,协议处理实体内部的软实时任务根据优先级占用各自的处理器带宽,并且在每个延缓服务器到来时,根据当前服务的协议处理实体的处理的业务量情况为其分配合适的执行预算C,调整优先级。一般非实时任务采用Linux系统的完全公平调度器(CFS),需要对基站管控任务进行特殊处理,基站管控任务与软实时任务进行分区调度,避免频繁抢占造成大量开销,迁移任务停机阶段禁止一切抢占。
[0083] 具体的调度过程如下所示:
[0084] 步骤s1:基站任务创建时,初始化task_struck,获取任务的标识符信息,识别任务类型,若任务为就绪状态,则将其加入相应的运行队列中,根据各类运行队列状态、CPU资源状态进行任务调度。
[0085] a)若有硬实时任务到来时,根据其传入的用户终端UE和无线资源相关的参数,计算时间复杂度,时间复杂度越高,优先级越高,遍历硬实时任务队列hrt_rq,将其插入合适的位置;
[0086] b)将为每个基站处理实体维护的延缓服务器加入到srt_rq中,每个基站处理实体中的软实时任务,根据其任务优先级进行任务调度;引入延缓服务器是考虑到每个协议处理实体接入的用户数、数据量等都是不同的,若以每个协议处理实体的软实时任务为单位进行调度,会导致接入用户数少、数据量小的协议处理实体的软实时任务一直得不到处理器资源,所以为每个协议处理实体维护了一个延缓服务器,延缓服务器算是逻辑的软实时任务,延缓服务器根据其所服务的协议处理实体接入用户的数据量的大小,分配执行预算C。保证每个协议处理实体无论处理数据量大小都能得到CPU时间。
[0087] 延缓服务器根据协议处理实体中软实时任务的优先级运行协议处理实体中的软实时任务。
[0088] c)若有非实时任务到来时,将其插入nrt_rq。
[0089] 步骤s2:各运行队列按照其各自的调度规则分配CPU资源。若触发硬实时调度器,则跳至步骤3,若触发软实时调度器,则跳至步骤4,若触发非实时调度器,则跳至步骤5。
[0090] 步骤s3:a)当hrt_rq为非空时,触发硬实时调度器。调度标志位need_sched置1,运行硬实时任务队列首个任务,申请CPU资源。
[0091] b)获取当前系统CPU的状态信息。
[0092] c)若有空闲CPU,则抢占空闲CPU,若无空闲CPU,判断运行非实时任务的CPU资源是否可以抢占,即判断非实时任务属性中stop_period是否为0,若可以抢占,则抢占非实时任务,否则,抢占运行软实时任务的CPU资源,若当前系统中,无可抢占资源,则按照优先级顺序排队等待。其中需要注意的是协议处理实体在迁移过程中分为预拷贝阶段和停机拷贝阶段,预拷贝阶段为在线迁移的阶段,停机拷贝会直接关闭协议处理实体将剩余的内存、状态等进行迁移。当迁移任务进行到停机阶段时,将其任务属性参数stop_period置0,调度算法检测stop_period参数的状态。
[0093] d)硬实时任务运行完毕,释放资源,撤销该硬实时任务,若hrt_rq为非空,返回步骤3a)。当hrt_rq为空时,srt_rq非空时,跳至步骤4.
[0094] 步骤s4:a)初始化延缓服务器,根据当前各个协议处理实体内处理业务量的情况,为每个协议处理实体的延缓服务器分配合适的周期T和执行预算C,若有软实时任务处理,则根据EDF算法确定延缓服务器的优先级,加入运行队列,运行其所服务的协议处理实体的软实时任务。否则挂起,等待任务到来。获取当前CPU状态信息,若当前有空闲CPU资源,或者更高优先级的软实时任务到来时,触发软实时调度器,若没有空闲资源,则按优先级排队等待。若有空闲资源或更高优先级的软实时任务到来时,则触发软实时调度器。
[0095] b)任务执行的过程中,服务器的C相应减少。
[0096] c)若任务执行完毕,服务器的还有剩余的C,则根据延缓服务器的优先级判定是否执行下一个等待任务;若服务器的执行预算已用完,但是任务还没有执行完成,重新根据其所维护的协议处理实体软实时任务所处理的数据量,补充其C和T,重新计算优先级,插入到软任务队列中;若服务器的C已用完,任务也执行完毕,等待该延缓服务器下一个周期的到来,根据周期到来时,所服务协议处理实体的数据处理情况以及当前协议处理实体内的软实时任务排队情况,合理分配C,计算优先级,插入软实时运行队列。分配C的原则:n为延缓服务器(相当于协议处理实体)的个数,以当前各个协议处理实
体中所需处理的数据量为分配C的主要依据,数据量越大,C越大,若数据量基本相同,则以协议处理实体内排队的任务数为依据,任务数越多,C越大。
[0097] d)任务执行完成,释放CPU资源,若hrt_rq仍为非空跳至步骤3。若hrt_rq为空,srt_rq不为空但有空闲资源,触发非实时任务调度器。跳至步骤5。
[0098] 步骤s5:a)若非实时任务为协议处理基站实体生命周期管理任务,则根据资源请求情况,为其分配CPU资源,设置隔离参数ioslcpus,禁止软实时任务抢占资源;若非实时任务为迁移任务,调度方案同基站实体生命周期管理任务,但是在迁移任务的停机阶段要做特殊处理。当迁移任务运行到停机时间的阶段时,将task_struck中的允许抢占prempt_enable置0,当检测到该信号时,将当前迁移任务绑定到该分配的CPU上,禁止抢占。
[0099] b):非实时任务完成后,释放CPU资源,根据情况将CPU资源分配给实时任务。
[0100] 本发明对设计的调度算法进行了仿真验证,如图4所示,本发明设计的调度方案与WRR和EDF调度算法相比较,相较于这两种方案有明显的优势,首先,采用本发明调度方案硬实时任务的截止期限得到了满足,而其他两种方案,硬实时任务都由不同程度的截止其错失;其次,软实时任务的截止期限错失情况相较于其他两种方案也有所降低,降低了20%-30%左右。
[0101] 以下为与上述方法实施例对应的系统实施例,本实施系统可与上述实施方式互相配合实施。上述施方式中提到的相关技术细节在本实施系统中依然有效,为了减少重复,这里不再赘述。相应地,本实施系统中提到的相关技术细节也可应用在上述实施方式中。
[0102] 本发明还公开了一种面向基站任务的调度系统,其中包括:
[0103] 基站任务集合模块,用于将系统内各协议处理实体的基站任务集合为任务集,其中该系统为基带处理系统或协议处理系统;
[0104] 任务识别模块,用于通过识别各基站任务的标识符,判断该任务集中是否包含硬实时任务,若是,则调用硬实时任务运行模块,否则判断该任务集中是否包含软实时任务,若是,则调用软实时任务运行模块,否则调用基站实体管控任务运行模块;
[0105] 硬实时任务运行模块,用于根据当前该系统的CPU状态信息,运行该硬实时任务,该硬实时任务运行完毕后返回该任务识别模块;
[0106] 软实时任务运行模块,用于根据当前各协议处理实体内处理业务量的情况,为各协议处理实体的延缓服务器分配周期和执行预算,并结合当前该系统的CPU状态信息,运行该软实时任务,该软实时任务运行完毕后返回该任务识别模块;
[0107] 基站实体管控任务运行模块,用于判断该任务集中是否包含基站实体管控任务,若是,则根据该基站实体管控任务的资源请求情况,为其分配CPU资源,运行该基站实体管控任务,并设置隔离参数,禁止软实时任务抢占,否则执行判断模块;
[0108] 判断模块,用于判断该任务集是否为空,若是,则结束任务调度,否则返回该任务识别模块;
[0109] 其中该基站实体管控任务运行模块还包括,在运行该基站实体管控任务前判断该基站实体管控任务是否为迁移任务,若是则在该迁移任务运行到停机阶段时,将当前该迁移任务绑定到该分配CPU资源上,并禁止一切抢占直到迁移任务停机阶段结束。
[0110] 该面向基站任务的调度系统,其中该任务识别模块还包括:
[0111] 根据该硬实时任务传入的用户终端和无线资源,计算该硬实时任务的时间复杂度,并根据该时间复杂度为该硬实时任务分配优先级,根据优先级将该硬实时任务插入硬实时队列;
[0112] 根据协议处理实体中软实时任务处理的数据量,为该协议处理实体的延缓服务器分配周期和执行预算,并计算优先级将该延缓服务器插入软实时队列。
[0113] 该面向基站任务的调度系统,其中该硬实时任务运行模块还包括:
[0114] 根据该CPU状态信息判断是否有空闲CPU资源,若有,则抢占空闲CPU资源,运行该硬实时队列中首个硬实时任务,否则根据该隔离参数判断能否抢占该基站实体管控任务的CPU资源,若能,则抢占其CPU资源,运行该硬实时队列中首个硬实时任务,否则抢占该软实时任务的CPU资源,运行该硬实时队列中首个硬实时任务,若该系统中,无可抢占CPU资源,则按照优先级顺序排队等待。
[0115] 该面向基站任务的调度系统,其中该软实时任务运行模块还包括:
[0116] 运行过程中该执行预算相应减少,若该软实时任务运行完毕时该执行预算有剩余,则根据该延缓服务器的优先级判定是否运行下一个该软实时任务;若该执行预算已用完但该软实时任务没有运行完毕,则重新根据其所维护的协议处理实体中软实时任务所处理的数据量,补充该执行预算和该周期,并将该延缓服务器插入该软实时队列;若该软实时任务运行完毕时该执行预算已用完,则返回该任务识别模块。
[0117] 虽然本发明以上述实施例公开,但具体实施例仅用以解释本发明,并不用于限定本发明,任何本技术领域技术人员,在不脱离本发明的构思和范围内,可作一些的变更和完善,故本发明的权利保护范围以权利要求书为准。