多任务调度的方法及装置制造方法

文档序号:6500350阅读:69来源:国知局
多任务调度的方法及装置制造方法
【专利摘要】本发明公开了一种多任务调度的方法及装置,属于通信【技术领域】。方法包括:将多个任务分别分配到对应的任务队列中;对于任一任务队列,将任一任务队列中的任务按照任务属性进行排序;根据各个任务队列可调度的任务数量及各个任务队列中的任务的排序结果调度对应的任务。本发明通过将多个任务分别分配到对应的任务队列中;并对于任一任务队列中的任务按照任务属性进行排序;根据各个任务队列可调度的任务数量及各个任务队列中的任务的排序结果调度对应的任务,从而合理分配资源,提高任务响应时间及系统性能。
【专利说明】多任务调度的方法及装置
【技术领域】
[0001]本发明涉及通信【技术领域】,特别涉及一种多任务调度的方法及装置。
【背景技术】
[0002]任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。随着多线程和多进程技术的发展,将多个任务同时由多个线程或者多个进程分别调度的多任务调度方法以其充分利用系统资源,高效率执行任务的优势成为任务调度的核心方法。如何进行多任务调度,既保证系统对任务进行相应处理的速度,又同时完成多种任务操作,提高任务响应时间,是合理分配系统资源,优化系统性能的关键。
[0003]目前,操作系统的多任务调度,一般都由操作系统对需要执行的多个任务分别设置优先级,并将其加入到全局队列中,从而根据全局队列中任务的优先级完成任务调度,例如,优先级高的任务先进行任务调度,优先级低的任务后进行任务调度。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下缺点:
[0005]在实际应用中,如果系统任务的优先级数目比较少,全局队列中优先级相同的任务比较多,会出现在相同优先级的多个任务中不能合理排列任务调度顺序的问题;另外,由于操作系统在系统级别无法预知各个任务对于系统资源的协调,从而不能合理分配资源,降低了系统性能。

【发明内容】

