计算机系统资源分配方法和装置与流程

文档序号:12120165阅读:697来源:国知局
计算机系统资源分配方法和装置与流程

本申请涉及系统资源分配方法和装置。具体涉及计算机系统资源分配方法和装置。



背景技术:

对于拥有众多资源使用者的系统,系统的资源使用者经常需要向系统申请系统所管理的资源,系统收到资源使用者申请资源的请求后,会为不同的资源使用者分配相应数量的资源供资源使用者使用。由于系统资源总量是固定的,所以每个资源使用者可用的资源一定是有限的。各个资源使用者权重的不同,在某一时刻,有的资源使用者的申请资源量较大,有的资源使用者资源申请资源量较小,现有的资源分配算法将申请资源量较小的资源使用者的可用资源配额匀给申请资源量较大的资源使用者。具体地,现有的资源配额计算多为以下的方案:

1、以各个资源使用者最大资源配额(MaxQuota)的比例来分配系统资源总量、得到资源使用者静态平衡配额资源(ScaleQuota)。

2、当资源使用者申请资源量(Request)的总和小于系统资源总量时,则每个资源使用者得到的资源配额即是资源使用者申请资源量(Request),结束分配过程。

3、将资源使用者分为两类,B类:资源使用者申请资源量(Request)小于资源使用者静态平衡配额资源(ScaleQuota);C类:资源使用者申请资源量(Request)大于资源使用者静态平衡配额资源(ScaleQuota)。

4、对于B类资源使用者,静态平衡配额资源(ScaleQuota)与资源使用者申请资源量(Request)的差可以分配给C类资源使用者用;将这些差累计求和,记为系统中可以再分配的资源总量,记为

5、将按照资源使用者最大资源配额(MaxQuota)的比例分配给C类资源使用者,则C类资源使用者新的可用资源配额=静态平衡资源配额(ScaleQuota)+新得到的资源配额,记为Ω。

6、如果C类资源使用者的Ω大于资源使用者申请资源量(Request),则Ω与资源使用者申请资源量(Request)的差还可以分配给C类资源使用者中Ω仍小于 资源使用者申请资源量(Request)的资源使用者,算法跳转回步骤3进行迭代,直到可再分配资源总量

可见,现有资源配额的计算方法在最坏情况和平均情况下的时间复杂度O为资源使用者数量n的平方(n2),并且,当只想知道某个资源使用者的资源分配额时,必须将所有资源使用者的资源分配额全部计算出来,对于拥有众多资源使用者的大系统来说,现有计算机系统资源分配方法无法满足实时计算的要求。同时现有的计算机系统资源分配方法不能支持资源使用者配置最小资源配额量的情况。

申请内容

本申请提供两种计算机系统资源分配方法,以解决现有资源分配方法时间复杂度高,无法满足实时计算的要求的问题。此外,本申请还提供两种计算机系统资源分配装置。

本申请提供的一种计算机系统资源分配方法,包括以下步骤:

获取系统资源总量和有权提出资源申请请求的资源使用者的资源分配相关数据,所述资源使用者的资源分配相关数据包括资源使用者的最大资源配额量和申请资源量;

利用所述资源使用者的申请资源量除以最大资源配额量,计算得出资源使用者的资源饱和度;

以所述资源使用者的资源饱和度为依据,对所述资源使用者进行排序;

根据资源使用者排序,以设定条件确定一个边界资源使用者,将资源饱和度小于或等于所述边界资源使用者的资源使用者,称为B类资源使用者;将资源饱和度大于该边界资源使用者的资源使用者称为C类资源使用者;

对B类资源使用者,以其申请资源量作为其资源配额向其分配资源;对于C类资源使用者,将系统资源总量减去按照所述为B类资源使用者分配的所有资源量后,获得剩余资源量;将所述剩余资源量,按照该C类资源使用者的最大资源配额量占所有C类资源使用者的最大资源配额量的总和的比例,作为其资源配额,以所述的资源配额向该C类资源使用者分配资源。

可选地,所述设定条件为所述边界资源使用者满足不等式一和不等式二,

不等式一:

不等式二:

其中ToatalResource:系统资源总量;Requesti:资源饱和度小于或等于边界资源使用者的资源饱和度的,除边界资源使用者以外的其他B类资源使用者中第i个B类资源使用者的申请资源量;MaxQuotaj:资源饱和度大于边界资源使用者的资源饱和度的第j个C类资源使用者的最大资源配额量;Requesth:边界资源使用者的申请资源量;MaxQuotah:边界资源使用者的最大资源配额量;Requesth+1:所述排序资源使用者中,资源饱和度小于任一其他C类资源使用者的资源饱和度,但大于边界资源使用者的资源饱和度的C类资源使用者的申请资源量;MaxQuotah+1:所述排序的资源使用者中,资源饱和度小于任一其他C类资源使用者的资源饱和度,但大于边界资源使用者的资源饱和度的C类资源使用者的最大资源配额量;m:系统内资源饱和度小于或等于边界资源使用者的资源饱和度的,除边界资源使用者以外的其他B类资源使用者的数量;n:系统内资源饱和度大于边界资源使用者的资源饱和度的C类资源使用者的数量;∑:求和运算。

可选地,所述根据资源使用者排序,以设定条件确定一个边界资源使用者的方法包括:

将所述排序的资源使用者中的一个资源使用者作为临时边界资源使用者;

将临时边界资源使用者作为边界资源使用者代入所述不等式一和不等式二,若两个不等式都成立,则该临时资源使用者为边界资源使用者;若两个不等式不能都成立,则将所述排序的资源使用者中的另外一个资源使用者作为临时边界资源使用者,返回执行“将临时边界资源使用者的数据作为边界资源使用者的数据代入不等式一和不等式二”的步骤。

可选地,所述将所述排序的资源使用者中的另外一个资源使用者作为临时边界资源使用者的方法包括:

