一种动态分配配额的方法和装置的制造方法

文档序号:9432381阅读:259来源:国知局
一种动态分配配额的方法和装置的制造方法
【技术领域】
[0001] 本发明设及操作系统调度领域,尤指一种动态分配配额的方法和装置。
【背景技术】
[0002] 目前的操作系统中的调度系统,在实时调度中主要采用Wdeadline为优先级的 调度机制,运种调度机制是没有动态配额的机制,运导致忙的任务只能运行指定的配额,而 不能从系统中得到更多的配额。从宏观的角度看就是忙的任务由于得不到更多的配额,因 此导致总是不能及时的处理业务。具体如图1所示:假设一个CPU上运行2个任务,分别为 T1 (忙任务)和T2 (闲的任务),假定每个任务初始占用CPU的带宽均为30 %。在目前的 dealine为优先级的调度中,T1和T2不能超过指定的带宽,在图1中可W得到一开始的时 候两个任务的带宽之和为T1+T2 = 30% +30%= 60%。运行时T2会让出一部分带宽,因为 T2闲任务,它会主动让出CPU,但是T1得不到T2让出的带宽。所WT1仍然按照30%的带 宽运行。如果有动态配额T1会得到T2剩余的配额,运样T1将W超过30%的带宽得W运 行,从宏观上看忙任务T1业务量处理就变快了。

【发明内容】