[0006]为了解决现有技术的问题,本发明实施例提供了一种多任务调度的方法及装置。所述技术方案如下:
[0007]—方面,提供了一种多任务调度的方法,所述方法包括:
[0008]将多个任务分别分配到对应的任务队列中,所述任务队列为至少一个;
[0009]对于任一任务队列,将所述任一任务队列中的任务按照任务属性进行排序;
[0010]根据各个任务队列可调度的任务数量及所述各个任务队列中的任务的排序结果调度对应的任务;
[0011]其中,所述任务属性至少为优先级及所需的系统资源中的一种。
[0012]进一步地,所述将多个任务分别分配到对应的任务队列中,包括:
[0013]确定各个任务所需的系统资源,并确定各个任务队列当前可用的系统资源;
[0014]根据确定的各个任务所需的系统资源与各个任务队列可用的系统资源将所述多个任务分别分配到对应的任务队列中。
[0015]可选地,所述任务属性为优先级及所需的系统资源时,所述对于任一任务队列,将所述任一任务队列中的任务按照任务属性进行排序,包括:
[0016]将所述任一任务队列中的任务按照优先级进行排序;
[0017]如果存在优先级相同的任务,将优先级相同的任务按照所需的系统资源进行排序,得到所述任一任务队列中的任务的排序结果。[0018]可选地,所述任务属性为优先级及所需的系统资源时,所述对于任一任务队列,将所述任一任务队列中的任务按照任务属性进行排序,包括:
[0019]将所述任一任务队列中的任务按照所需的系统资源进行排序;
[0020]如果存在所需的系统资源相等的任务,将所需的系统资源相等的任务按照优先级进行排序,得到所述任一任务队列中的任务的排序结果。
[0021]进一步地,所述根据各个任务队列可调度的任务数量及所述各个任务队列中的任务的排序结果调度对应的任务之前,还包括:
[0022]对于任一任务队列,确定所述任一任务队列当前可用的系统资源;
[0023]根据所述任一任务队列当前可用的系统资源及所述任一任务队列中的各个任务所需的系统资源确定所述任一任务队列可调度的任务数量。
[0024]另一方面,还提供了一种多任务调度的装置,所述装置包括:
[0025]分配模块,用于将多个任务分别分配到对应的任务队列中,所述任务队列为至少一个;
[0026]排序模块,用于对于任一任务队列,将所述任一任务队列中的任务按照任务属性进行排序;
[0027]调度模块,用于根据各个任务队列可调度的任务数量及所述各个任务队列中的任务的排序结果调度对应的任务;
[0028]其中,所述任务属性至少为优先级及所需的系统资源中的一种。
[0029]进一步地,所述分配模块,包括:
[0030]确定单元,用于确定各个任务所需的系统资源,并确定各个任务队列当前可用的系统资源;
[0031]分配单元,用于根据确定的各个任务所需的系统资源与各个任务队列可用的系统资源将所述多个任务分别分配到对应的任务队列中。
[0032]可选地,,所述任务属性为优先级及所需的系统资源时,所述排序模块,包括:
[0033]第一排序单元,用于将所述任一任务队列中的任务按照优先级进行排序;
[0034]第二排序单元,用于当存在优先级相同的任务时,将优先级相同的任务按照所需的系统资源进行排序,得到所述任一任务队列中的任务的排序结果。
[0035]可选地,所述任务属性为优先级及所需的系统资源时,所述排序模块,包括:
[0036]第三排序单元,用于将所述任一任务队列中的任务按照所需的系统资源进行排序;
[0037]第四排序单元,用于当存在所需的系统资源相等的任务时,将所需的系统资源相等的任务按照优先级进行排序,得到所述任一任务队列中的任务的排序结果。
[0038]进一步地,所述装置,还包括:
[0039]第一确定模块,用于对于任一任务队列,确定所述任一任务队列当前可用的系统资源;
[0040]第二确定模块,用于根据所述任一任务队列当前可用的系统资源及所述任一任务队列中的各个任务所需的系统资源确定所述任一任务队列可调度的任务数量。
[0041]本发明实施例提供的技术方案带来的有益效果是:
[0042]通过将多个任务分别分配到对应的任务队列中;并对于任一任务队列中的任务按照任务属性进行排序;根据各个任务队列可调度的任务数量及各个任务队列中的任务的排序结果调度对应的任务,从而合理分配资源,提高任务响应时间及系统性能。
【专利附图】

