一种作业调度方法及系统的制作方法

文档序号:8472837阅读:614来源:国知局
一种作业调度方法及系统的制作方法
【技术领域】
[0001] 本发明属于计算机领域,尤其涉及一种作业调度方法及系统。
【背景技术】
[0002] 调度算法是指根据系统的资源分配策略所规定的资源分配算法。对于不同的的系 统和系统目标,通常采用不同的调度算法。
[0003] 在大量作业的批处理系统中,为了照顾为数众多的短作业,常采用短作业优先的 调度算法,平时处理事务时也是这样,分轻重缓急,根据事务权重的评估来进行优先排序。
[0004] 在大量终端用户的分时系统中,为了保证系统均具有合理的响应时间,应当采用 轮转法进行调度,即如果无论当前的任务需要执行多久及多少资源,均每次都分配相同的 执行时间段及相同的资源给它,以保证随时都有任务在进行中,充分提高效率。
[0005]目前常见的调度方法有:
[0006] (1)先来先服务(FCFS)
[0007] 先来先服务(FCFS)是最简单的调度算法,按先后顺序对任务进行调度,即按照作 业提交或进程变为就绪状态的先后次序,分派CPU。当前作业或进程占用CPU,直到执行完 或阻塞才出让CPU(非抢占方式),在作业或进程唤醒后(如I/O完成)并不立即恢复执行,通 常等到当前作业或进程出让CPU。FCFS比较有利于长作业,而不利于短作业,有利于CPU繁 忙的作业,而不利于I/O繁忙的作业。
[0008] (2)轮转法(RoundRobin)
[0009] 该方法通常使得各个任务在就绪队列中的等待时间与享受服务的时间成正比例。
[0010] (3)多级反馈队列算法(RoundRobinwithMultipleFeedback)
[0011] 多级反馈队列算法是时间片轮转算法和优先级算法的综合和发展。该算法的基本 运作模式如下:
[0012] 1.设置多个就绪队列,分别赋予不同的优先级,如逐级降低,队列1的优先级最 商。
[0013] 2.每个队列执行时间片的长度也不同,规定优先级越低则时间片越长,如逐级加 倍。
[0014] 3.新进程进入内存后,先投入队列1的末尾,按FCFS算法调度;
[0015] 4.若按队列1 一个时间片未能执行完,则降低投入到队列2的末尾,同样按FCFS 算法调度;
[0016] 5.如此下去,降低到最后的队列,则按"时间片轮转"算法调度直到完成。
[0017] 6.仅当较高优先级的队列为空,才调度较低优先级的队列中的进程执行。
[0018] 7.如果进程执行时有新进程进入较高优先级的队列,则抢先执行新进程,并把被 抢先的进程投入原队列的末尾。
[0019] 如上所述,当前的调度算法主要是从资源占用的角度入手,主要的考量是调度实 体占用资源的时间,即调度的策略是根据调度实体的属性来决定,多个属性中最为重要的 属性就是资源占用的时间,根据这个资源占用的时间可以采用FCFS、RoundRobin、Round RobinwithMultipleFeedback等不同的处理方式。
[0020] 然而,随着应用的发展,越来越多的调度不仅仅只是根据调度属性中时间占用来 决定分配资源的顺序,而且还需要根据调度任务之间的逻辑关系来决定资源分配的顺序。 例如,ORACLEEBSERP系统有200多个子系统,所有子系统的表总量超过1万多,假设需要 将EBSERP系统中的数据表内容从一个服务器迁移到另外一台服务器上,则影响调度顺序 的问题有很多,包括:
[0021] 1)各个子系统之间的先后顺序是什么?
[0022] 2)多个子系统可以分组运行吗?
[0023] 3)多组子系统可以并行运行吗?
[0024] 4) -个子系统的多个表运行是有依赖关系的,它们的先后顺序是什么?
[0025] 5)多个表之间可以并行运行吗?
[0026] 6)多个表之间可以分组吗?
[0027] 从上述的问题可以看出,在这种情况下影响调度的问题不是时间片,不是优先级, 而是各个调度实体之间的关系,调度实体之间的逻辑关系决定了调度顺序和优先级。