若不等式一不成立,则在所述排序的资源使用者中选择一个资源饱和度小于临时边界资源使用者的资源饱和度的资源使用者,将该资源使用者作为临时边界资源使用者;

若不等式二不成立,则在所述排序的资源使用者中选择一个资源饱和度大于临时边界资源使用者的资源饱和度的资源使用者,将该资源使用者作为临时边界资源使用者。

可选地,

所述以所述资源使用者的资源饱和度为依据,对所述资源使用者进行排序的方法包括:以资源使用者资源分配相关数据,形成一个树节点,按照资源饱和度的大小插入排序二叉树中或更新排序二叉树中存储该资源使用者的数据节点,并通过调整所述排序二叉树的节点之间位置和相互关系,保持所述二叉树仍为排序二叉树;所述资源使用者资源分配相关数据包括资源使用者的资源饱和度,申请资源量和最大资源配额量;

相应地,所述将所述排序的资源使用者中的一个资源使用者作为临时边界资源使用者的方法包括:将所述排序的二叉树的根节点所存储的资源使用者作为临时边界资源使用者;

相应地,所述则在所述排序的资源使用者中选择一个资源饱和度小于临时边界资源使用者的资源饱和度的资源使用者的方法如下:在所述排序二叉树中选择资源饱和度小于或等于临时边界资源使用者的资源饱和度一侧的直接子节点所对应的资源使用者;

相应地,所述在所述排序的资源使用者中选择一个资源饱和度大于临时边界资源使用者的资源饱和度的资源使用者的方法如下:在所述排序二叉树中选择资源饱和度大于临时边界资源使用者的资源饱和度一侧的直接子节点所对应的资源使用者。

可选地,所述资源使用者资源分配相关数据还包括:资源饱和度小于或等于该资源使用者的资源饱和度的资源使用者的申请资源量之和和资源饱和度大于该资源使用者的资源饱和度的资源使用者的最大资源配额量之和。

可选地,

所述以所述资源使用者的资源饱和度为依据,对所述资源使用者进行排序的方法包括:以资源使用者资源分配相关数据,形成一个树节点,按照资源饱 和度的大小插入排序二叉树中或更新排序二叉树中存储该资源使用者的数据节点,并通过调整所述排序二叉树的节点之间位置和相互关系,保持所述二叉树仍为排序二叉树;所述资源使用者资源分配相关数据包括资源使用者的资源饱和度,申请资源量和最大资源配额量。

可选地,

所述资源使用者资源分配相关数据还包括:资源饱和度小于或等于该资源使用者的资源饱和度的资源使用者的申请资源量之和和资源饱和度大于该资源使用者的资源饱和度的资源使用者的最大资源配额量之和。

本申请提供的一种计算机系统资源分配方法,包括以下步骤:

获取系统资源总量和有权提出资源申请请求的资源使用者的资源分配相关数据,所述资源使用者的资源分配相关数据包括资源使用者的最小资源配额量,最大资源配额量和申请资源量;

利用所述资源使用者的申请资源量减掉最小资源配额量的差除以最大资源配额量,计算得出该资源使用者的资源饱和度;

以所述资源使用者的资源饱和度为依据,对申请资源量大于其最小资源配额量的资源使用者进行排序;

将申请资源量小于或等于其最小资源配额量的资源使用者,称为A类资源使用者;根据资源使用者排序,以设定条件确定一个边界资源使用者,对于资源饱和度小于或等于所述边界资源使用者的资源饱和度的资源使用者,称为B类资源使用者;将资源饱和度大于该边界资源使用者的资源饱和度的资源使用者称为C类资源使用者;

对A类资源使用者和B类资源使用者,以其申请资源量作为其资源配额向其分配资源;对于C类资源使用者,将系统资源总量减去所述按照为A类资源使用者和B类资源使用者分配的所有资源量后,再减去所有C类资源使用者的最小资源配额量的总和后,获得剩余资源量;将所述剩余资源量,按照该C类资源使用者的最大资源配额量占所有C类资源使用者的最大资源配额量的总和的比例,作为其超出最小资源配额量的资源分配量,以所述其超出最小资源配额量的资源分配量加上该C类资源使用者的最小资源配额量的和作为该C类资源使用者的资源配额向其分配资源。

可选地,所述设定的条件为所述边界资源使用者的数据满足下述不等式三和不等式四,

不等式三:

不等式四:

其中

ToatalResource:系统资源总量;Requestk:申请资源量小于或等于其最小资源配额量的第k个资源使用者的申请资源量;MinQuotai:资源饱和度小于或等于边界资源使用者的资源饱和度,且申请资源量大于其最小资源配额量的,除边界资源使用者以外的其他B类资源使用者中第i个B类资源使用者的最小资源配额量;Requesti:资源饱和度小于或等于边界资源使用者的资源饱和度,且申请资源量大于其最小资源配额量的,除边界资源使用者以外的其他B类资源使用者中第i个B类资源使用者的申请资源量;MaxQuotaj:资源饱和度大于边界资源使用者的资源饱和度,且申请资源量大于其最小资源配额量的第j个C类资源使用者的最大资源配额量;MinQuotaj:资源饱和度大于边界资源使用者的资源饱和度,且申请资源量大于其最小资源配额量的第j个C类资源使用者的最小资源配额量;Requesth:边界资源使用者的申请资源量;MaxQuotah:边界资源使用者的最大资源配额量;MinQuatah:边界资源使用者的最小资源配额量;Requesth+1:所述排序的资源使用者中,资源饱和度小于任一其他资源饱和度大于边界资源使用者的资源饱和度的资源使用者的资源饱和度,但大于边界资源使用者的资源饱和度的C类资源使用者的申请资源量;MaxQuotah+1:所述排序的资源使用者中,资源饱和度小于任一其他资源饱和度大于边界资源使用 者的资源饱和度的资源使用者的资源饱和度,但大于边界资源使用者的资源饱和度的C类资源使用者的最大资源配额量;MinQuotah+1:所述排序的资源使用者中,资源饱和度小于任一其他资源饱和度大于边界资源使用者的资源饱和度的资源使用者的资源饱和度,但大于边界资源使用者的资源饱和度的C类资源使用者的最小资源配额量;s:系统内申请资源量小于或等于其最小资源配额量的A类资源使用者的数量;m:系统内资源饱和度小于或等于边界资源使用者的资源饱和度,且申请资源量大于其最小资源配额量的,除边界资源使用者以外的其他B类资源使用者的数量;n:系统内资源饱和度大于边界资源使用者的资源饱和度的C类资源使用者的数量;∑:求和运算。