【附图说明】
[0043]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0044]图1是本发明实施例一提供的一种多任务调度的方法流程图;
[0045]图2是本发明实施例二提供的一种多任务调度的示意图;
[0046]图3是本发明实施例二提供的一种多任务调度的方法流程图;
[0047]图4是本发明实施例三提供的一种多任务调度的装置结构示意图;
[0048]图5是本发明实施例三提供的一种分配模块的结构示意图;
[0049]图6是本发明实施例三提供的一种排序模块的结构示意图;
[0050]图7是本发明实施例三提供的另一种排序模块的结构示意图;
[0051]图8是本发明实施例三提供的另一种多任务调度装置的结构示意图。
【具体实施方式】
[0052]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0053]实施例一
[0054]本实施例提供了一种多任务调度的方法,参见图1,本实施例提供的方法流程具体如下:
[0055]101:将多个任务分别分配到对应的任务队列中,其中,任务队列为至少一个;
[0056]102:对于任一任务队列,将任一任务队列中的任务按照任务属性进行排序,其中,任务属性至少为优先级及所需的系统资源中的一种;
[0057]103:根据各个任务队列可调度的任务数量及各个任务队列中的任务的排序结果调度对应的任务。
[0058]本实施例提供的方法,通过将多个任务分别分配到对应的任务队列中;并对于任一任务队列中的任务按照任务属性进行排序;根据各个任务队列可调度的任务数量及各个任务队列中的任务的排序结果调度对应的任务,从而合理分配资源,提高任务响应时间及系统性能。
[0059]为了更加清楚地阐述上述实施例提供的一种多任务调度的方法,结合上述实施例的内容,以如下实施例二为例,对一种多任务调度的方法进行详细说明,详见如下实施例
[0060]实施例二
[0061]本实施例提供了一种多任务调度的方法,为了便于说明,本实施例结合图2所示的示意图,以对一个应用程序中的多个模块的任务进行调度为例,对本实施例提供的方法进行详细地举例说明。参见图3,本实施例提供的方法流程具体如下:[0062]301:确定各个任务所需的系统资源,并确定各个任务队列当前可用的系统资源,其中任务队列为至少一个;
[0063]本实施例不对确定的系统资源的具体形式进行具体限定,例如可以是CPU(Central Processing Unit,中央处理单元)资源,或者也可以是内存资源。
[0064]例如,以系统资源为内存资源为例,确定图2中阅读任务需要的内存资源为20兆,显示任务需要的内存资源为30兆,解析任务需要的内存资源为10兆,并确定任务队列I当前可用的内存资源为100兆,任务队列2当前可用的内存资源为10兆,任务队列3当前可用的内存资源为40兆。当然内存资源的大小也可以是30兆,31兆或者是其它数值,在此不对确定的内存资源的具体数值作具体限定,同时确定的系统资源也可以是CPU资源等其它资源,在此也不作具体限定。
[0065]302:根据确定的各个任务所需的系统资源与各个任务队列可用的系统资源将多个任务分别分配到对应的任务队列中;
[0066]针对此步骤,分别判断各个任务所需的系统资源与各个任务队列可用的系统资源的关系,如果当前任务所需的系统资源小于或等于当前任务队列可用的系统资源,则认为可以将当前任务分配到当前任务队列中;否则认为不可以将此任务分配到此任务队列中。如果某一任务可以分配到多个任务队列中,则可将其随机分配到一个任务队列中。
[0067]具体的,以系统资源为内存资源为例。参见图2,判断阅读任务需要的内存资源为20兆,任务队列I当前可用的内存资源为100兆,满足阅读任务需要的内存资源,则可以将阅读任务分配到任务队列I中;任务队列2当前可用的内存资源为10兆,不满足阅读任务需要,则不选择将阅读任务分配到任务队列2中;任务队列3当前可用的内存资源为40兆,满足阅读任务需要,则可以将阅读任务分配到任务队列3中;因此,将阅读任务随机分配到任务队列I或任务队列3中,比如将阅读任务随机分配到任务队列I中。同样的,将显示任务随机分配到任务队列3中,将解析任务分配到任务队列2中。当然,也可以有其它分配方法,在此不对具体分配方式进行限定。
[0068]303:对于任一任务队列,将任一任务队列中的任务按照任务属性进行排序,其中任务属性至少为优先级及所需的系统资源中的一种;
[0069]针对此步骤,将任一任务队列中的任务按照任务属性进行排序时,可以分为如下3种情况:
[0070]第I种情况、任务属性为优先级,则对于任一任务队列,将任一任务队列中的任务按照优先级进行排序。例如,将优先级别高的任务排在前面,优先级别低的任务排在后面,优先级别相同的任务随机排列。
[0071]具体的,以图2中的任务属性为优先级,将任务队列I中的任务进行排序为例。贝IJ将任务队列I中的各个任务按照优先级进行排序,比如,任务队列I中有4个任务:任务1,任务2,任务3和任务4,任务I的优先级高于任务3的优先级,任务3的优先级高于任务2的优先级,任务2的优先级与任务4的优先级相同,那么排列顺序为任务1,任务3,任务2,任务4。当然排列顺序也可以为任务1,任务3,任务4,任务2。对于任务队列2和任务队列3中按同样方法进行排序,在此不再赘述。
[0072]第2种情况、任务属性为所需的系统资源,则对于任一任务队列,将任一任务队列中的任务按照所需的系统资源进行排序。例如,所需的系统资源多的任务排在前面,任务所需的系统资源少的排在后面,任务所需的系统资源相同的任务随机排列。
[0073]具体的,以图2中的任务属性为所需的系统资源,系统资源的形式为内存资源,将任务队列I中的任务进行排序为例。则将任务队列I中的各个任务按照所需的内存资源的大小进行排序,比如任务队列I中有4个任务:任务1,任务2,任务3和任务4,任务I所需的内存资源大于任务3所需的内存资源,任务3所需的内存资源大于任务2所需的内存资源,任务2所需的内存资源与任务4所需的内存资源相同,那么排列顺序为任务1,任务3,任务2,任务4。当然,排列顺序也可以为任务1,任务3,任务4,任务2。对于任务队列2和任务队列3中按同样方法进行排序,在此不再赘述。
[0074]第3种情况、任务属性为优先级及所需的系统资源,则对于此种情况包括但不限于如下两种排序方法:
[0075]第一种排序方法,对于任一任务队列,将任一任务队列中的任务先按照优先级进行排序;如果存在优先级相同的任务,将优先级相同的任务按照所需的系统资源进行排序。例如,优先级别高的任务排在前面,优先级别低的任务排在后面;对于优先级相同的任务,所需的系统资源多的任务排在前面,所需的系统资源少的任务排在后面,得到任一任务队列中的任务的排序结果。
[0076]具体的,以图2中任务属性为优先级及所需的系统资源,将任务队列I中的任务进行排序为例。将任务队列I中的各个任务先按照优先级进行排序,比如,任务队列I中有4个任务:任务1,任务2,任务3和任务4,任务I的优先级高于任务3的优先级,任务3的优先级高于任务3的优先级,任务2的优先级与任务4优先级相同。对于任务2与任务4,再按照所需的系统资源排序,例如,系统资源为内存资源,如果任务2所需的内存资源大于任务4所需的内存资源,那么排列顺序为任务I,任务3,任务2,任务4。对于任务队列2和任务队列3中按同样方法进行排序,在此不再赘述。
[0077]第二种排序方法,对于任一任务队列,将任一任务队列中的任务先按照所需的系统资源进行排序;如果存在所需的系统资源相等的任务,将所需的系统资源相等的任务按照优先级进行排序。例如,所需的系统资源多的任务排在前面,所需的系统资源少的任务排在后面;对于所需的系统资源相等的任务,优先级别高的任务排在前面,优先级别低的任务排在后面,得到任一任务队列中的任务的排序结果。
[0078]具体的,以图2中任务属性为优先级及所需的系统资源,系统资源的形式为内存资源,将任务队列I中的任务进行排序为例。则将任务队列I中的各个任务先按照任务所需的内存资源的大小进行排序,比如任务队列I中有4个任务:任务1,任务2,任务3和任务4,任务I所需的内存资源大于任务3所需的内存资源,任务3所需的内存资源大于任务2所需的内存资源,任务2所需的内存资源与任务3所需的内存资源相同。对于任务2与任务4,再按照优先级排序,例如,任务2的优先级高于任务4的优先级,那么排列顺序为任务1,任务3,任务2,任务4。对于任务队列2和任务队列3中按同样方法进行排序,在此不再赘述。
[0079]当然,除了上述几种将任一任务队列中的任务进行排序的方式外,还可以采用其他排序方式,本实施例对此不作具体限定。
[0080]304:对于任一任务队列,确定任一任务队列当前可用的系统资源;
[0081]针对此步骤,对于任一队列在执行上述步骤302-303的时间段内并非处于静止状态,队列中一些任务在此期间可能已经被调度,从而,队列中当前可用的系统资源随时会发生变化。因此,此步骤需要重新确定任一任务队列当前可用的系统资源。
[0082]例如,图2中任务队列I当前可用的内存资源为80兆,任务队列2当前可用的内存资源为10兆,任务队列3当前可用的内存资源为20兆。
[0083]305:根据任一任务队列当前可用的系统资源及任一任务队列中的各个任务所需的系统资源确定任一任务队列可调度的任务数量;
[0084]针对该步骤,本实施例不对根据任一任务队列当前可用的系统资源及任一任务队列中的各个任务所需的系统资源确定任一任务队列可调度的任务数量的确定方式进行具体限定,包括但不限于:
[0085]按照任务排序顺序依次累加相应任务所需的系统资源,并且每累加一个任务所需的系统资源后将累加结果与任务队列当前可用的系统资源比较,当累加结果第一次等于任务队列当前可用的系统资源时,结束累加,并将任务排序中最后累加的任务之前的所有任务数量+1确定为任务队列可调度的任务数量;当累加结果第一次大于任务队列当前可用的系统资源时,结束累加,并将任务排序中最后累加的任务之前的所有任务数量确定为任务队列可调度的任务数量。
[0086]仍以图2中为例,任务队列I当前可用的内存资源为80兆,队列I中有4个任务:任务1,任务2,任务3和任务4,并且4个任务按照任务属性排列顺序为任务1,任务3,任务2,任务4。例如任务I所需的内存资源为10兆,任务2所需的内存资源为50兆,任务3所需的内存资源为20兆,任务4所需的内存资源为10兆。按照任务排序顺序,累加任务I所需的内存资源10兆,并且累加结果10兆小于任务队列I当前可用的内存资源80兆;继续累加任务2所需的内存资源50兆,并且累加结果60兆小于任务队列I当前可用的内存资源80兆;继续累加任务3所需的内存资源20兆,并且累加结果80兆等于任务队列I当前可用的内存资源80兆,结束累加,将任务排序中最后累加的任务3之前的所有任务数量2+1=3确定为任务队列I可调度的任务数量。
[0087]又例如,任务队列2当前可用的内存资源为10兆,任务队列2中有2个任务:任务
5,任务6,并且两个任务按照任务属性排列顺序为:任务5,任务6。例如任务5所需的内存资源为5兆,任务6所需的内存资源为10兆。按照任务排序顺序,累加任务5所需的内存资源5兆,并且累加结果5兆小于任务队列2当前可用的内存资源10兆;继续累加任务6所需的内存资源10兆,累加结果15兆大于任务队列2当前可用的内存资源10兆,结束累力口,将任务排序中最后累加的解析任务之前的所有任务数量I确定为任务队列2可调度的任务数量。
[0088]再例如,任务队列3当前可用的内存资源为20兆,任务队列3中有2个任务:任务7,任务8,并且2个任务按照任务属性排列顺序为:任务8,任务7。例如任务8所需的内存资源为30兆,任务7所需的内存资源为10兆。按照任务排序顺序,累加任务8所需的内存资源30兆,并且累加结果30兆大于任务队列3当前可用的内存资源20兆,结束累加,将任务排序中最后累加的显示任务之前的所有任务数量O确定为任务队列3可调度的任务数量。
[0089]需要说明的是,此处并不对各个任务队列当前可用内存资源以及各个任务所需的内存资源的具体数值大小进行具体限定。例如,可以为20兆,也可以为21兆或者其它数值。另外,此处确定的各个任务队列中的任务数量可以是2个,也可以是3个或者其它个数,本实施例同样不对确定的各个任务队列可调度的任务数量进行具体限定。
[0090]306:根据各个任务队列可调度的任务数量及各个任务队列中的任务的排序结果调度对应的任务。
[0091]针对该步骤,在各个任务队列中的任务的排序结果中,调度步骤305中确定的各个任务队列可调度的任务数量的任务。
[0092]例如,以上述步骤305确定图2中的任务队列I可调度的任务数量为3,任务队列I中的任务的排列结果为:任务1,任务3,任务2,任务4为例,则可调度任务队列I中的前3个任务,即任务1,任务3,任务2 ;以上述步骤305确定图2中的任务队列2可调度的任务数量为1,任务队列2中的任务的排列结果为:任务5,任务6为例,则可调度任务队列2中的前I个任务,即任务5 ;以上述步骤305确定图2中的任务队列3可调度的任务数量为0,任务队列3中的任务的排列结果为:任务7,任务8为例,则可调度任务队列3中的O个任务,即不调度任务队列3中的任何任务。
[0093]本实施例提供的方法,通过将多个任务分别分配到对应的任务队列中;并对于任一任务队列中的任务按照任务属性进行排序;根据各个任务队列可调度的任务数量及各个任务队列中的任务的排序结果调度对应的任务,从而合理分配资源,提高任务响应时间及系统性能。
[0094]实施例三
[0095]本实施例提供了一种多任务调度的装置,该装置用于执行上述实施例一或施例二所提供的实现多任务调度的方法,参见图4,该装置包括:
[0096]分配模块401,用于将多个任务分别分配到对应的任务队列中,其中,任务队列为至少一个;
[0097]排序模块402,用于对于任一任务队列,将任一任务队列中的任务按照任务属性进行排序,其中,任务属性至少为优先级及所需的系统资源中的一种;
[0098]调度模块403,用于根据各个任务队列可调度的任务数量及各个任务队列中的任务的排序结果调度对应的任务。
[0099]进一步地,参见图5,分配模块401,包括:
[0100]确定单元4011,用于确定各个任务所需的系统资源,并确定各个任务队列当前可用的系统资源;
[0101]分配单元4012,用于根据确定的各个任务所需的系统资源与各个任务队列可用的系统资源将多个任务分别分配到对应的任务队列中。
[0102]进一步地,参见图6,任务属性为优先级及所需的系统资源时,排序模块402,包括:
[0103]第一排序单元4021,用于将任一任务队列中的任务按照优先级进行排序;
[0104]第二排序单元4022,用于当存在优先级相同的任务时,将优先级相同的任务按照所需的系统资源进行排序,得到任一任务队列中的任务的排序结果。
[0105]可选地,参见图7,任务属性为优先级及所需的系统资源时,排序模块402,包括:
[0106]第三排序单元4023,用于将任一任务队列中的任务按照所需的系统资源进行排序;[0107]第四排序单元4024,用于当存在所需的系统资源相等的任务时,将所需的系统资源相等的任务按照优先级进行排序,得到任一任务队列中的任务的排序结果。
[0108]进一步地,参见图8,该装置,还包括:
[0109]第一确定模块404,用于对于任一任务队列,确定任一任务队列当前可用的系统资源;
[0110]第二确定模块405,用于根据任一任务队列当前可用的系统资源及任一任务队列中的各个任务所需的系统资源确定任一任务队列可调度的任务数量。
[0111]本实施例提供的装置,通过将多个任务分别分配到对应的任务队列中;并对于任一任务队列中的任务按照任务属性进行排序;根据各个任务队列可调度的任务数量及各个任务队列中的任务的排序结果调度对应的任务,从而合理分配资源,提高任务响应时间及系统性能。
[0112]实施例四
[0113]本实施例提供了一种多任务调度的设备,该设备包括:多任务调度的装置。
[0114]其中,多任务调度的装置如上述实施例三提供的装置,详见上述实施例三。
[0115]综上所述,本实施例提供的设备,通过将多个任务分别分配到对应的任务队列中;并对于任一任务队列中的任务按照任务属性进行排序;根据各个任务队列可调度的任务数量及各个任务队列中的任务的排序结果调度对应的任务,从而合理分配资源,提高任务响应时间及系统性能。
[0116]需要说明的是:上述实施例提供的多任务调度的装置及设备在实现多任务调度时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置及设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的多任务调度的装置及设备与多任务调度的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0117]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0118]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0119]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种多任务调度的方法,其特征在于,所述方法包括: 将多个任务分别分配到对应的任务队列中,所述任务队列为至少一个; 对于任一任务队列,将所述任一任务队列中的任务按照任务属性进行排序; 根据各个任务队列可调度的任务数量及所述各个任务队列中的任务的排序结果调度对应的任务; 其中,所述任务属性至少为优先级及所需的系统资源中的一种。
2.根据权利要求1所述的方法,其特征在于,所述将多个任务分别分配到对应的任务队列中,包括: 确定各个任务所需的系统资源,并确定各个任务队列当前可用的系统资源; 根据确定的各个任务所需的系统资源与各个任务队列可用的系统资源将所述多个任务分别分配到对应的任务队列中。
3.根据权利要求1所述的方法,其特征在于,所述任务属性为优先级及所需的系统资源时,所述对于任一任务队列,将所述任一任务队列中的任务按照任务属性进行排序,包括: 将所述任一任务队列中的任务按照优先级进行排序; 如果存在优先级相同的任务,将优先级相同的任务按照所需的系统资源进行排序,得到所述任一任务队列中的任务的排序结果。
4.根据权利要求1所述的方法,其特征在于,所述任务属性为优先级及所需的系统资源时,所述对于任一任务队列,将所述任一任务队列中的任务按照任务属性进行排序,包括: 将所述任一任务队列中的任务按照所需的系统资源进行排序; 如果存在所需的系统资源相等的任务,将所需的系统资源相等的任务按照优先级进行排序,得到所述任一任务队列中的任务的排序结果。
5.根据权利要求1至4中任一权利要求所述的方法,其特征在于,所述根据各个任务队列可调度的任务数量及所述各个任务队列中的任务的排序结果调度对应的任务之前,还包括: 对于任一任务队列,确定所述任一任务队列当前可用的系统资源; 根据所述任一任务队列当前可用的系统资源及所述任一任务队列中的各个任务所需的系统资源确定所述任一任务队列可调度的任务数量。
6.一种多任务调度的装置,其特征在于,所述装置包括: 分配模块,用于将多个任务分别分配到对应的任务队列中,所述任务队列为至少一个; 排序模块,用于对于任一任务队列,将所述任一任务队列中的任务按照任务属性进行排序; 调度模块,用于根据各个任务队列可调度的任务数量及所述各个任务队列中的任务的排序结果调度对应的任务; 其中,所述任务属性至少为优先级及所需的系统资源中的一种。
7.根据权利要求6所述的装置,其特征在于,所述分配模块,包括: 确定单元,用于确定各个任务所需的系统资源,并确定各个任务队列当前可用的系统资源; 分配单元,用于根据确定的各个任务所需的系统资源与各个任务队列可用的系统资源将所述多个任务分别分配到对应的任务队列中。
8.根据权利要求6所述的装置,其特征在于,所述任务属性为优先级及所需的系统资源时,所述排序模块,包括: 第一排序单元,用于将所述任一任务队列中的任务按照优先级进行排序; 第二排序单元,用于当存在优先级相同的任务时,将优先级相同的任务按照所需的系统资源进行排序,得到所述任一任务队列中的任务的排序结果。
9.根据权利要求6所述的装置,其特征在于,所述任务属性为优先级及所需的系统资源时,所述排序模块,包括: 第三排序单元,用于将所述任一任务队列中的任务按照所需的系统资源进行排序;第四排序单元,用于当存在所需的系统资源相等的任务时,将所需的系统资源相等的任务按照优先级进行排序,得到所述任一任务队列中的任务的排序结果。
10.根据权利要求6至9中任一权利要求所述的装置,其特征在于,所述装置,还包括: 第一确定模块,用于对于任一任务队列,确定所述任一任务队列当前可用的系统资源; 第二确定模块,用于根 据所述任一任务队列当前可用的系统资源及所述任一任务队列中的各个任务所需的系统资源确定所述任一任务队列可调度的任务数量。
【文档编号】G06F9/48GK104035818SQ201310068965
【公开日】2014年9月10日 申请日期:2013年3月4日 优先权日:2013年3月4日
【发明者】赵千千, 薄川川, 刘天扬 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1