【发明内容】

[0028] 本发明实施例提供一种作业调度算法,根据调度实体之间的逻辑关系确定调度的 顺序和优先级,。
[0029] 本发明实施例是这样实现的,一种作业调度方法,所述方法包括下述步骤:
[0030] 接收调度矩阵描述信息,生成调度矩阵;
[0031] 根据所述调度矩阵计算当前待启动的调度实体,启动对应的虚拟调度对象,并根 据虚拟调度对象返回的结果更新所述调度矩阵;
[0032] 虚拟调度对象根据接收到的启动命令,启动对应的调度实体,并根据相关业务类 接口的规定启动对应的业务处理流程;
[0033] 所述调度矩阵描述信息至少包含调度矩阵的结构信息,以及虚拟调度对象的类 别;
[0034] 所述调度矩阵至少包括调度矩阵的标识,以及调度矩阵的方向标识;
[0035] 所述调度矩阵包括一个或者多个下级调度矩阵,和/或一个或者多个虚拟调度对 象的类别标识;
[0036] 所述虚拟调度对象实现与对应的调度实体的接口,所述接口至少包括控制类接 n;
[0037] 所述调度矩阵的方向标识用于标识当前调度矩阵并行调度或者串行调度。
[0038] 本发明实施例还提供一种作业调度系统,所述系统包括:
[0039] 调度矩阵生成单元,用于接收调度矩阵描述信息,生成调度矩阵;
[0040] 虚拟调度对象,用于根据接收到的启动命令,启动对应的调度实体,并根据相关业 务类接口的规定启动对应的业务处理流程;
[0041] 调度执行单元,用于根据所述调度矩阵计算当前待启动的调度实体,启动对应的 虚拟调度对象,并根据虚拟调度对象返回的结果更新所述调度矩阵;
[0042] 所述调度矩阵描述信息至少包含调度矩阵的结构信息,以及虚拟调度对象的类 别;
[0043] 所述调度矩阵至少包括调度矩阵的标识,以及调度矩阵的方向标识;
[0044] 所述调度矩阵包括一个或者多个下级调度矩阵,和/或一个或者多个虚拟调度对 象的类别标识;
[0045] 所述虚拟调度对象实现与对应的调度实体的接口,所述接口至少包括控制类接 n;
[0046] 所述调度矩阵的方向标识用于标识当前调度矩阵并行调度或者串行调度。
[0047] 本发明实施例通过矩阵方式进行作业调度,在调度过程中不仅关注资源的使用, 而且考虑到了资源使用的结构系,使得很多复杂结构的调度可以很快完成。
【附图说明】
[0048] 图1是本发明实施例中一个调度矩阵的内存结构示例图;
[0049] 图2是本发明实施例提供的作业调度方法的实现流程图;
[0050] 图3是本发明实施提供的根据调度矩阵计算当前待启动的调度实体,启动对应的 虚拟调度对象的实现流程图;
[0051] 图4本发明实施例提供的作业调度系统的结构图;
[0052] 图5本发明实施例提供的作业调度系统中调度执行单元的结构图。
【具体实施方式】
[0053] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
[0054] 在本发明实施例中,采用调度矩阵方式表达调度实体之间的逻辑关系,调度时根 据调度矩阵信息确定调度实体的顺序和优先级,使得很多复杂结构的调度可以很快完成。
[0055] 在本发明实施例中,一个调度矩阵可以包括:
[0056] (1) 一个或者多个下级调度矩阵;
[0057] (2) 一个或者多个虚拟调度对象(VirtualScheduleObject,VS0)的类别标识;
[0058] (3)-个或者多个虚拟调度对象的类别标识,和一个或者多个下级调度矩阵。
[0059] 在本发明实施例中,一个调度矩阵可以是最简矩阵。最简矩阵是调度矩阵的特殊 类型,其下级调度矩
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1