可选地,所述根据资源使用者排序,以设定条件确定一个边界资源使用者的方法包括:

将所述排序的资源使用者中的一个资源使用者作为临时边界资源使用者;

将临时边界资源使用者作为边界资源使用者代入所述不等式三和不等式四,若两个不等式都成立,则该临时资源使用者为边界资源使用者;若两个不等式不能都成立,则将所述排序的资源使用者中的另外一个资源使用者作为临时边界资源使用者,返回执行“将临时边界资源使用者作为边界资源使用者代入不等式三和不等式四”的步骤。

可选地,所述将所述排序的资源使用者中的另外一个资源使用者作为临时边界资源使用者的方法包括:

若不等式三不成立,则在所述排序的资源使用者中选择一个资源饱和度小于临时边界资源使用者的资源饱和度的资源使用者,将该资源使用者的数据作为临时边界资源使用者的数据;

若不等式四不成立,则在所述排序的资源使用者中选择一个资源饱和度大于临时边界资源使用者的资源饱和度的资源使用者,将该资源使用者的数据作为临时边界资源使用者的数据。

可选地,

所述以所述资源使用者的资源饱和度为依据,对申请资源量大于其最小资源配额量的资源使用者进行排序的方法包括:以资源使用者资源分配相关数据

成一个树节点按照资源饱和度的大小插入排序二叉树中或更新排序二叉树中存储该资源使用者的数据节点,并通过调整所述排序二叉树的节点之间位置 和相互关系,保持所述二叉树仍为排序二叉树;所述资源使用者资源分配相关数据包括资源使用者的资源饱和度,申请资源量,最小资源配额量和最大资源配额量;

相应地,所述将所述排序的资源使用者中的一个资源使用者作为临时边界资源使用者的方法包括:将所述排序的二叉树的根节点所存储的资源使用者作为临时边界资源使用者;

相应地,所述在所述排序的资源使用者中选择一个资源饱和度小于临时边界资源使用者的资源饱和度的资源使用者的方法如下:在所述排序二叉树中选择资源饱和度小于或等于临时边界资源使用者的资源饱和度一侧的直接子节点所对应的资源使用者;

相应地,所述在所述排序的资源使用者中选择一个资源饱和度大于临时边界资源使用者的资源饱和度的资源使用者的方法如下:在所述排序二叉树中选择资源饱和度大于临时边界资源使用者的资源饱和度一侧的直接子节点所对应的资源使用者。

可选地,所述资源使用者资源分配相关数据还包括:资源饱和度小于或等于该资源使用者的资源饱和度的资源使用者的申请资源量之和,资源饱和度小于或等于该资源使用者的资源饱和度的资源使用者的最小资源配额量之和,资源饱和度大于该资源使用者的资源饱和度的资源使用者的最大资源配额量之和,资源饱和度大于该节点所对应的资源使用者的资源饱和度的资源使用者的最小资源配额量之和,和申请资源量小于其最小配额量的资源使用者的申请资源量之和。

可选地,

所述以所述资源使用者的资源饱和度为依据,对申请资源量大于其最小资源配额量的资源使用者进行排序的方法包括:以资源使用者资源分配相关数据,形成一个树节点按照资源饱和度的大小插入排序二叉树中或更新排序二叉树中存储该资源使用者的数据节点,并通过调整所述排序二叉树的节点之间位置和相互关系,保持所述二叉树仍为排序二叉树;所述资源使用者资源分配相关数据包括:资源使用者的资源饱和度,申请资源量,最小资源配额量和最大资源配额量。

可选地,所述资源使用者资源分配相关数据还包括:

资源饱和度小于或等于该资源使用者的资源饱和度的资源使用者的申请资源量之和,资源饱和度小于或等于该资源使用者的资源饱和度的资源使用者的最小资源配额量之和,资源饱和度大于该资源使用者的资源饱和度的资源使用者的最大资源配额量之和,资源饱和度大于该节点所对应的资源使用者的资源饱和度的资源使用者的最小资源配额量之和,和申请资源量小于其最小配额量的资源使用者的申请资源量之和。

本申请提供的一种计算机系统资源分配装置,包括:

获取单元,用于获取系统资源总量和有权提出资源申请请求的资源使用者的资源分配相关数据,所述资源使用者的资源分配相关数据包括资源使用者的最大资源配额量和申请资源量;

资源饱和度计算单元,用于利用所述资源使用者的申请资源量除以最大资源配额量,计算得出资源使用者的资源饱和度;

排序单元,用于以所述资源使用者的资源饱和度为依据,对所述资源使用者进行排序;

分类单元,用于根据资源使用者排序,以设定条件确定一个边界资源使用者,将资源饱和度小于等于所述边界资源使用者的资源使用者,称为B类资源使用者;将资源饱和度大于该边界资源使用者的资源使用者称为C类资源使用者;

资源分配单元,用于,对B类资源使用者,以其申请资源量作为其资源配额向其分配资源;对于C类资源使用者,将系统资源总量减去所述按照为B类资源使用者分配的所有资源量后,获得剩余资源量;将所述剩余资源量,按照该C类资源使用者的最大资源配额量占所有C类资源使用者的最大资源配额量的总和的比例,作为其资源配额,以所述的资源配额向该C类资源使用者分配资源。