[0003] 为了解决上述技术问题,本发明提供了一种动态分配配额的方法和装置,能够实 现调度系统中配额的动态分配,能够更加合理的使用带宽。
[0004] 为了达到本发明目的,本发明提供了一种动态分配配额的方法,包括: 阳〇化]确定CPU上运行的各个任务的是忙任务还是闲任务;
[0006] 为确定出的各个忙任务分配带宽W及为确定出的各个闲任务分配带宽;
[0007] 各个忙任务和各个闲任务按照分配的带宽运行。
[0008] 进一步地,所述为确定出的各个忙任务分配带宽,包括:
[0009] 计算所述CPU的当前可用带宽;
[0010] 获取确定出的各个忙任务的初始带宽并计算获得的各个忙任务的初始带宽之 和;
[0011] 根据计算出的所述CPU的当前可用带宽和计算出的各个忙任务的初始带宽之和 为确定出的各个忙任务分配带宽。
[0012] 进一步地,通过W下公式为确定出的各个忙任务分配带宽:
[0013]
[0014]其中,U(i)umi是为忙任务i分配的带宽,U(i)dW是忙任务i的初始带宽,U。、。是所 述CPU的当前可用带宽,11。胃,是各个忙任务的初始带宽之和。
[0015] 进一步地,所述计算所述CPU的当前可用带宽,包括:
[0016] 确定所述CPU的总带宽;
[0017] 获取各个闲任务的上次运行时的实际运行带宽并计算获得的各个闲任务的上次 运行时的实际运行带宽之和;
[0018] 所述确定出的所述CPU的总带宽与计算出的获得的各个闲任务的上次运行时的 实际运行带宽之和的差值为该CPU的当前可用带宽。
[0019] 进一步地,通过W下公式确定所述CPU的总带宽:
[0020]
[002U其中,UtDtgi为所述CPU的总带宽,Udef为该CPU上运行的各个忙任务的初始带宽之 和,Uiimit为调度系统占用所述CPU的带宽上限。
[0022] 进一步地,为确定出的各个闲任务分配带宽,包括:获取记录的各个闲任务上次运 行时的实际运行带宽、各个闲任务本次运行时的剩余带宽和各个闲任务的最小运行带宽.
[0023] 根据获得的各个闲任务上次运行时的实际运行带宽、各个闲任务本次运行时的剩 余带宽和各个闲任务的最小运行带宽为确定出的各个闲任务分配带宽。
[0024] 进一步地,通过W下公式为确定出的各个闲任务分配带宽: 阳0巧]
[0026] 其中,U(i)um2是为闲任务i分配的带宽,是闲任务i上次运行时的实际运 行带宽,是闲任务i本次运行时的剩余带宽,u(i)mi。是预先设定的运行最小带宽。
[0027] 本发明还提供了一种动态分配配额的装置,包括:确定模块、分配模块和处理模 块;其中,
[0028] 确定模块,用于确定CPU上运行的各个任务的是忙任务还是闲任务;
[0029] 分配模块,用于为确定出的各个忙任务分配带宽W及为确定出的各个闲任务分配 带宽;
[0030] 处理模块,用于提示各个任务按照分配的带宽运行。
[0031] 进一步地,所述分配模块,具体用于:
[0032] 计算所述CPU的当前可用带宽;
[0033]获取确定出的各个忙任务的初始带宽并计算获得的各个忙任务的初始带宽之 和;
[0034] 根据计算出的所述CPU的当前可用带宽和计算出的各个忙任务的初始带宽之和 为确定出的各个忙任务分配带宽。
[0035] 进一步地,所述分配模块通过W下公式为确定出的各个忙任务分配带宽:
[0036]
[0037] 其中,u(i)umi是为忙任务i分配的带宽,u(i)dw是忙任务i的初始带宽,U。、。是所 述CPU的当前可用带宽,11。胃,是各个忙任务的初始带宽之和。
[0038] 进一步地,所述分配模块计算所述CPU的当前可用带宽,包括:
[0039] 确定所述CPU的总带宽;
[0040] 获取各个闲任务的上次运行时的实际运行带宽并计算获得的各个闲任务的上次 运行时的实际运行带宽之和;
[0041] 所述确定出的所述CPU的总带宽与计算出的获得的各个闲任务的上次运行时的 实际运行带宽之和的差值为该CPU的当前可用带宽。
[0042] 进一步地,所述分配模块通过W下公式确定所述CPU的总带宽:
[0043]
W44] 其中,为所述CPU的总带宽,Udw为该CPU上运行的各个忙任务的初始带宽之 和,Uiimit为调度系统占用所述CPU的带宽上限。
[0045] 进一步地,所述分配模块,还具体用于:获取记录的各个闲任务上次运行时的实际 运行带宽、各个闲任务本次运行时的剩余带宽和各个闲任务的最小运行带宽;
[0046] 根据获得的各个闲任务上次运行时的实际运行带宽、各个闲任务本次运行时的剩 余带宽和各个闲任务的最小运行带宽为确定出的各个闲任务分配带宽。
[0047] 进一步地,所述分配模块通过W下公式为确定出的各个闲任务分配带宽:
[0048]
[0049] 其中,u(i)um2是为闲任务i分配的带宽,u(i) ,。。1是闲任务i上次运行时的实际运 行带宽,是闲任务i本次运行时的剩余带宽,u(i)mi。是预先设定的运行最小带宽。
[0050] 本发明技术方案包括:确定CPU上运行的各个任务的是忙任务还是闲任务;为确 定出的各个忙任务分配带宽W及为确定出的各个闲任务分配带宽;各个忙任务和各个闲任 务按照分配的带宽运行。本发明技术方案实现了调度系统中配额的动态分配,更加合理的 使用带宽。
【附图说明】
[0051] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0052] 图1为现有技术中无动态配额的示意图;
[0053] 图2为动态分配配额的方法的流程图;
[0054] 图3为本发明动态分配配额的装置的结构示意图;
[0055] 图4为本发明有动态配额的示意图。
【具体实施方式】
[0056] 下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
[0057] 图2为动态分配配额的方法的流程图,如图2所示,包括:
[0058] 步骤201:确定CPU上运行的各个任务的是忙任务还是闲任务。
[0059] 其中,通过W下方式确定CPU上运行的各个任务的是忙任务还是闲任务:
[0060] 忙任务自己不会主动让出带宽
[0061] 闲任务当没有处理的业务时会主动让出带宽。
[0062] 需要说明的是,关于如何获知任务是否让出带宽属于本领域技术人员所熟知的惯 用技术手段,在此不再寶述。
[0063] 步骤202:为确定出的各个忙任务分配带宽W及为确定出的各个闲任务分配带 宽。
[0064] 其中,为确定出的各个忙任务分配带宽,包括: 阳0化]计算CPU的当前可用带宽;
[0066]获取确定出的各个忙任务的初始带宽并计算获得的各个忙任务的初始带宽之 和;
[0067] 根据计算出的CPU的当前可用带宽和计算出的各个忙任务的初始带宽之和为确 定出的各个忙任务分配带宽。
[0068] 需要说明的是,任务的初始带宽是可W根据实际情况进行设定的,关于如何获取 任务的初始带宽,属于本领域技术人员所熟知的惯用技术手段,在此不再寶述,并不用来限 制本发明。
[0069] 进一步地,通过公式(1)为确定出的各个忙任务分配带宽:
[0070]
(1)
[00川其中,U(i)aiml是为忙任务i分配的带宽,uG)def是忙任务i的初始带宽,Uava是CPU的当前可用带宽,11。胃,是各个忙任务的初始带宽之和。其中,i为大于或等于1的正整 数。其中,可W通过公式(2)计算各个忙任务的初始带宽之和:
[0072]
巧)
[007引其中,u(i)dw是忙任务i的初始带宽,m为忙任务的总个数。
[0074] 其中,计算CPU的当前可用带宽,包括:
[0075] 确定CPU的总带宽;
[0076] 获取各个闲任务的上次运行时的实际运行带宽并计算获得的各个闲任务的上次 运行时的实际运行带宽之和;
[0077] 确定出的CPU的总带宽与计算出的获得的各个闲任务的上次运行时的实际运行 带宽之和的差值为该CPU的当前可用带宽。其中,可W通过公式(3)计算U。、。: 阳07引 Uava= U total-Uiock做
[0079]其中,Utetal为CPU的总带宽,U hek为各个闲任务的上次运行时的实际运行带宽之 和,即
,其中,u(j)f。。^为闲任务j上次运行时的实际运行带宽,m为闲 任务的总个数。需要说明的是,各个任务上次运行时的实际运行带宽是已经记录好的。进
[0080] 一步地,通过公式(4)确定CPU的总带宽:
(4)
[00川其中,Ut。^为CPU的总带宽,Udef为该CPU上运行的各个忙任务的初始带宽之和,Uiimit为调度系统占用CPU的带宽上限。
[0082] 其中,为确定出的各个闲任务分配带宽,包括:获取记录的各个闲任务上次运行时 的实际运行带宽、各个闲任务本次运行时的剩余带宽和各个闲任务的最小运行带宽;
[0083] 根据获得的各个闲任务上次运行时的实际运行带宽、各个闲任务本次运行时的剩 余带宽和各个闲任务的最小运行带宽为确定出的各个闲任务分配带宽。进一步
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1