一、作业(job)的概念

(1) 用户角度

    我们把一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个作业。

如图所示的编程过程的可以认为是作业的一个例子。 

 编辑输入——> 编 译——> 链 接——> 执 行——> 输 出                     

(2) 系统角度

        从计算机系统的角度看,作业是一个比程序更广的概念,它由程序、数据和作业说明书三部分组成。

系统通过作业说明书控制文件形式的程序和数据,使之操作和执行。在批处理系统中,作业是抢占内存的基本单位,也就是说,批处理系统是以作业为单位把程序和数据调入内存以便执行的。


二、作业调度算法

1. 先来先服务(first come first serve,FCFS)

按作业进入输入井的先后次序安排。优点是实现简单,用先进先出(first input first output,FIFO)队列顺序工作,对相同的或均衡的作业较为合理,缺点是不利于运行时间短的作业。 

2. 最短作业优先法(shortest job fist,SJF)

(1) 概念

(a)作业i的周转时间Ti=作业完成时间-作业提交时间 

(b)平均周转时间T=1/n∑Ti   (加权平均)

(c)平均带权周转时间W=1/n∑Ti/tI   (乘以权值的加权平均)

Ti为作业的实际运行时间。

最短作业优先法也就是选ti值小的优先,也就是只考虑运行时间。优点是短作业得到了优先执行,提高了系统的效率。缺点是当作业不断进入时,长的作业有可能长时间排不上队

3.最高响应比优先法(highest response-ratio next, HRN)

最高响应比优先法(HRN)是对FCFS方式和SJF 方式的一种综合平衡。HRN 调度策略调度同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。

响应比或称响应系数比R定义下:

            R=(W+T)/T=1+W/T

其中T为该作业估计需要的执行时间,W为作业在后备状态队列中的等待时间。

其优点是同时具有FCFS算法及SJF 算法的优点,缺点是实现复杂,每次调度前要对所有作业扫描一遍,比较以后再调度。

4. 定时轮转法

按时间片轮转,可分为短时间的固定时间片(如UNIX 操作系统时间片为几毫秒至几十毫秒)和长时间的不固定时间片(如:Windows操作系统的抢占式多任务方式)。

5.优先数法

按优先数排队次序工作。分静态和动态:静态是在排队前计算优先数,动态是在调度过程中计算优先数。又可分为用户给定优先数(反映用户要求)和系统给定的优先数,例如,系统给定前台和后台(比如批处理的作业)工作的优先级,一般前台(与用户直接交互的作业)优先。

6.事件驱动法

MS-Windows 采用的任务驱动方式,采用不固定的时间片分配来完成多任务。每当发生一些事件(event)就进入相应的事件调度程序。系统通过事件驱动程序执行任务。

7. 各种不同类型作业搭配调度算法

一个操作系统的作业调度往往是综合性的,作业调度的原则主要要考虑的因素有CPU的运行时间、对内存的要求、对外设的要求、对I/O吞吐量的要求及等待时间等等。