本申请提供的一种计算机系统资源分配装置,包括:

获取单元,用于获取系统资源总量和有权提出资源申请请求的资源使用者的资源分配相关数据,所述资源使用者的资源分配相关数据包括资源使用者的最小资源配额量,最大资源配额量和申请资源量;

资源饱和度计算单元,用于利用所述资源使用者的申请资源量减掉最小资 源配额量的差除以最大资源配额量,计算得出该资源使用者的资源饱和度;

排序单元,用于以所述资源使用者的资源饱和度为依据,对申请资源量大于其最小资源配额量的资源使用者进行排序;

分类单元,用于将申请资源量小于或等于其最小资源配额量的资源使用者,称为A类资源使用者;根据资源使用者排序,以设定条件确定一个边界资源使用者,对于资源饱和度小于或等于所述边界资源使用者的资源饱和度的资源使用者,称为B类资源使用者;将资源饱和度大于该边界资源使用者的资源饱和度的资源使用者称为C类资源使用者;

资源分配单元,用于对A类资源使用者和B类资源使用者,以其申请资源量作为其资源配额向其分配资源;对于C类资源使用者,将系统资源总量减去所述按照为A类资源使用者和B类资源使用者分配的所有资源量后,再减去所有C类资源使用者的最小资源配额量的总和后,获得剩余资源量;将所述剩余资源量,按照该C类资源使用者的最大资源配额量占所有C类资源使用者的最大资源配额量的总和的比例,作为其超出最小资源配额量的资源分配量,以所述其超出最小资源配额量的资源分配量加上该C类资源使用者的最小资源配额量的和作为该C类资源使用者的资源配额向其分配资源。

与现有技术相比,本申请具有以下优点:

本申请的技术方案引入资源饱和度概念,根据资源使用者的资源饱和度将资源使用者排序,在排序的资源使用者中查找边界资源使用者,利用资源使用者的资源饱和度与边界资源使用者的资源饱和度的比较结果,快速计算出资源使用者的资源配额,将计算资源使用者的资源配额的时间复杂度从O(n2)降低到O(log n)的级别(所述n为使用者数量)。起到降低计算资源使用者的资源配额的时间复杂度,满足实时计算的要求的作用,同时仅需计算申请资源的资源使用者的资源配额而无需计算所有资源使用者的资源配额,进一步加快对资源使用者的资源分配的效果。

另外本申请的另一技术方案除了具备上述方案的技术特征外,针对资源使用者配置了最小资源配额量的情况,不仅能够达到上述降低计算资源使用者的资源配额的时间复杂度,满足实时计算的要求和无需计算所有资源使用者的资源配额的效果,还能够起到满足资源使用者的最小资源配额量配置的作用。

附图说明

图1是本申请第一实施例一种计算机系统资源分配方法的实施例的流程示意图;

图2是本申请第二实施例一种计算机系统资源分配装置的实施例的结构框图;

图3是本申请第三实施例一种计算机系统资源分配方法的实施例的流程示意图;

图4是本申请第四实施例一种计算机系统资源分配装置的实施例的结构框图;

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

本申请的第一实施例提供一种计算机系统资源分配方法,流程示意图如图1所示,包括以下步骤:

步骤S101,获取系统资源总量和有权提出资源申请请求的资源使用者的资源分配相关数据,所述资源使用者的资源分配相关数据包括资源使用者的最大资源配额量和申请资源量。

收到资源使用者申请系统资源的请求后,获取系统资源总量和该资源使用者的与资源分配相关的数据,包括资源使用者的最大资源配额量和其所申请的资源量数据。

步骤S102,利用所述资源使用者的申请资源量除以最大资源配额量,计算得出资源使用者的资源饱和度。

将资源使用者的申请资源量除以其最大资源配额量的值作为其资源饱和度的值。

步骤S103,以所述资源使用者的资源饱和度为依据,对所述资源使用者进 行排序。

根据资源使用者的资源饱和度大小,进行排序。对资源使用者进行排序的方法可以有多种,本实施例中当收到新的申请资源的请求时,该资源使用者若为第一次申请资源,则系统还没有为该资源使用者进行过排序,相应的排序的数据存储结构中不包含该资源使用者的任何数据,这时将该资源使用者的数据包括最大资源配额量,申请资源量,资源饱和度作为一个数据节点,插入按照资源使用者的资源饱和度排序的排序二叉树。

所述二叉树中每个节点与其直接相连的上一级节点称为该节点的父节点,与其直接相连的下一级节点称为该节点的直接子节点。该二叉树中的任一节点的一侧直接子节点所存储的资源使用者的资源饱和度小于该节点所存储的资源使用者的资源饱和度,该节点的另外一侧的直接子节点所存储的资源使用者的资源饱和度大于该节点所存储的资源使用者的资源饱和度。

将申请资源的资源使用者的数据插入二叉树时,通过旋转节点的位置和相互关系,能够使得插入节点后的二叉树仍然是按照资源饱和度排序的二叉树。

当收到新的申请资源的请求时,若该资源使用者不是第一次申请资源,则所述二叉树中已经保存有该资源使用者的数据,这时,仅需更新相应树节点的相关数据,具体为申请资源量和资源饱和度。同时将二叉树的节点做旋转等调整位置和相互关系,使其仍然保持为按照资源饱和度排序的二叉树。

步骤S104,根据资源使用者排序,以设定条件确定一个边界资源使用者,将资源饱和度小于等于所述边界资源使用者的资源使用者,称为B类资源使用者;将资源饱和度大于该边界资源使用者的资源使用者称为C类资源使用者。

本实施例中,在排序的资源使用者中,找出其数据满足下述两个不等式的资源使用者,将其称为边界资源使用者。

不等式一:

不等式二:

