专利摘要
本发明公开了一种基于优先级的作业调度优化方法、设备、存储介质及装置,该方法包括:获取待调度作业及待调度作业的预计处理时长;将待调度作业划分为多个待调度队列,获取各待调度队列的优先级阈值;每隔预设时长根据待调度作业的当前等待时长和预计处理时长计算待调度作业的当前优先级;判断当前优先级是否小于待调度作业所属的待调度队列的优先级阈值;若不小于则将待调度作业转入预设就绪队列中,对预设就绪队列中的待调度作业依次进行调度。由于根据等待时间和处理时间计算优先级,优先调度优先级高于优先级阈值的作业,能够优先处理短作业,提高系统的吞吐量和调度效率,能够优先处理等待时长较长的作业,兼顾作业调度的紧急性和公平性。
权利要求
1.一种基于优先级的作业调度优化方法,其特征在于,所述基于优先级的作业调度优化方法包括以下步骤:
获取待调度作业及所述待调度作业的预计处理时长;
根据所述预计处理时长将所述待调度作业划分为多个待调度队列,并获取各待调度队列的优先级阈值;
每隔预设时长获取所述待调度作业的当前等待时长,并根据所述当前等待时长和所述预计处理时长计算所述待调度作业的当前优先级;
将所述待调度作业所属的待调度队列的优先级阈值作为当前阈值,并判断所述当前优先级是否小于所述当前阈值;
若所述当前优先级不小于所述当前阈值,则将所述待调度作业转入预设就绪队列中,并对所述预设就绪队列中的待调度作业依次进行调度;
所述每隔预设时长获取所述待调度作业的当前等待时长,并根据所述当前等待时长和所述预计处理时长计算所述待调度作业的当前优先级,具体包括:
获取所述待调度作业的初始优先级,并将所述初始优先级最高的待调度作业转入预设就绪队列中;
每隔预设时长获取所述待调度作业的当前等待时长;
计算所述待调度作业的当前等待时长与预计处理时长的第一商值,并计算所述待调度作业的预计处理时长与临界处理时长的第二商值,其中,所述临界处理时长为区分预计处理时长长短的临界值;
获取所述第一商值的第一预设权重因子和所述第二商值的第二预设权重因子;
根据所述第一商值、所述第一预设权重因子、所述第二商值、所述第二预设权重因子以及所述待调度作业的初始优先级通过预设计算公式获得所述待调度作业的当前优先级;
其中,所述预设计算公式为:
其中,P为当前优先级,P0为初始优先级,λ为系数,一般为经验值,α为第一预设权重因子,β为第二预设权重因子,W为当前等待时长,E为预计处理时长,C为临界处理时长。
2.如权利要求1所述的基于优先级的作业调度优化方法,其特征在于,所述预设就绪队列为堆数据结构;
相应地,所述若所述当前优先级不小于所述当前阈值,则将所述待调度作业转入预设就绪队列中,并对所述预设就绪队列中的待调度作业依次进行调度,具体包括:
若所述当前优先级不小于所述当前阈值,则根据当前时刻为所述待调度作业设置顺序号,并将所述顺序号存储至所述堆数据结构中;
从所述堆数据结构中提取堆顶节点的堆顶顺序号,并将提取后的堆数据结构中的顺序号前移一个节点;
对所述堆顶顺序号对应的待调度作业进行调度。
3.如权利要求1所述的基于优先级的作业调度优化方法,其特征在于,所述根据所述预计处理时长将所述待调度作业划分为多个待调度队列,并获取各待调度队列的优先级阈值,具体包括:
根据所述预计处理时长获得若干个临界处理时长,并获取若干个临界作业数量,其中,所述临界作业数量为区分作业数量多少的临界值;
根据所述预计处理时长和所述临界处理时长的大小对所述待调度作业进行分组;
根据所述临界作业数量将分组后的待调度作业划分为多个待调度队列。
4.如权利要求1所述的基于优先级的作业调度优化方法,其特征在于,所述每隔预设时长获取所述待调度作业的当前等待时长之前,所述基于优先级的作业调度优化方法还包括:
获取所述待调度作业的作业总数;
计算所述预计处理时长的时长平均数和所述作业总数的第三商值,并将所述第三商值作为预设时长。
5.如权利要求1-3中任一项所述的基于优先级的作业调度优化方法,其特征在于,所述获取待调度作业及所述待调度作业的预计处理时长,具体包括:
在接收到调度指令时,从所述调度指令中提取待调度作业,并识别所述待调度作业对应的作业类型;
若所述作业类型为静态文件,则从预设存储区域内获取所述待调度作业;
若所述作业类型为动态文件,则获取所述待调度作业的作业大小,并根据所述作业大小计算所述待调度作业的预计处理时长。
6.一种基于优先级的作业调度优化设备,其特征在于,所述基于优先级的作业调度优化设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于优先级的作业调度优化程序,所述基于优先级的作业调度优化程序被所述处理器执行时实现如权利要求1至5中任一项所述的基于优先级的作业调度优化方法的步骤。
7.一种存储介质,其特征在于,所述存储介质上存储有基于优先级的作业调度优化程序,所述基于优先级的作业调度优化程序被处理器执行时实现如权利要求1至5中任一项所述的基于优先级的作业调度优化方法的步骤。
8.一种基于优先级的作业调度优化装置,其特征在于,所述基于优先级的作业调度优化装置包括:
获取模块,用于获取待调度作业及所述待调度作业的预计处理时长;
划分模块,用于根据所述预计处理时长将所述待调度作业划分为多个待调度队列,并获取各待调度队列的优先级阈值;
计算模块,用于每隔预设时长获取所述待调度作业的当前等待时长,并根据所述当前等待时长和所述预计处理时长计算所述待调度作业的当前优先级;
判断模块,用于将所述待调度作业所属的待调度队列的优先级阈值作为当前阈值,并判断所述当前优先级是否小于所述当前阈值;
调度模块,用于若所述当前优先级不小于所述当前阈值,则将所述待调度作业转入预设就绪队列中,并对所述预设就绪队列中的待调度作业依次进行调度;
其中,所述计算模块,还用于获取所述待调度作业的初始优先级,并将所述初始优先级最高的待调度作业转入预设就绪队列中;每隔预设时长获取所述待调度作业的当前等待时长;计算所述待调度作业的当前等待时长与预计处理时长的第一商值,并计算所述待调度作业的预计处理时长与临界处理时长的第二商值,其中,所述临界处理时长为区分预计处理时长长短的临界值;获取所述第一商值的第一预设权重因子和所述第二商值的第二预设权重因子;根据所述第一商值、所述第一预设权重因子、所述第二商值、所述第二预设权重因子以及所述待调度作业的初始优先级通过预设计算公式获得所述待调度作业的当前优先级;其中,所述预设计算公式为:
其中,P为当前优先级,P0为初始优先级,λ为系数,一般为经验值,α为第一预设权重因子,β为第二预设权重因子,W为当前等待时长,E为预计处理时长,C为临界处理时长。
说明书
技术领域
本发明涉及作业调度的技术领域,尤其涉及一种基于优先级的作业调度优化方法、设备、存储介质及装置。
背景技术
随着互联网技术的不断发展,网页展示内容越来越丰富,其处理过程也越来越复杂,最终导致页面加载过程变的越来越慢。用户希望页面内容丰富且交互顺畅,页面渲染速度是页面性能的直接体现,影响着网站的用户使用量,是影响用户体验的关键因素。
在页面渲染过程中会加载大量文件和图像,将每一个文件和图像作为一个作业,由于作业的大小不同,若根据先来先服务策略进行作业调度,若排在队列前的作业比排在队列后的作业大,较小的作业等待的时间会比较长,导致系统吞吐量降低,作业调度效率较低。
因此,如何提高作业调度的效率是亟待解决的技术问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种基于优先级的作业调度优化方法、设备、存储介质及装置,旨在解决现有技术中如何提高作业调度的效率的技术问题。
为实现上述目的,本发明提供一种基于优先级的作业调度优化方法,所述基于优先级的作业调度优化方法包括以下步骤:
获取待调度作业及所述待调度作业的预计处理时长;
根据所述预计处理时长将所述待调度作业划分为多个待调度队列,并获取各待调度队列的优先级阈值;
每隔预设时长获取所述待调度作业的当前等待时长,并根据所述当前等待时长和所述预计处理时长计算所述待调度作业的当前优先级;
将所述待调度作业所属的待调度队列的优先级阈值作为当前阈值,并判断所述当前优先级是否小于所述当前阈值;
若所述当前优先级不小于所述当前阈值,则将所述待调度作业转入预设就绪队列中,并对所述预设就绪队列中的待调度作业依次进行调度。
优选地,所述预设就绪队列为堆数据结构;
相应地,所述若所述当前优先级不小于所述当前阈值,则将所述待调度作业转入预设就绪队列中,并对所述预设就绪队列中的待调度作业依次进行调度,具体包括:
若所述当前优先级不小于所述当前阈值,则根据当前时刻为所述待调度作业设置顺序号,并将所述顺序号存储至所述堆数据结构中;
从所述堆数据结构中提取堆顶节点的堆顶顺序号,并将提取后的堆数据结构中的顺序号前移一个节点;
对所述堆顶顺序号对应的待调度作业进行调度。
优选地,所述根据所述预计处理时长将所述待调度作业划分为多个待调度队列,并获取各待调度队列的优先级阈值,具体包括:
根据所述预计处理时长获得若干个临界处理时长,并获取若干个临界作业数量;
根据所述预计处理时长和所述临界处理时长的大小对所述待调度作业进行分组;
根据所述临界作业数量将分组后的待调度作业划分为多个待调度队列。
优选地,所述每隔预设时长获取所述待调度作业的当前等待时长,并根据所述当前等待时长和所述预计处理时长计算所述待调度作业的当前优先级,具体包括:
获取所述待调度作业的初始优先级,并将所述初始优先级最高的待调度作业转入预设就绪队列中;
每隔预设时长获取所述待调度作业的当前等待时长;
根据所述待调度作业的当前等待时长和预计处理时长计算所述待调度作业的当前优先级增量;
将所述待调度作业的初始优先级与所述待调度作业的当前优先级增量进行求和,获得所述待调度作业的当前优先级。
优选地,所述根据所述待调度作业的当前等待时长和预计处理时长计算所述待调度作业的当前优先级增量,具体包括:
计算所述待调度作业的当前等待时长与预计处理时长的第一商值,并计算所述待调度作业的预计处理时长与所述临界处理时长的第二商值;
获取所述第一商值的第一预设权重因子和所述第二商值的第二预设权重因子;
对所述第一商值、所述第一预设权重因子、所述第二商值和所述第二预设权重因子进行加权处理,获得所述待调度作业的当前优先级增量。
优选地,所述每隔预设时长获取所述待调度作业的当前等待时长之前,所述基于优先级的作业调度优化方法还包括:
获取所述待调度作业的作业总数;
计算所述时长平均数和所述作业总数的第三商值,并将所述第三商值作为预设时长。
优选地,所述获取待调度作业及所述待调度作业的预计处理时长,具体包括:
在接收到调度指令时,从所述调度指令中提取待调度作业,并识别所述待调度作业对应的作业类型;
若所述作业类型为静态文件,则从预设存储区域内获取所述待调度作业;
若所述作业类型为动态文件,则获取所述待调度作业的作业大小,并根据所述作业大小计算所述待调度作业的预计处理时长。
此外,为实现上述目的,本发明还提出一种基于优先级的作业调度优化设备,所述基于优先级的作业调度优化设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于优先级的作业调度优化程序,所述基于优先级的作业调度优化程序配置为实现如上文所述的基于优先级的作业调度优化方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有基于优先级的作业调度优化程序,所述基于优先级的作业调度优化程序被处理器执行时实现如上文所述的基于优先级的作业调度优化方法的步骤。
此外,为实现上述目的,本发明还提出一种基于优先级的作业调度优化装置,所述基于优先级的作业调度优化装置包括:
获取模块,用于获取待调度作业及所述待调度作业的预计处理时长;
划分模块,用于根据所述预计处理时长将所述待调度作业划分为多个待调度队列,并获取各待调度队列的优先级阈值;
计算模块,用于每隔预设时长获取所述待调度作业的当前等待时长,并根据所述当前等待时长和所述预计处理时长计算所述待调度作业的当前优先级;
判断模块,用于将所述待调度作业所属的待调度队列的优先级阈值作为当前阈值,并判断所述当前优先级是否小于所述当前阈值;
调度模块,用于若所述当前优先级不小于所述当前阈值,则将所述待调度作业转入预设就绪队列中,并对所述预设就绪队列中的待调度作业依次进行调度。
本发明中,通过获取待调度作业及所述待调度作业的预计处理时长;根据所述预计处理时长将所述待调度作业划分为多个待调度队列,并获取各待调度队列的优先级阈值;每隔预设时长获取所述待调度作业的当前等待时长,并根据所述当前等待时长和所述预计处理时长计算所述待调度作业的当前优先级;将所述待调度作业所属的待调度队列的优先级阈值作为当前阈值,并判断所述当前优先级是否小于所述当前阈值;若所述当前优先级不小于所述当前阈值,则将所述待调度作业转入预设就绪队列中,并对所述预设就绪队列中的待调度作业依次进行调度。由于根据等待时间和处理时间计算优先级,并优先调度优先级高于优先级阈值的作业,能够优先处理短作业,提高了系统的吞吐量和作业调度效率,并能够优先处理等待时长较长的作业,兼顾了作业调度的紧急性和公平性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的基于优先级的作业调度优化设备的结构示意图;
图2为本发明基于优先级的作业调度优化方法第一实施例的流程示意图;
图3为本发明基于优先级的作业调度优化方法第二实施例的流程示意图;
图4为本发明基于优先级的作业调度优化方法第三实施例的流程示意图;
图5为本发明基于优先级的作业调度优化装置第一实施例的功能模块图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的基于优先级的作业调度优化设备结构示意图。
如图1所示,该基于优先级的作业调度优化设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display),可选用户接口1003还可以包括标准的有线接口、无线接口,对于用户接口1003的有线接口在本发明中可为USB接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的存储器(Non-volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对基于优先级的作业调度优化设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于优先级的作业调度优化程序。
在图1所示的基于优先级的作业调度优化设备中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接用户设备;所述基于优先级的作业调度优化设备通过处理器1001调用存储器1005中存储的基于优先级的作业调度优化程序,并执行本发明实施例提供的基于优先级的作业调度优化方法。
所述基于优先级的作业调度优化设备通过处理器1001调用存储器1005中存储的基于优先级的作业调度优化程序,并执行以下操作:
获取待调度作业及所述待调度作业的预计处理时长;
根据所述预计处理时长将所述待调度作业划分为多个待调度队列,并获取各待调度队列的优先级阈值;
每隔预设时长获取所述待调度作业的当前等待时长,并根据所述当前等待时长和所述预计处理时长计算所述待调度作业的当前优先级;
将所述待调度作业所属的待调度队列的优先级阈值作为当前阈值,并判断所述当前优先级是否小于所述当前阈值;
若所述当前优先级不小于所述当前阈值,则将所述待调度作业转入预设就绪队列中,并对所述预设就绪队列中的待调度作业依次进行调度。
进一步地,所述预设就绪队列为堆数据结构;
所述基于优先级的作业调度优化设备通过处理器1001调用存储器1005中存储的基于优先级的作业调度优化程序,还执行以下操作:
若所述当前优先级不小于所述当前阈值,则根据当前时刻为所述待调度作业设置顺序号,并将所述顺序号存储至所述堆数据结构中;
从所述堆数据结构中提取堆顶节点的堆顶顺序号,并将提取后的堆数据结构中的顺序号前移一个节点;
对所述堆顶顺序号对应的待调度作业进行调度。
进一步地,所述基于优先级的作业调度优化设备通过处理器1001调用存储器1005中存储的基于优先级的作业调度优化程序,还执行以下操作:
根据所述预计处理时长获得若干个临界处理时长,并获取若干个临界作业数量;
根据所述预计处理时长和所述临界处理时长的大小对所述待调度作业进行分组;
根据所述临界作业数量将分组后的待调度作业划分为多个待调度队列。
进一步地,所述基于优先级的作业调度优化设备通过处理器1001调用存储器1005中存储的基于优先级的作业调度优化程序,还执行以下操作:
获取所述待调度作业的初始优先级,并将所述初始优先级最高的待调度作业转入预设就绪队列中;
每隔预设时长获取所述待调度作业的当前等待时长;
根据所述待调度作业的当前等待时长和预计处理时长计算所述待调度作业的当前优先级增量;
将所述待调度作业的初始优先级与所述待调度作业的当前优先级增量进行求和,获得所述待调度作业的当前优先级。
进一步地,所述基于优先级的作业调度优化设备通过处理器1001调用存储器1005中存储的基于优先级的作业调度优化程序,还执行以下操作:
计算所述待调度作业的当前等待时长与预计处理时长的第一商值,并计算所述待调度作业的预计处理时长与所述临界处理时长的第二商值;
获取所述第一商值的第一预设权重因子和所述第二商值的第二预设权重因子;
对所述第一商值、所述第一预设权重因子、所述第二商值和所述第二预设权重因子进行加权处理,获得所述待调度作业的当前优先级增量。
进一步地,所述基于优先级的作业调度优化设备通过处理器1001调用存储器1005中存储的基于优先级的作业调度优化程序,还执行以下操作:
获取所述待调度作业的作业总数;
计算所述时长平均数和所述作业总数的第三商值,并将所述第三商值作为预设时长。
进一步地,所述基于优先级的作业调度优化设备通过处理器1001调用存储器1005中存储的基于优先级的作业调度优化程序,还执行以下操作:
在接收到调度指令时,从所述调度指令中提取待调度作业,并识别所述待调度作业对应的作业类型;
若所述作业类型为静态文件,则从预设存储区域内获取所述待调度作业;
若所述作业类型为动态文件,则获取所述待调度作业的作业大小,并根据所述作业大小计算所述待调度作业的预计处理时长。
本实施例中,通过获取待调度作业及所述待调度作业的预计处理时长;根据所述预计处理时长将所述待调度作业划分为多个待调度队列,并获取各待调度队列的优先级阈值;每隔预设时长获取所述待调度作业的当前等待时长,并根据所述当前等待时长和所述预计处理时长计算所述待调度作业的当前优先级;将所述待调度作业所属的待调度队列的优先级阈值作为当前阈值,并判断所述当前优先级是否小于所述当前阈值;若所述当前优先级不小于所述当前阈值,则将所述待调度作业转入预设就绪队列中,并对所述预设就绪队列中的待调度作业依次进行调度。由于根据等待时间和处理时间计算优先级,并优先调度优先级高于优先级阈值的作业,能够优先处理短作业,提高了系统的吞吐量和作业调度效率,并能够优先处理等待时长较长的作业,兼顾了作业调度的紧急性和公平性。
基于上述硬件结构,提出本发明基于优先级的作业调度优化方法的实施例。
参照图2,图2为本发明基于优先级的作业调度优化方法第一实施例的流程示意图,提出本发明基于优先级的作业调度优化方法第一实施例。
在第一实施例中,所述基于优先级的作业调度优化方法包括以下步骤:
步骤S10:获取待调度作业及所述待调度作业的预计处理时长。
需要说明的是,本实施例的执行主体是所述基于优先级的作业调度优化设备,所述基于优先级的作业调度优化设备可以是智能手机、个人计算机或者服务器等电子设备,本实施例对此不加以限制。所述待调度作业为当次需要调度的作业,所述待调度作业包括但不限于:文档、JavaScript文件、层叠样式表(Cascading Style Sheets,CSS)文件以及图像。所述预计处理时长为所述待调度作业的处理时长估计值,各待调度作业的大小不等,因而各待调度作业的预计处理时长不等,本实施例将根据所述待调度作业的作业大小估计所述待调度作业的预计处理时长。
在具体实现中,在接收到调度指令时,从所述调度指令中提取待调度作业,并识别所述待调度作业对应的作业类型;若所述作业类型为静态文件,则从预设存储区域内获取所述待调度作业;若所述作业类型为动态文件,则获取所述待调度作业的作业大小,并根据所述作业大小计算所述待调度作业的预计处理时长。
可以理解的是,本实施例将通过缓存静态文件,在需要加载静态文件时直接从缓存中提取的方式减少渲染请求次数。从缓存角度来看,静态文件可以直接从缓存中取出数据渲染页面,而动态文件则通过优化后的调度算法加载资源。首次加载页面时缓存静态文件,如若再次加载时,根据所述待调度作业对应的作业类型判断是否是静态文件,若是则直接从缓存中提取待调度作业进行渲染,提高渲染效率。若不是则获取所述待调度作业的作业大小,并根据所述作业大小计算所述待调度作业的预计处理时长,根据预计处理时长优化作业调度顺序,以提高页面渲染速度。
步骤S20:根据所述预计处理时长将所述待调度作业划分为多个待调度队列,并获取各待调度队列的优先级阈值。
应当理解的是,优先级是计算机分时操作系统在处理多个作业程序时,决定各个作业程序接受系统资源的优先等级的参数,优先级高的作业将在优先级低的作业之前进行调度处理。而传统的优先级调度算法在保证紧急作业优先完成的情况下,对其它作业较不公平,为了解决作业的优先级与公平性之间的矛盾,将所述待调度作业划分为多个待调度队列,并为各待调度队列设置不同的优先级阈值,当待调度队列内的待调度作业的优先级达到该待调度队列的优先级阈值时,对该调度作业进行调度,从而兼顾作业调度的紧急性与公平性。
在具体实现中,根据所述预计处理时长对所述待调度作业进行队列划分,例如,计算所述预计处理时长的平均数,将所述预计处理时长大于平均数的待调度作业划分为待调度队列A,将所述预计处理时长小于或等于平均数的待调度作业划分为待调度队列B。并根据所述待调度队列中的待调度作业的预计处理时长设置队列的优先级阈值,例如,将待调度队列A的优先级阈值设为8,将待调度队列B的优先级阈值设为4。
步骤S30:每隔预设时长获取所述待调度作业的当前等待时长,并根据所述当前等待时长和所述预计处理时长计算所述待调度作业的当前优先级。
需要说明的是,所述当前等待时长是从作业调度初始时刻开始至当前时刻的时长,一般的,预计处理时长较短的待调度作业优先调度,因此,预计处理时长较长的待调度作业将会等待较长时间,而为了避免长作业饥饿,将作业的等待时间计入优先级运算中,根据所述当前等待时长和所述预计处理时长计算所述待调度作业的当前优先级,所述待调度作业的当前优先级与所述待调度作业的当前等待时长为正相关关系,当所述待调度作业的当前等待时长越长,该待调度作业的当前优先级将越高,从而提高该待调度作业的调度几率。
步骤S40:将所述待调度作业所属的待调度队列的优先级阈值作为当前阈值,并判断所述当前优先级是否小于所述当前阈值。
需要说明的是,将所述待调度作业所属的待调度队列的优先级阈值作为当前阈值,并判断所述当前优先级是否小于所述当前阈值,若所述当前优先级小于所述当前阈值,则说明所述待调度作业的优先级较低,无法得到调度。
步骤S50:若所述当前优先级不小于所述当前阈值,则将所述待调度作业转入预设就绪队列中,并对所述预设就绪队列中的待调度作业依次进行调度。
可以理解的是,若所述当前优先级不小于所述当前阈值,则说明所述待调度队列在当前时刻的优先级较高,将所述待调度作业转入预设就绪队列中准备进行调度,并依次对所述预设就绪队列中的待调度作业进行调度。
本实施例中,通过获取待调度作业及所述待调度作业的预计处理时长;根据所述预计处理时长将所述待调度作业划分为多个待调度队列,并获取各待调度队列的优先级阈值;每隔预设时长获取所述待调度作业的当前等待时长,并根据所述当前等待时长和所述预计处理时长计算所述待调度作业的当前优先级;将所述待调度作业所属的待调度队列的优先级阈值作为当前阈值,并判断所述当前优先级是否小于所述当前阈值;若所述当前优先级不小于所述当前阈值,则将所述待调度作业转入预设就绪队列中,并对所述预设就绪队列中的待调度作业依次进行调度。由于根据等待时间和处理时间计算优先级,并优先调度优先级高于优先级阈值的作业,能够优先处理短作业,提高了系统的吞吐量和作业调度效率和作业调度效率,并能够优先处理等待时长较长的作业,兼顾了作业调度的紧急性和公平性。
参照图3,图3为本发明基于优先级的作业调度优化方法第二实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明基于优先级的作业调度优化方法的第二实施例。
在第二实施例中,所述预设就绪队列为堆数据结构;
相应地,所述步骤S50,具体包括:
步骤S501:若所述当前优先级不小于所述当前阈值,则根据当前时刻为所述待调度作业设置顺序号,并将所述顺序号存储至所述堆数据结构中;
需要说明的是,堆数据结构为计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。由于每个预设时间将会转入若干待调度作业至所述堆数据结构中,根据待调度作业进入堆数据结构的时刻为所述待调度作业设置顺序号,先进入堆数据结构的待调度作业的顺序号靠前,将所述顺序号按照堆数据结构的存储顺序存储至所述堆数据结构中,并建立待调度作业与顺序号之间的对应关系。
步骤S502:从所述堆数据结构中提取堆顶节点的堆顶顺序号,并将提取后的堆数据结构中的顺序号前移一个节点。
可以理解的是,在所述堆数据结构中按照从上至下、从左至右的顺序存储顺序号,提取堆顶节点的堆顶顺序号,所述堆数据结构缺失一个顺序号,则将提取后的堆数据结构中的顺序号前移一个节点,以保证所述堆数据结构的完整性。
步骤S503:对所述堆顶顺序号对应的待调度作业进行调度。
应当理解的是,对所述堆顶顺序号对应的待调度作业进行调度,并在调度完成后返回所述从所述堆数据结构中提取堆顶节点的堆顶顺序号的步骤,以按照作业的优先级不断调度堆顶顺序号对应的待调度作业,提高调度效率。
进一步地,所述步骤S20,具体包括:
根据所述预计处理时长获得若干个临界处理时长,并获取若干个临界作业数量;
根据所述预计处理时长和所述临界处理时长的大小对所述待调度作业进行分组;
根据所述临界作业数量将分组后的待调度作业划分为多个待调度队列。
需要说明的是,所述临界处理时长为区分预计处理时长长短的临界值,所述临界作业数量为区分作业数量多少的临界值,根据所述临界处理时长可将所述待调度作业划分为长作业组和短作业组,根据所述临界作业数量可将所述待调度作业划分为大量作业组和少量作业组,从而根据所述临界处理时长和所述临界作业数量可将所述待调度作业划分为多个待调度队列。
进一步地,所述临界处理时长数量为1;
相应地,所述根据所述预计处理时长获得若干个临界处理时长,具体包括:
统计所述预计处理时长的时长平均数和时长中位数;
将所述时长平均数和所述时长中位数中的最小值作为临界处理时长;
相应地,所述根据所述预计处理时长和所述临界处理时长的大小对所述待调度作业进行分组,具体包括:
将所述预计处理时长大于所述临界处理时长的待调度作业划分为待调度长作业,并将所述预计处理时长小于等于所述临界处理时长的待调度作业划分为待调度短作业。
可以理解的是,当所述临界处理时长数量为1,且所述临界作业数量为1时,队列划分结果为:预计处理时长小于临界处理时长,且队列作业数量小于临界作业数量的待调度队列为队列Q-1;预计处理时长不小于临界处理时长,且队列作业数量小于临界作业数量的待调度队列为队列Q-2;预计处理时长小于临界处理时长,且队列作业数量不小于临界作业数量的待调度队列为队列Q-3;预计处理时长不小于临界处理时长,且队列作业数量不小于临界作业数量的待调度队列为队列Q-4。
在具体实现中,为各待调度队列设置不同的优先级阈值,例如,队列Q-1的优先级阈值设为8,队列Q-2的优先级阈值设为4,队列Q-3的优先级阈值设为2,队列Q-4的优先级阈值设为1,优先级阈值越高,代表该队列的作业的优先级越低。
在本实施例中,通过将待调度作业顺序存储至堆数据结构中,从而保证待调度作业按照优先级进行调度,提高了作业调度效率。并通过临界处理时长和临界作业数量将待调度作业划分为多个待调度作业,从而区别各待调度队列的优先级。
参照图4,图4为本发明基于优先级的作业调度优化方法第三实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明基于优先级的作业调度优化方法的第三实施例。
在第三实施例中,所述步骤S30,包括:
步骤S301:获取所述待调度作业的初始优先级,并将所述初始优先级最高的待调度作业转入预设就绪队列中。
需要说明的是,在作业调度的初始时刻,根据所述待调度作业的初始优先级进行作业调度,用户根据所述待调度作业的作业需求设置初始优先级,并将所述初始优先级最高的待调度作业转入预设就绪队列中进行调度。
步骤S302:每隔预设时长获取所述待调度作业的当前等待时长。
可以理解的是,在获取所述待调度作业的初始优先级之后,将每隔预设时长重新计算所述待调度作业的当前优先级,以对所述待调度作业的优先级进行更新,提高作业调度的准确性。
步骤S303:根据所述待调度作业的当前等待时长和预计处理时长计算所述待调度作业的当前优先级增量;
在具体实现中,计算所述待调度作业的当前等待时长与预计处理时长的第一商值,并计算所述待调度作业的预计处理时长与所述临界处理时长的第二商值;获取所述第一商值的第一预设权重因子和所述第二商值的第二预设权重因子;对所述第一商值、所述第一预设权重因子、所述第二商值和所述第二预设权重因子进行加权处理,获得所述待调度作业的当前优先级增量。
步骤S304:将所述待调度作业的初始优先级与所述待调度作业的当前优先级增量进行求和,获得所述待调度作业的当前优先级。
应当理解的是,所述待调度作业的当前优先级的计算公式为:
其中,P为当前优先级,P0为初始优先级,λ为系数,一般为经验值,α为第一预设权重因子,β为第二预设权重因子,W为当前等待时长,E为预计处理时长,C为临界处理时长。
进一步地,所述步骤S302之前,所述基于优先级的作业调度优化方法还包括:
获取所述待调度作业的作业总数;
计算所述时长平均数和所述作业总数的第三商值,并将所述第三商值作为预设时长。
需要说明的是,所述时长平均数和所述作业总数计算预设时长,每隔预设时长对待调度作业的优先级进行更新,能够保证更新的时效性,所述预设时长的计算公式为:
其中,T为预设时长,A为时长平均数,n为作业总数。
在本实施例中,通过获取所述待调度作业的初始优先级,并将所述初始优先级最高的待调度作业转入预设就绪队列中;每隔预设时长获取所述待调度作业的当前等待时长;根据所述待调度作业的当前等待时长和预计处理时长计算所述待调度作业的当前优先级增量;将所述待调度作业的初始优先级与所述待调度作业的当前优先级增量进行求和,获得所述待调度作业的当前优先级。以固定周期更新待调度作业的优先级,保证了当前优先级的时效性。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有基于优先级的作业调度优化程序,所述基于优先级的作业调度优化程序被处理器执行时实现如下步骤:
获取待调度作业及所述待调度作业的预计处理时长;
根据所述预计处理时长将所述待调度作业划分为多个待调度队列,并获取各待调度队列的优先级阈值;
每隔预设时长获取所述待调度作业的当前等待时长,并根据所述当前等待时长和所述预计处理时长计算所述待调度作业的当前优先级;
将所述待调度作业所属的待调度队列的优先级阈值作为当前阈值,并判断所述当前优先级是否小于所述当前阈值;
若所述当前优先级不小于所述当前阈值,则将所述待调度作业转入预设就绪队列中,并对所述预设就绪队列中的待调度作业依次进行调度。
进一步地,所述预设就绪队列为堆数据结构;所述基于优先级的作业调度优化程序被处理器执行时还实现如下操作:
若所述当前优先级不小于所述当前阈值,则根据当前时刻为所述待调度作业设置顺序号,并将所述顺序号存储至所述堆数据结构中;
从所述堆数据结构中提取堆顶节点的堆顶顺序号,并将提取后的堆数据结构中的顺序号前移一个节点;
对所述堆顶顺序号对应的待调度作业进行调度。
进一步地,所述基于优先级的作业调度优化程序被处理器执行时还实现如下操作:
根据所述预计处理时长获得若干个临界处理时长,并获取若干个临界作业数量;
根据所述预计处理时长和所述临界处理时长的大小对所述待调度作业进行分组;
根据所述临界作业数量将分组后的待调度作业划分为多个待调度队列。
进一步地,所述基于优先级的作业调度优化程序被处理器执行时还实现如下操作:
获取所述待调度作业的初始优先级,并将所述初始优先级最高的待调度作业转入预设就绪队列中;
每隔预设时长获取所述待调度作业的当前等待时长;
根据所述待调度作业的当前等待时长和预计处理时长计算所述待调度作业的当前优先级增量;
将所述待调度作业的初始优先级与所述待调度作业的当前优先级增量进行求和,获得所述待调度作业的当前优先级。
进一步地,所述基于优先级的作业调度优化程序被处理器执行时还实现如下操作:
计算所述待调度作业的当前等待时长与预计处理时长的第一商值,并计算所述待调度作业的预计处理时长与所述临界处理时长的第二商值;
获取所述第一商值的第一预设权重因子和所述第二商值的第二预设权重因子;
对所述第一商值、所述第一预设权重因子、所述第二商值和所述第二预设权重因子进行加权处理,获得所述待调度作业的当前优先级增量。
进一步地,所述基于优先级的作业调度优化程序被处理器执行时还实现如下操作:
获取所述待调度作业的作业总数;
计算所述时长平均数和所述作业总数的第三商值,并将所述第三商值作为预设时长。
进一步地,所述基于优先级的作业调度优化程序被处理器执行时还实现如下操作:
在接收到调度指令时,从所述调度指令中提取待调度作业,并识别所述待调度作业对应的作业类型;
若所述作业类型为静态文件,则从预设存储区域内获取所述待调度作业;
若所述作业类型为动态文件,则获取所述待调度作业的作业大小,并根据所述作业大小计算所述待调度作业的预计处理时长。
本实施例中,通过获取待调度作业及所述待调度作业的预计处理时长;根据所述预计处理时长将所述待调度作业划分为多个待调度队列,并获取各待调度队列的优先级阈值;每隔预设时长获取所述待调度作业的当前等待时长,并根据所述当前等待时长和所述预计处理时长计算所述待调度作业的当前优先级;将所述待调度作业所属的待调度队列的优先级阈值作为当前阈值,并判断所述当前优先级是否小于所述当前阈值;若所述当前优先级不小于所述当前阈值,则将所述待调度作业转入预设就绪队列中,并对所述预设就绪队列中的待调度作业依次进行调度。由于根据等待时间和处理时间计算优先级,并优先调度优先级高于优先级阈值的作业,能够优先处理短作业,提高了系统的吞吐量和作业调度效率,并能够优先处理等待时长较长的作业,兼顾了作业调度的紧急性和公平性。
此外,参照图5,本发明实施例还提出一种基于优先级的作业调度优化装置,所述基于优先级的作业调度优化装置包括:
获取模块10,用于获取待调度作业及所述待调度作业的预计处理时长。
需要说明的是,所述待调度作业为当次需要调度的作业,所述待调度作业包括但不限于:文档、JavaScript文件、层叠样式表(Cascading Style Sheets,CSS)文件以及图像。所述预计处理时长为所述待调度作业的处理时长估计值,各待调度作业的大小不等,因而各待调度作业的预计处理时长不等,本实施例将根据所述待调度作业的作业大小估计所述待调度作业的预计处理时长。
在具体实现中,在接收到调度指令时,从所述调度指令中提取待调度作业,并识别所述待调度作业对应的作业类型;若所述作业类型为静态文件,则从预设存储区域内获取所述待调度作业;若所述作业类型为动态文件,则获取所述待调度作业的作业大小,并根据所述作业大小计算所述待调度作业的预计处理时长。
可以理解的是,本实施例将通过缓存静态文件,在需要加载静态文件时直接从缓存中提取的方式减少渲染请求次数。从缓存角度来看,静态文件可以直接从缓存中取出数据渲染页面,而动态文件则通过优化后的调度算法加载资源。首次加载页面时缓存静态文件,如若再次加载时,根据所述待调度作业对应的作业类型判断是否是静态文件,若是则直接从缓存中提取待调度作业进行渲染,提高渲染效率。若不是则获取所述待调度作业的作业大小,并根据所述作业大小计算所述待调度作业的预计处理时长,根据预计处理时长优化作业调度顺序,以提高页面渲染速度。
划分模块20,用于根据所述预计处理时长将所述待调度作业划分为多个待调度队列,并获取各待调度队列的优先级阈值。
应当理解的是,优先级是计算机分时操作系统在处理多个作业程序时,决定各个作业程序接受系统资源的优先等级的参数,优先级高的作业将在优先级低的作业之前进行调度处理。而传统的优先级调度算法在保证紧急作业优先完成的情况下,对其它作业较不公平,为了解决作业的优先级与公平性之间的矛盾,将所述待调度作业划分为多个待调度队列,并为各待调度队列设置不同的优先级阈值,当待调度队列内的待调度作业的优先级达到该待调度队列的优先级阈值时,对该调度作业进行调度,从而兼顾作业调度的紧急性与公平性。
在具体实现中,根据所述预计处理时长对所述待调度作业进行队列划分,例如,计算所述预计处理时长的平均数,将所述预计处理时长大于平均数的待调度作业划分为待调度队列A,将所述预计处理时长小于或等于平均数的待调度作业划分为待调度队列B。并根据所述待调度队列中的待调度作业的预计处理时长设置队列的优先级阈值,例如,将待调度队列A的优先级阈值设为8,将待调度队列B的优先级阈值设为4。
计算模块30,用于每隔预设时长获取所述待调度作业的当前等待时长,并根据所述当前等待时长和所述预计处理时长计算所述待调度作业的当前优先级。
需要说明的是,所述当前等待时长是从作业调度初始时刻开始至当前时刻的时长,一般的,预计处理时长较短的待调度作业优先调度,因此,预计处理时长较长的待调度作业将会等待较长时间,而为了避免长作业饥饿,将作业的等待时间计入优先级运算中,根据所述当前等待时长和所述预计处理时长计算所述待调度作业的当前优先级,所述待调度作业的当前优先级与所述待调度作业的当前等待时长为正相关关系,当所述待调度作业的当前等待时长越长,该待调度作业的当前优先级将越高,从而提高该待调度作业的调度几率。
判断模块40,用于将所述待调度作业所属的待调度队列的优先级阈值作为当前阈值,并判断所述当前优先级是否小于所述当前阈值。
需要说明的是,将所述待调度作业所属的待调度队列的优先级阈值作为当前阈值,并判断所述当前优先级是否小于所述当前阈值,若所述当前优先级小于所述当前阈值,则说明所述待调度作业的优先级较低,无法得到调度。
调度模块50,用于若所述当前优先级不小于所述当前阈值,则将所述待调度作业转入预设就绪队列中,并对所述预设就绪队列中的待调度作业依次进行调度。
可以理解的是,若所述当前优先级不小于所述当前阈值,则说明所述待调度队列在当前时刻的优先级较高,将所述待调度作业转入预设就绪队列中准备进行调度,并依次对所述预设就绪队列中的待调度作业进行调度。
本实施例中,通过获取待调度作业及所述待调度作业的预计处理时长;根据所述预计处理时长将所述待调度作业划分为多个待调度队列,并获取各待调度队列的优先级阈值;每隔预设时长获取所述待调度作业的当前等待时长,并根据所述当前等待时长和所述预计处理时长计算所述待调度作业的当前优先级;将所述待调度作业所属的待调度队列的优先级阈值作为当前阈值,并判断所述当前优先级是否小于所述当前阈值;若所述当前优先级不小于所述当前阈值,则将所述待调度作业转入预设就绪队列中,并对所述预设就绪队列中的待调度作业依次进行调度。由于根据等待时间和处理时间计算优先级,并优先调度优先级高于优先级阈值的作业,能够优先处理短作业,提高了系统的吞吐量和作业调度效率,并能够优先处理等待时长较长的作业,兼顾了作业调度的紧急性和公平性。
在一实施例中,所述预设就绪队列为堆数据结构;
所述调度模块50,还用于若所述当前优先级不小于所述当前阈值,则根据当前时刻为所述待调度作业设置顺序号,并将所述顺序号存储至所述堆数据结构中;从所述堆数据结构中提取堆顶节点的堆顶顺序号,并将提取后的堆数据结构中的顺序号前移一个节点;对所述堆顶顺序号对应的待调度作业进行调度。
在一实施例中,所述划分模块20,还用于根据所述预计处理时长获得若干个临界处理时长,并获取若干个临界作业数量;根据所述预计处理时长和所述临界处理时长的大小对所述待调度作业进行分组;根据所述临界作业数量将分组后的待调度作业划分为多个待调度队列。
在一实施例中,所述计算模块30,还用于获取所述待调度作业的初始优先级,并将所述初始优先级最高的待调度作业转入预设就绪队列中;每隔预设时长获取所述待调度作业的当前等待时长;根据所述待调度作业的当前等待时长和预计处理时长计算所述待调度作业的当前优先级增量;将所述待调度作业的初始优先级与所述待调度作业的当前优先级增量进行求和,获得所述待调度作业的当前优先级。
在一实施例中,所述计算模块30,还用于计算所述待调度作业的当前等待时长与预计处理时长的第一商值,并计算所述待调度作业的预计处理时长与所述临界处理时长的第二商值;获取所述第一商值的第一预设权重因子和所述第二商值的第二预设权重因子;对所述第一商值、所述第一预设权重因子、所述第二商值和所述第二预设权重因子进行加权处理,获得所述待调度作业的当前优先级增量。
在一实施例中,所述计算模块30,还用于获取所述待调度作业的作业总数;计算所述时长平均数和所述作业总数的第三商值,并将所述第三商值作为预设时长。
在一实施例中,所述获取模块10,还用于在接收到调度指令时,从所述调度指令中提取待调度作业,并识别所述待调度作业对应的作业类型;若所述作业类型为静态文件,则从预设存储区域内获取所述待调度作业;若所述作业类型为动态文件,则获取所述待调度作业的作业大小,并根据所述作业大小计算所述待调度作业的预计处理时长。
本发明所述基于优先级的作业调度优化装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为标识。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器镜像(Read Only Memory image,ROM)/随机存取存储器(Random AccessMemory,RAM)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
基于优先级的作业调度优化方法、设备、存储介质及装置专利购买费用说明
Q:办理专利转让的流程及所需资料
A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。
1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。
2:按规定缴纳著录项目变更手续费。
3:同时提交相关证明文件原件。
4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。
Q:专利著录项目变更费用如何缴交
A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式
Q:专利转让变更,多久能出结果
A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。
动态评分
0.0