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

阅读: 评论:0

著录项
  • CN201510571508.1
  • 20150909
  • CN106528287A
  • 20170322
  • 阿里巴巴集团控股有限公司
  • 张杨;冯亦挥;欧阳晋;韩巧焕;陶阳宇
  • G06F9/50
  • G06F9/50

  • 英属开曼岛大开曼资本大厦一座四层847号邮箱
  • 开曼岛(KY)
  • 北京市清华源律师事务所
  • 沈泳;李赞坚
摘要
本申请公开了计算机系统资源分配的方法和装置。所述方法利用资源使用者的最大资源配额,最小资源配额和申请资源量计算得出资源饱和度数据,根据资源饱和度将资源使用者排序并按照设定的条件确定边界资源使用者,根据申请资源的资源使用者的资源饱和度与边界资源使用者的资源饱和度的关系,为其分配相应的资源配额。解决了现有资源分配方法分配资源时间复杂度高,无法满足实时计算的要求,不支持最小资源配额量的问题。
权利要求

1.一种计算机系统资源分配方法,其特征在于,包括以下步骤:

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

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

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

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

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

2.根据权利要求1所述的计算机系统资源分配方法,其特征在于,所述设 定条件为所述边界资源使用者满足不等式一和不等式二,

不等式一:

Σ i = 1 m Request i + Request h + Request h MaxQuota h × Σ j = 1 n MaxQuota j < T o t a l Re s o u r c e

不等式二:

Σ i = 1 m Request i + Request h + Request h + 1 MaxQuota h + 1 × Σ j = 1 n MaxQuota j < T o t a l Re s o u r c e

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

3.根据权利要求2所述的计算机系统资源分配方法,其特征在于,所述根 据资源使用者排序,以设定条件确定一个边界资源使用者的方法包括:

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

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

4.根据权利要求3所述的计算机系统资源分配方法,其特征在于,所述将 所述排序的资源使用者中的另外一个资源使用者作为临时边界资源使用者的方 法包括:

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

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

5.根据权利要求4所述的计算机系统资源分配方法,其特征在于,

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

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

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

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

6.根据权利要求5所述的计算机系统资源分配方法,其特征在于,所述资 源使用者资源分配相关数据还包括:资源饱和度小于或等于该资源使用者的资 源饱和度的资源使用者的申请资源量之和和资源饱和度大于该资源使用者的资 源饱和度的资源使用者的最大资源配额量之和。

7.根据权利要求1所述的计算机系统资源分配方法,其特征在于,

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

8.根据权利要求7所述的计算机系统资源分配方法,其特征在于,

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

9.一种计算机系统资源分配方法,其特征在于,包括以下步骤:

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

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

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

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

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

10.根据权利要求9所述的计算机系统资源分配方法,其特征在于,所述 设定的条件为所述边界资源使用者的数据满足下述不等式三和不等式四,

不等式三:

Σ i = 1 m ( Request i - MinQuota i ) + ( Request h - MinQuata h ) + ( Request h - MinQuata h ) MaxQuota h × Σ j = 1 n MaxQuota j < T o t a l Re s o u r c e - Σ i = 1 m MinQuota i - MinQuata h - Σ j = 1 n MinQuota j - Σ k = 1 s Request k

不等式四:

Σ i = 1 m ( Request i - MinQuota i ) + ( Request h - MinQuata h ) + ( Request h + 1 - MinQuata h + 1 ) MaxQuota h + 1 × Σ j = 1 n MaxQuota j >

T o t a l Re s o u r c e - Σ i = 1 m MinQuota i - MinQuata h - Σ j = 1 n MinQuota j - Σ k = 1 s Request k

其中

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

11.根据权利要求10所述的计算机系统资源分配方法,其特征在于,所述 根据资源使用者排序,以设定条件确定一个边界资源使用者的方法包括:

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

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

12.根据权利要求11所述的计算机系统资源分配方法,其特征在于,所述 将所述排序的资源使用者中的另外一个资源使用者作为临时边界资源使用者的 方法包括:

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

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

13.根据权利要求12所述的计算机系统资源分配方法,其特征在于,

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

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

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

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

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

14.根据权利要求13所述的计算机系统资源分配方法,其特征在于,所 述资源使用者资源分配相关数据还包括:资源饱和度小于或等于该资源使用者 的资源饱和度的资源使用者的申请资源量之和,资源饱和度小于或等于该资源 使用者的资源饱和度的资源使用者的最小资源配额量之和,资源饱和度大于该 资源使用者的资源饱和度的资源使用者的最大资源配额量之和,资源饱和度大 于该节点所对应的资源使用者的资源饱和度的资源使用者的最小资源配额量之 和,和申请资源量小于其最小配额量的资源使用者的申请资源量之和。

15.根据权利要求9所述的计算机系统资源分配方法,其特征在于,

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

16.根据权利要求15所述的计算机系统资源分配方法,其特征在于,所述 资源使用者资源分配相关数据还包括:

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

17.一种计算机系统资源分配装置,其特征在于,包括

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

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

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

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

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

18.一种计算机系统资源分配装置,其特征在于,包括

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

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

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

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

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

说明书

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

技术领域

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

背景技术

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

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、 光学存储器等)上实施的计算机程序产品的形式。

本文发布于:2023-04-13 18:21:45,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/1/86649.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图