其中ToatalResource:系统资源总量;Requesti:资源饱和度小于或等于边界资源使用者的资源饱和度的,除边界资源使用者以外的其他B类资源使用者中第i个B类资源使用者的申请资源量;MaxQuotaj:资源饱和度大于边界资源使用者的资源饱和度的第j个C类资源使用者的最大资源配额量;Requesth:边界资源使用者的申请资源量;MaxQuotah:边界资源使用者的最大资源配额量;Requesth+1:所述排序资源使用者中,资源饱和度小于任一其他C类资源使用者的资源饱和度,但大于边界资源使用者的资源饱和度的C类资源使用者的申请资源量;MaxQuotah+1:所述排序的资源使用者中,资源饱和度小于任一其他C类资源使用者的资源饱和度,但大于边界资源使用者的资源饱和度的C类资源使用者的最大资源配额量;m:系统内资源饱和度小于或等于边界资源使用者的资源饱和度的,除边界资源使用者以外的其他B类资源使用者的数量;n:系统内资源饱和度大于边界资源使用者的资源饱和度的C类资源使用者的数量;∑:求和运算。

在排序的资源使用者中,将资源饱和度小于或等于该边界使用者的资源饱和度的资源使用者称为B类资源使用者;将资源饱和度大于该边界使用者的资源饱和度的资源使用者成为C类资源使用者。

查找所述边界使用者的方法根据资源使用者的数据存储的方式不同可以有不同的方法。本实施例中,针对将资源使用者的数据存储于按照资源饱和度排序的二叉树的方式,首先将所述二叉树的根节点所存储的资源使用者作为临时边界资源使用者,将该临时边界资源使用者的数据作为边界资源使用者的数据,将小于或等于该临时边界资源使用者所在的节点的资源饱和度的一侧的节点的数据作为资源饱和度小于或等于边界资源使用者的资源饱和度的资源使用者的数据;将其另外一侧节点的数据作为资源饱和度大于边界资源使用者的资源饱和度的资源使用者的数据;将另外一侧直接子节点的数据作为资源饱和度仅大于边界资源使用者的资源饱和度的资源使用者的数据。

利用不等式一和不等式二来判断查找所述临时边界资源使用者是否为边界资源使用者。

若将临时边界资源使用者作为边界资源使用者使得不等式一不成立,则将该临时边界使用者所在的节点的资源饱和度小于或等于其资源饱和度的一侧直接子节点所存储的资源使用者作为临时边界资源使用者。将排序二叉树中新的临时边界资源使用者的数据再次代入不等式一,依此类推,直至某一节点存储 的资源使用者的数据作为临时边界资源使用者的数据满足不等式一。再判断该临时边界资源使用者的数据是否满足不等式二。

若将临时边界资源使用者作为边界资源使用者使得不等式二不成立,则将该临时边界使用者所在的节点的资源饱和度大于其资源饱和度的一侧直接子节点所存储的资源使用者作为临时边界资源使用者。将排序二叉树中新的临时边界资源使用者的数据再次代入不等式二,依此类推,直至某一节点存储的资源使用者的数据作为临时边界资源使用者的数据满足不等式二。再判断该临时边界资源使用者的数据是否满足不等式一。

能够使得不等式一和不等式二都成立的临时边界资源使用者即为边界资源使用者。

将资源饱和度小于或等于所述边界资源使用者的资源饱和度的资源使用者称为B类资源使用者,将资源饱和度大于所述边界资源使用者的资源饱和度的资源使用者称为C类资源使用者。也即在排序的二叉树中边界资源使用者所在节点一侧的节点所存储的为B类资源使用者的数据,另外一侧节点存储的为C类资源使用者的数据。

根据申请资源的资源使用者的资源饱和度的值,将其归类为相应类的资源使用者。也即,若申请资源的资源使用者的资源饱和度小于或等于边界资源使用者的资源饱和度,则将该申请资源的资源使用者归为B类资源使用者;若申请资源的资源使用者的资源饱和度大于边界资源使用者的资源饱和度,则将该申请资源的资源使用者归为C类资源使用者。

步骤S105,对B类资源使用者,以其申请资源量作为其资源配额向其分配资源,对于C类资源使用者,将系统资源总量减去按照所述为B类资源使用者分配的所有资源量后,获得剩余资源量;将所述剩余资源量,按照该C类资源使用者的最大资源配额量占所有C类资源使用者的最大资源配额量的总和的比例,作为其资源配额,以所述的资源配额向该C类资源使用者分配资源。

当申请资源的资源使用者属于B类资源使用者时,为其分配其所申请的资源量。

当申请资源的资源使用者为C类资源使用者时,系统资源总量减去所有B类资源使用者的申请资源量的总和后的差为系统剩余资源量。将系统剩余资源量,按照该资源使用者的最大资源配额量占所有C类资源使用者的最大资源配 额量的总和的比例分配给该资源使用者作为其资源配额,向其分配资源。即按照如下公式为其分配资源量:

资源配额公式一:

其中Resourcex:资源饱和度大于边界资源使用者的资源饱和度的C类资源使用者x的资源配额;MaxQuotax:资源饱和度大于边界资源使用者的资源饱和度的C类资源使用者x的最大资源配额量;ToatalResource:系统资源总量;Requesth:边界资源使用者的申请资源量;Requesti:资源饱和度小于或等于边界资源使用者的资源饱和度的,除边界资源使用者以外的第i个B类资源使用者的申请资源量;MaxQuotaj:资源饱和度大于边界资源使用者的资源饱和度的第j个C类资源使用者的最大资源配额量;m:系统内资源饱和度小于或等于边界资源使用者的资源饱和度的,除边界资源使用者以外的其他B类资源使用者的数量;n:系统内资源饱和度大于边界资源使用者的资源饱和度的C类资源使用者的数量;∑:求和运算。

