DJ3-2 作业和作业调度

目录

3.2.1  批处理系统中的作业

3.2.2  作业调度的主要任务

3.2.3  FCFS 和 SJF 调度算法

1. FCFS(First Come First Service)

2. SJF(Short Job First)

3.2.4  优先级调度算法和高响应比调度算法

1. 优先级调度算法

2. 高响应比优先调度算法


多道批处理系统:

  1. 用户提交作业
  2. 操作员输入作业,存放在外存,作业存放在后备队列
  3. 由作业调度(长程调度)程序调入内存

3.2.1  批处理系统中的作业

1. 作业(Job)和作业步(Job Step)

1)作业不仅包含程序和数据,还应配有一份作业说明书,系统根据该说明书来对程序的运行进行控制。

2)作业步:是指作业中的每一个加工步骤。

2. 作业控制块(JCB)

JCB 是作业在系统中存在的标志,包含:作业标识、用户名称、用户账号、作业类型、作业状态、调度信息、资源需求、资源使用情况等。

3. 作业运行的三个阶段和三种状态

阶段状态
收容阶段后备状态
运行阶段运行状态
完成阶段完成状态

1)收容阶段。操作员把用户提交的作业通过某种方式或 SPOOLing 系统输入到硬盘上,再为该作业创建 JCB,并把它放入作业后备队列中。

2)运行阶段。当作业被作业调度选中后,便为它创建进程和分配必要的资源,并将其放入就绪队列。运行阶段:作业第一次进入就绪状态到它运行结束为止。

3)完成阶段。当作业运行完成或因异常情况而提前结束时,作业进入完成阶段。

  1. 回收分配给该作业的 JCB 和所有资源
  2. 将作业运行结果信息形成输出文件后输出

3.2.2  作业调度的主要任务

作业调度的主要任务:

  1. 根据 JCB 信息,判断系统中的资源能否满足作业的需求
  2. 按照一定的调度算法,从外存的后备队列中选取某些作业调入内存
  3. 并为它们创建进程、分配必要的资源,安排在就绪队列中

作业调度需要做出以下决定:

  • 接纳多少个作业:取决于多道程序度,即允许多少个作业同时在内存中运行
  • 接纳哪些作业:取决于所采用的调度算法

3.2.3  FCFS 和 SJF 调度算法

1. FCFS(First Come First Service)

FCFS 算法又称先来先服务算法,比较有利于长作业(进程),而不利于短作业(进程)。

举例:下表列出了 A、B、C、D 四个作业分别到达系统的时间、要求服务的时间、开始执行的时间及各自的完成时间,并计算出各自的周转时间和带权周转时间。

进程名到达时间服务时间开始执行时间完成时间周转时间带权周转时间
A010111
B110011011001
C21101102100100
D31001022021991.99

2. SJF(Short Job First)

SJF/SPF 算法又称短作业/短进程优先调度算法,是指对短作业或短进程优先调度的算法。

1)SJF 算法

是指从后备队列中选出若干个估计运行时间最短的作业,将它们调入内存运行。

SJF:外存后备队列 → 内存就绪队列

2)SPF 算法

是指从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行,直到完成或发生某事件而被阻塞,则放弃处理机再重新调度。

SPF:内存就绪队列 → 处理机执行

3)缺点

① 该算法对长作业不利。

② 该算法完全没考虑作业的紧迫程度,因而不能保证紧迫性作业/进程能及时得到处理。

③ 由于作业/进程的长短是根据用户所提供的估计执行时间而定的,而用户又可能会估计不准运行时间,致使该算法不一定能真正做到短作业优先调度。

OS 是不知道作业/进程的长短的,只有执行了才知道。

4)举例

进程名ABCDE平均
到达时间01234
服务时间43524
FCFS完成时间47121418
周转时间461011149
带权周转时间1225.53.52.8
SJF完成时间4918613
周转时间4816398
带权周转时间12.673.21.52.252.1

3.2.4  优先级调度算法和高响应比调度算法

1. 优先级调度算法

在实际应用中,作业的性质可能是不同,运行的迫切性也有所不同。因此,可以为每个作业定义一个优先级,优先级越高的作业将优先获得调度:从外存后备队列进入到内存就绪队列中。

1)当应用于作业调度时,优先级调度算法是把具有最高优先级的作业调入到内存中。

2)当应用于进程调度时,优先级调度算法是调度就绪队列中具有最高优先级的进程获得处理机。

2. 高响应比优先调度算法

引入动态优先级,优先级随等待的时间延长而增加。计算公式如下:

R_{P}=\frac{service\_time+wait\_time}{service\_time}=1+\frac{wait\_time}{service\_time}

1 + 等待时间/服务时间

优点:该算法既照顾了短作业,又考虑了作业到达的先后次序,不会使长作业长期得不到服务。

缺点:利用该算法时,每次调度之前,都须先做响应比的计算,会增加系统开销。

而且这个服务时间也是用户自己估计的吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值