440 likes | 557 Views
第 3 章 作业管理. 3.1. 3.2. 3.3. 3.4. 作业的基本概念. 作业管理的功能. 作业的调度. 用户与操作系统的接口. 3.1 作业的基本概念. 3.1.1 作业、作业步和作业流 作业是用户在一次解题或一个事务处理过程中要求计算机系统所做工作的集合,包括用户程序、所需的数据及命令等。把加工工作中的一个步骤称为作业步。对作业的处理一般有这样几个作业步:编辑(修改)、编译、连接、运行。. 每个作业步运行的结果产生下一个作业步所需的文件。 一个作业步能否正确地执行,依赖于前一个作业步是否成功地完成。.
E N D
3.1 3.2 3.3 3.4 作业的基本概念 作业管理的功能 作业的调度 用户与操作系统的接口
3.1 作业的基本概念 • 3.1.1 作业、作业步和作业流 • 作业是用户在一次解题或一个事务处理过程中要求计算机系统所做工作的集合,包括用户程序、所需的数据及命令等。把加工工作中的一个步骤称为作业步。对作业的处理一般有这样几个作业步:编辑(修改)、编译、连接、运行。
在批处理系统中,通常把一批作业或按用户提交次序,按某种优先级原则依次安放到相应的输入装置上。在系统控制下,依次输入到后援存储器中等待运行,从而形成一个作业流。
3.1.2 作业的类别和组织 • 1.从调度的角度,可把作业分成如下两类。 • (1)计算型作业。任务中包含大量的计算而输入/输出数据较少的作业。 • (2)输入/输出型作业。计算量少而输入/输出量大的作业 。
2.从控制的角度,可把作业分成如下两类。 • (1)批量型作业。通常在批处理环境下运行,由程序、数据、作业说明书3部分组成。 • (2)终端型作业。通常在分时操作环境下运行,通过系统提供的操作命令,控制和监督作业的运行。
批量型作业是一种脱机作业方式。 • 终端型作业是联机作业方式 。
3.2 作业管理的功能 • 3.2.1 作业管理的基本功能 • 作业管理的主要任务是系统对用户提交的作业进行调度,使其从后备状态转变为运行状态;提供用户与操作系统之间的接口,以方便用户对作业进行管理和控制。
1.作业调度 • 作业调度程序按照一定的算法,从处于后备状态的作业队列中选出一个或一批作业调入内存,为作业分配除处理机外的所需资源,并为之创建进程,新建的进程插入到进程就绪队列中。
2.作业控制 • 用户通过操作系统提供的接口,向系统发出各种命令,管理自己的作业和控制作业的运行。
3.2.2 作业的状态及其转换 • 一个作业从进入系统到运行结束,一般需要经历收容、运行、完成3个阶段。相对应的作业处于后备、运行和完成3种状态。
1.后备状态 • 当一个作业通过输入设备送入计算机,由操作系统将其存放在磁盘后,系统为该作业建立一个作业控制块(JCB),并把作业插入到后备作业队列中等待调度运行。从作业输入开始到放入后备作业队列的过程,称为作业的收容阶段,又称作业注册。
2.运行状态 • 当作业调度程序按一定的原则从后备作业队列中挑选一个作业,为其分配必要的资源,建立一组相应的进程之后,该作业从后备状态转变为运行状态。处于运行状态的作业在系统中并不一定真正占有CPU,可能运行状态;可能等待状态;可能就绪状态)。
3.完成状态 • 当作业正常运行结束,或因错误而终止运行时,作业处于完成状态。由操作系统将作业控制块从当前作业队列中删去,并收回其占用的资源,将作业运行结果输出。 • 如图3-2所示。
3.3 作业的调度 • 3.3.1 作业调度的功能、目标及性能衡量 • 1.作业调度 • 系统为每个作业设置一个作业控制块,记录作业的有关信息。
JCB通常包含如下信息。 • (1)作业名和作业状态。 • (2)资源要求。 • (3)资源使用情况。 • (4)作业的控制方式。
作业调度的主要任务是按照某种原则从后备作业队列中选取某个作业进入内存,并为该作业做好运行前的准备工作。完成作业调度功能的程序称为作业调度程序。
作业调度程序具有以下功能。 • (1)为每个作业建立一个作业控制块,并填写有关描述信息。 • (2)按照一定的调度算法从后备作业队列中选取一个作业投入运行。
(3)为选中的作业分配主存和外部资源,建立有关作业步的主进程,并通知系统内核中的进程调度程序,做进一步的处理。(3)为选中的作业分配主存和外部资源,建立有关作业步的主进程,并通知系统内核中的进程调度程序,做进一步的处理。 • (4)作业执行完毕,释放并回收系统资源,撤消该作业的JCB。
2.调度算法性能的衡量 • 调度算法的性能一般从以下几个方面来衡量。 • (1)调度算法应达到的目标
① 尽量提高系统的作业吞吐量。 • ② 尽量使CPU和外设保持繁忙状态,提高资源的利用率。 • ③ 尽量使所有作业公平合理,使各类用户感到满意。
(2)确定调度算法时应考虑的因素 • ① 公平性。 • ② 吞吐量。 • ③ 响应时间。 • ④ CPU利用率。 • ⑤ 资源的均衡使用。
(3)调度算法性能衡量指标 • ① 周转时间。 • 周转时间Ti=完成时间−提交时间=等待时间+运行时间 • ② 平均周转时间。 • n个作业的平均周转时间T=(T1+T2+…+Tn)/n
③ 带权周转时间。 • 带权周转时间Wi=周转时间/运行时间=1+等待时间/运行时间 • ④ 平均带权周转时间。 • n个作业的平均带权周转时间W=(W1+W2+…+Wn)/n
3.3.2 作业调度算法 • 1.先来先服务(First Comn First Serve,FCFS)调度算法 • 按作业到达系统的先后次序进行调度。优先考虑在系统中等待时间最长的作业。 • 容易实现,效率较低 。
2.短作业优先(Shortest Job First,SJF)调度算法 • 根据作业相应的运行时间来调度作业,从作业的后备队列中挑选估计运行时间最短的作业作为下一个调度对象。 • 容易实现,系统效率比较高。主要弱点是只照顾短作业的利益,忽略了长作业。
3.最高响应比优先(Highest Response-ratio Next,HRN)调度算法 • 根据作业的响应比调度作业,即在后备队列中,选择响应比最高的作业作为下一次调度的对象。 • 既照顾了短作业,又不使长作业的等待时间过长。
响应比=响应时间/执行时间 • 响应比=1+作业等待时间/执行时间 • 执行时间短的作业容易获得较高的响应比,该算法优待了短作业。
最高响应比优先调度算法既考虑了用户的利益,照顾了作业的先后次序;又从系统效率出发,考虑了系统服务时间的长短,因而是FCFS和SJF两种算法的折中。
4.优先级(Highest Priority First,HPF)调度算法 • 根据作业的优先级调度作业,即在后备队列中,选择优先级最高的作业作为下一次调度的对象。 • 主要目标是综合考虑各种因素,给作业设置一个合理的优先级。
3.4 用户与操作系统的接口 • 接口是指操作系统的用户界面,是操作系统提供给用户与计算机交互的外部机制。操作系统一般提供两类接口,一类是程序接口,另一类是命令接口。环境接口。
3.4.1 用户接口 • 1.命令接口 • 操作系统为用户提供的操作命令,用户可以利用这些操作命令来组织作业的工作流程和控制作业的运行。
联机用户接口是用户通过各种输入设备向系统发出命令请求操作,系统接受后马上解释执行,完成指定的功能。 • 脱机用户接口是用户通过作业控制语言编写作业说明书来控制作业的运行过程,作业的整个运行过程用户不再干预。由操作系统自动调度。
2.程序接口 • 又称系统调用,操作系统为用户提供的一种调用系统功能的方法。用户可以在源程序一级使用这些系统调用请求操作系统服务。
3.环境接口 • 又称人机界面或用户界面,直接支持命令接口和程序接口。
3.4.2 系统调用 • 1.系统调用的基本概念 • 系统调用在本质上是应用程序请求操作系统内核完成某功能的一种过程调用,但它是一种特殊的过程调用。
系统调用与一般过程调用的区别如下。 • (1)一般的过程调用中,调用程序和被调用程序都运行在相同的状态——系统态或用户态;系统调用时,调用程序运行在用户态,被调用程序运行在系统态。
(2)一般的系统调用不涉及系统状态的转换,可以直接由调用过程转向被调用过程;系统调用时,调用过程和被调用过程工作在不同的系统状态,要通过软中断机制,先由用户态转为系统态,才能转向相应的处理子程序。(2)一般的系统调用不涉及系统状态的转换,可以直接由调用过程转向被调用过程;系统调用时,调用过程和被调用过程工作在不同的系统状态,要通过软中断机制,先由用户态转为系统态,才能转向相应的处理子程序。 • (3)系统调用也可以嵌套进行。
2.系统调用的实现过程 • 每个系统调用的例行子程序对应一个功能号,有各自的入口地址,系统设计一张入口地址表存放各个例行子程序的入口地址。需要调用操作系统的某个例程时,必须在调用时给出对应的功能号,由软件根据对功能号的解释分别转入对应的例行子程序。
① 事先准备好例行子程序。 • ② 建造例行子程序入口地址表。 • ③ 系统编制中断处理程序。 • ④ 在用户程序中需要操作系统服务的地方安排一条系统调用命令。