为简化计算,在步骤S103中插入或更新树节点时,可以将不等式一和不等式二中的求和项的值分别保存到被插入或更新的节点中,这样,所述排序二叉树的每个节点除保存有资源使用者的最大资源配额量,申请资源量和资源饱和度外,还保存有资源饱和度小于或等于该节点所对应的资源使用者的资源饱和度的资源使用者的申请资源量之和与资源饱和度大于该节点所对应的资源使用者的资源饱和度的资源使用者的最大资源配额量之和。这样,当利用上述不等式一和不等式二查找边界资源使用者和利用资源配额公式一计算资源使用者的资源配额时,能够起到节省时间的效果。

在上述的实施例中,提供了一种计算机系统资源分配方法,将计算资源使用者的资源配额的时间复杂度从O(n2)降低到O(log n)的级别(所述n为资源使用者数量)。起到降低计算资源使用者的资源配额的时间复杂度,满足实时计算的要求的作用,同时仅需计算申请资源的资源使用者的资源配额而无需计算所有资源使用者的资源配额,进一步加快对资源使用者的资源分配的效果。与之相对应的,本申请还提供一种计算机系统资源分配装置。请参看图2,其为 本申请的一种计算机系统资源分配装置的实施例的结构示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

请参考图2,该计算机系统资源分配装置包括获取单元U201,资源饱和度计算单元U202,排序单元U203,分类单元U204和资源分配单元U205。

所述获取单元U201,用于获取系统资源总量和有权提出资源申请请求的资源使用者的资源分配相关数据,所述资源使用者的资源分配相关数据包括资源使用者的最大资源配额量和申请资源量。

所述资源饱和度计算单元U202,用于利用所述资源使用者的申请资源量除以最大资源配额量,计算得出资源使用者的资源饱和度。

所述排序单元U203,用于以所述资源使用者的资源饱和度为依据,对所述资源使用者进行排序。

所述分类单元U204,用于根据资源使用者排序,以设定条件确定一个边界资源使用者,将资源饱和度小于等于所述边界资源使用者的资源使用者,称为B类资源使用者;将资源饱和度大于该边界资源使用者的资源使用者称为C类资源使用者。

所述资源分配单元U205,资源分配单元,用于,对B类资源使用者,以其申请资源量作为其资源配额向其分配资源。对于C类资源使用者,将系统资源总量减去所述按照为B类资源使用者分配的所有资源量后,获得剩余资源量。将所述剩余资源量,按照该C类资源使用者的最大资源配额量占所有C类资源使用者的最大资源配额量的总和的比例,作为其资源配额,以所述的资源配额向该C类资源使用者分配资源。

本申请第三实施例还提供一种计算机系统资源分配方法,其流程示意图如图3所示。包括以下步骤:

步骤S301,获取系统资源总量和有权提出资源申请请求的资源使用者的资源分配相关数据,所述资源使用者的资源分配相关数据包括资源使用者的最小资源配额量,最大资源配额量和申请资源量。

在收到资源使用者申请系统资源的请求后,获取系统资源总量和该资源使用者的与资源分配相关的数据,除包括申请资源量,最大资源配额量外,还包 括最小资源配额量。

步骤S302,利用所述资源使用者的申请资源量减掉最小资源配额量的差除以最大资源配额量,计算得出该资源使用者的资源饱和度;

将资源使用者的申请资源量减掉最小资源配额后的差值除以其最大资源配额量的值作为该资源使用者的资源饱和度值。对于申请资源量小于等于其最小资源配额量的资源使用者,其资源饱和度的值分别为负数或零,对于申请资源量大于其最小资源配额量的资源使用者,其资源饱和度的值大于零

步骤S303,以所述资源使用者的资源饱和度为依据,对申请资源量大于其最小资源配额量的资源使用者进行排序。

根据资源使用者的资源饱和度值的大小对申请资源量大于其最小资源配额量的资源使用者,也即资源饱和度的值大于零的资源使用者进行排序。

当收到资源使用者申请资源的请求时,若申请资源的资源使用者为第一次申请资源或系统还没有为该资源使用者进行过排序,则相应的排序的数据存储结构中不包含该资源使用者的任何数据,这种情况下将该资源使用者的数据包括最大资源配额量,最小资源配额量,申请资源量,资源饱和度作为一个数据节点,插入按照资源使用者的资源饱和度排序的排序二叉树。

该二叉树中的任一节点的一侧直接子节点所存储的资源使用者的资源饱和度小于或等于该节点所存储的资源使用者的资源饱和度,该节点的另外一侧的直接子节点所存储的资源使用者的资源饱和度大于该节点所存储的资源使用者的资源饱和度。

将申请资源的资源使用者的数据插入二叉树时,通过旋转节点的位置和相互关系,能够使得插入节点后的二叉树仍然是按照资源饱和度排序的二叉树。

当收到资源使用者申请资源的请求时,若申请资源的资源使用者不是第一次申请资源,且系统曾经为该资源使用者进行过排序,则相应的排序的数据存储结构中包含该资源使用者的数据,这种情况下仅需更新排序二叉树的相应节点的相关数据,具体为申请资源量和资源饱和度。同时将二叉树的节点做旋转等调整位置和相互关系处理,使其仍然保持为按照资源饱和度排序的二叉树。

步骤S304,将申请资源量小于或等于其最小资源配额量的资源使用者,称为A类资源使用者;根据资源使用者排序,以设定条件确定一个边界资源使用者,对于资源饱和度小于或等于所述边界资源使用者的资源饱和度的资源使用 者,称为B类资源使用者;将资源饱和度大于该边界资源使用者的资源饱和度的资源使用者称为C类资源使用者。

对于申请资源量小于其最小或等于资源配额量的资源使用者,将其称为A类资源使用者。

对于申请资源量大于其最小资源配额量的资源使用者,根据资源使用者排序,以设定条件确定一个边界资源使用者。

本实施例中,在排序的资源使用者中,找出其数据满足下述两个不等式的资源使用者,将其称为边界资源使用者。

不等式三:

不等式四:

进一步地,进行合并同类项操作,能够将上述两个不等式简化为下述形式:

不等式三:

不等式四:

其中

ToatalResource:系统资源总量;Requestk:申请资源量小于或等于其最小资源配额量的第k个资源使用者的申请资源量;MinQuotai:资源饱和度小于或等于边界资源使用者的资源饱和度,且申请资源量大于其最小资源配额量的,除边界资源使用者以外的其他B类资源使用者中第i个B类资源使用者的最小资源配额量;Requesti:资源饱和度小于或等于边界资源使用者的资源饱和度,且申请资源量大于其最小资源配额量的,除边界资源使用者以外的其他B类资源使用者中第i个B类资源使用者的申请资源量;MaxQuotaj:资源饱和度大于边界资源使用者的资源饱和度,且申请资源量大于其最小资源配额量的第j个C类资源使用者的最大资源配额量;MinQuotaj:资源饱和度大于边界资源使用者的资源饱和度,且申请资源量大于其最小资源配额量的第j个C类资源使用者的最小资源配额量;Requesth:边界资源使用者的申请资源量;MaxQuotah:边界资源使用者的最大资源配额量;MinQuatah:边界资源使用者的最小资源配额量;Requesth+1:所述排序的资源使用者中,资源饱和度小于任一其他资源饱和度大于边界资源使用者的资源饱和度的资源使用者的资源饱和度,但大于边界资源使用者的资源饱和度的C类资源使用者的申请资源量;MaxQuotah+1:所述排序的资源使用者中,资源饱和度小于任一其他资源饱和度大于边界资源使用者的资源饱和度的资源使用者的资源饱和度,但大于边界资源使用者的资源饱和度的C类资源使用者的最大资源配额量;MinQuotah+1:所述排序的资源使用者中,资源饱和度小于任一其他资源饱和度大于边界资源使用者的资源饱和度的资源使用者的资源饱和度,但大于边界资源使用者的资源饱和度的C类资源使用者的最小资源配额量;s:系统内申请资源量小于或等于其最小资源配额量的A类资源使用者的数量;m:系统内资源饱和度小于或等于边界资源使用者的资源饱和度,且申请资源量大于其最小资源配额量的,除边界资源使用者以外的其他B类资源使用者的数量;n:系统内资源饱和度大于边界资源使用者的资源饱和度的C类资源使用者的数量;∑:求和运算。

将资源饱和度小于等于所述边界资源使用者的资源使用者,称为B类资源使用者;将资源饱和度大于该边界资源使用者的资源使用者称为C类资源使用者。

查找所述边界使用者的方法根据资源使用者的数据存储的方式不同可以有不同的方法,本实施例中,针对将资源使用者的数据存储于按照资源饱和度排序的二叉树的方式,首先将所述二叉树的根节点所存储的资源使用者作为临时 边界资源使用者,将该临时边界资源使用者的数据作为边界资源使用者的数据,将小于该临时边界资源使用者所在的节点的资源饱和度的一侧的节点的数据作为资源饱和度小于或等于边界资源使用者的资源饱和度的资源使用者的数据;将其另外一侧节点的数据作为资源饱和度大于边界资源使用者的资源饱和度的资源使用者的数据;将另外一侧的直接子节点的数据作为资源饱和度仅大于边界资源使用者的资源饱和度的资源使用者的数据。

利用不等式三和不等式四来判断查找所述临时边界资源使用者是否为边界资源使用者。

若将临时边界资源使用者作为边界资源使用者使得不等式三不成立,则将该临时边界使用者所在的节点的资源饱和度小于或等于其资源饱和度的一侧的直接子节点所存储的资源使用者作为临时边界资源使用者。将排序二叉树中新的临时边界资源使用者的数据再次代入不等式三,依此类推,直至某一节点存储的资源使用者的数据作为临时边界资源使用者的数据满足不等式三。再判断该临时边界资源使用者的数据是否满足不等式四。

若将临时边界资源使用者作为边界资源使用者使得不等式四不成立,则将该临时边界使用者所在的节点的资源饱和度大于其资源饱和度的一侧的直接子节点所存储的资源使用者作为临时边界资源使用者。将排序二叉树中新的临时边界资源使用者的数据再次代入不等式四,依此类推,直至某一节点存储的资源使用者的数据作为临时边界资源使用者的数据满足不等式四。再判断该临时边界资源使用者的数据是否满足不等式三。

能够使得不等式三和不等式四都成立的临时边界资源使用者即为边界资源使用者。

将资源饱和度小于或等于所述边界资源使用者的资源饱和度的资源使用者称为B类资源使用者,将资源饱和度大于所述边界资源使用者的资源饱和度的资源使用者称为C类资源使用者。也即在排序的二叉树中边界资源使用者所在节点一侧的节点所存储的为B类资源使用者的数据,另外一侧节点存储的为C类资源使用者的数据。

根据申请资源的资源使用者的申请资源量,最小资源配额量,最大资源配额量及其资源饱和度的值,将其归类为相应类的资源使用者。也即,若申请资源的资源使用者的申请资源量小于或等于其最小资源配额量,则将该申请资源 的资源使用者归为A类资源使用者。若申请资源的资源使用者的申请资源量大于其最小资源配额量,且资源饱和度小于或等于边界资源使用者的资源饱和度,则将该申请资源的资源使用者归为B类资源使用者;若申请资源的资源使用者的申请资源量大于其最小资源配额量,且资源饱和度大于边界资源使用者的资源饱和度,则将该申请资源的资源使用者归为C类资源使用者。

步骤S305,对A类资源使用者和B类资源使用者,以其申请资源量作为其资源配额向其分配资源;对于C类资源使用者,将系统资源总量减去所述按照为A类资源使用者和B类资源使用者分配的所有资源量后,再减去C类使用者的最小资源配额量的总和后,获得剩余资源量;将所述剩余资源量,按照该C类资源使用者的最大资源配额量占所有C类资源使用者的最大资源配额量的总和的比例,作为其超出最小资源配额量的资源分配量,以所述其超出最小资源配额量的资源分配量加上该C类资源使用者的最小资源配额量的和作为该C类资源使用者的资源配额向其分配资源。

当申请资源的资源使用者属于A类或B类资源使用者时,为其分配其所申请的资源量。

当申请资源的资源使用者为C类资源使用者时,将系统资源总量减掉所有A类资源使用者和B类资源使用者的申请资源量的和后,再减掉所有C类资源使用者的最小资源配额量后的差值作为系统剩余资源量,将系统剩余资源量,按照该资源使用者的最大资源配额量占所有C类资源使用者的最大资源配额量的总和的比例分配给该资源使用者作为其超出最小资源配额量的资源配额,将所述超出其最小资源配额量的资源配额加上其最小资源配额量作为其资源配额,向其分配资源。即按照下述公式为其分配资源量:

资源配额公式二:

进一步地,对上述公式进行合并同类项的操作,能够将上述资源配额公式 二简化为下述形式:

其中Resourcex:资源饱和度大于边界资源使用者的资源饱和度的C类资源使用者x的资源配额;MinQuotax:资源饱和度大于边界资源使用者的资源饱和度的C类资源使用者x的最小资源配额量;MaxQuotax:资源饱和度大于边界资源使用者的资源饱和度的C类资源使用者x的最大资源配额量;ToatalResource:系统资源总量;Requestk:申请资源量小于其最小资源配额量的第k个A类资源使用者的申请资源量;MinQuotai:资源饱和度小于或等于其边界资源使用者的资源饱和度,且申请资源量大于其最小资源配额量的,除边界资源使用者以外的第i个B类资源使用者的最小资源配额量;Requesti:资源饱和度小于或等于边界资源使用者的资源饱和度,且申请资源量大于其最小资源配额量的,除边界资源使用者以外的第i个B类资源使用者的申请资源量;MaxQuotaj:资源饱和度大于边界资源使用者的资源饱和度的第j个C类资源使用者的最大资源配额量;MinQuotaj:资源饱和度大于边界资源使用者的资源饱和度的第j个C类资源使用者的最小资源配额量;Requesth:边界资源使用者申请资源量;s:系统内申请资源量小于其最小资源配额量的A类资源使用者的数量;m:系统内资源饱和度小于或等于边界资源使用者的资源饱和度,且申请资源量大于其最小资源配额量的,除边界资源使用者以外的B类资源使用者的数量;n:系统内资源饱和度大于边界资源使用者的资源饱和度的C类资源使用者的数量;∑:求和运算。

为简化计算,在步骤S303中插入或更新树节点时,可以将不等式三和不等式四中的求和项的值分别保存或更新到被插入或更新的节点中,这样,所述排序二叉树的每个节点除保存有资源使用者的最大资源配额量,最小资源配额量,申请资源量和资源饱和度外,还可以保存有下述数据:资源饱和度小于或等于该节点所对应的资源使用者的资源饱和度的资源使用者的申请资源量之和,资源饱和度小于或等于该节点所对应的资源使用者的资源饱和度的资源使用者的最小资源配额量之和,资源饱和度大于该节点所对应的资源使用者的资源饱和度的资源使用者的最大资源配额量之和,资源饱和度大于该节点所对应的资源 使用者的资源饱和度的资源使用者的最小资源配额量之和,申请资源量小于其最小配额量的资源使用者的申请资源量之和。这样,当利用上述不等式三和不等式四查找边界资源使用者和利用资源配额公式二计算资源使用者的资源配额时,能够起到节省时间的效果。

在上述的实施例中,提供了一种计算机系统资源分配方法,不仅能够达到降低计算资源使用者的资源配额的时间复杂度,满足实时计算的要求和无需计算所有资源使用者的资源配额的效果,还能够起到满足资源使用者的最小资源配额量配置的作用。与之相对应的,本申请还提供一种计算机系统资源分配装置。请参看图4,其为本申请的一种计算机系统资源分配装置的实施例的结构示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

本申请提供计算机系统资源分配装置,包括:获取单元U401,资源饱和度计算单元U402,排序单元U403,分类单元U404和资源分配单元U405。

所述获取单元U401,用于获取系统资源总量和有权提出资源申请请求的资源使用者的资源分配相关数据,所述资源使用者的资源分配相关数据包括资源使用者的最小资源配额量,最大资源配额量和申请资源量。

所述资源饱和度计算单元U402,用于利用所述资源使用者的申请资源量减掉最小资源配额量的差除以最大资源配额量,计算得出该资源使用者的资源饱和度。

所述排序单元U403,用于以所述资源使用者的资源饱和度为依据,对申请资源量大于其最小资源配额量的资源使用者进行排序。

所述分类单元U404,用于将申请资源量小于或等于其最小资源配额量的资源使用者,称为A类资源使用者;根据资源使用者排序,以设定条件确定一个边界资源使用者,对于资源饱和度小于或等于所述边界资源使用者的资源饱和度的资源使用者,称为B类资源使用者;将资源饱和度大于该边界资源使用者的资源饱和度的资源使用者称为C类资源使用者。

所述资源分配单元U405,用于对A类资源使用者和B类资源使用者,以其申请资源量作为其资源配额向其分配资源;对于C类资源使用者,将系统资源总量减去所述按照为A类资源使用者和B类资源使用者分配的所有资源量后, 再减去所有C类资源使用者的最小资源配额量的总和后,获得剩余资源量;将所述剩余资源量,按照该C类资源使用者的最大资源配额量占所有C类资源使用者的最大资源配额量的总和的比例,作为其超出最小资源配额量的资源分配量,以所述其超出最小资源配额量的资源分配量加上该C类资源使用者的最小资源配额量的和作为该C类资源使用者的资源配额向其分配资源。

本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1