作业的定义
作业
是用户在一次解题或一个事务处理过程中要求计算机系统所做的工作的集合,包括用户程序、所需的数据和命令等。计算机系统在完成一个作业的过程中所做的一项相对独立的加工步骤称为作业步
。一个作业从提交计算机系统到得到运行结果并最终退出系统的整个管理过程称为作业管理
。作业管理的步骤大致分为作业提交、作业调度、作业控制和作业退出。
一个作业提交以后,操作系统根据系统采取的调度原则,从所有准备好的作业中选择一个运行,并为它分配资源,把作业的主程序调入主存中。此时的作业并没有立即分配到处理机,而是具有了分配处理机的“资格”,哪一个作业能够获得处理机还要经过一番竞争,即进程调度。进程调度称为低级调度
,而作业调度称为高级调度
。
作业的分类
通常将用户作业分为两大类型:批处理作业和交互式作业,并对它们采用不同的作业控制方式,即批处理方式和交互方式。
-
批处理作业
:操作员把用户提交的作业分类,把一批作业编成一个作业序列,由专门编制的监督程序自动依次处理。批处理作业在进入计算机系统之前,用户除了要准备好源程序和数据外,还必须用作业控制语言书写一份作业控制语言说明书,规定如何控制作业的执行。作业控制语言由若干控制语句组成,每个控制语句除含有表示语句特征的关键字外,还可以含有指示控制要求用的若干参数。 -
交互式作业
:在作业执行过程中,由用户使用操作系统提供的命令语言直接提出对作业的控制要求。每当用户输入一条命令,系统便立即解释执行且及时给出应答。用户根据作业执行的情况决定应该输入的下一条命令,以控制作业继续进行。
批处理作业控制
批处理作业由四种状态:提交状态、后备状态、活动状态和完成状态。
-
提交状态
。用户向系统提交一个作业时,该作业所处的状况。 -
后备状态
。用户作业经过输入设备送入输入井中存放,等待进入内存时所处的状况。 -
活动状态
。一个作业被作业调度程序选中,且分配了必要的资源,建立相应的进程后,该作业就进入了活动状态。处于活动状态的作业在系统中以进程的形态从事各种活动。它可能被进程调度程序选中而在处理机上执行;或可能因为输入/输出请求不能得到满足而被阻塞;还可能处于就绪状态等待处理机调度。 -
完成状态
:当作业正常运行结束或发生错误而终止时,作业进入完成阶段。
作业控制块
(JCB)是作业管理中最主要的数据结构,是作业存在的唯一标志。当一个作业的输入/输出设备向磁盘输入井传输数据时,系统输入程序为其建立一个JCB,并将JCB初始化。初始化的大部分信息取自作业说明书。作业控制块保存了系统对作业进行管理的全部信息。OS根据JCB对作业进行控制和管理的。JCB的主要内容有三类,即标识类信息、调度类信息和控制类信息。
# JCB的主要内容
标识类信息:作业名、用户名、作业创建者、用户账号、作业类别(批处理作业、交互式作业)
调度类信息:作业状态(后备、活动、完成)、估计的运行时间、进入系统时间、开始处理时间、完成时间、退出时间
控制类信息:资源需求(内存大小、外围设备、...)、输入井/输出井地址、...
一旦作业运行完成,系统输出程序在输出结束后就撤销作业控制块。JCB的撤销也就意味着作业的消失。每个作业都有一个作业控制块,系统中所有作业控制块的集合就形成了作业控制表。
批处理作业的调度算法主要有先来先服务、运行时间短作业优先和响应比高者优先三种算法。先来先服务算法简单,运行时间短作业会导致“饿死”,响应比高者优先需要复杂的运算。
# 批处理作业控制流程
交互式作业控制
交互式命令的接口一般包括一组联机命令、命令解释程序和终端处理程序几个部分。命令接口由一个称为命令解释程序的程序来实现。命令解释程序
(Command Interpreter)的主要功能是接受和执行一条由用户提供的对作业的加工处理的要求,它通常保存一张命令名字(动词)表,其中记录着所有操作命令及其处理程序的入口或有关信息。
命令解释程序的实现有以下三种常见方式:作为OS的一个部分、作为OS的一个独特模块能方便地修改或替换、作为一个易于被替换的普通程序。
命令解释程序的简要处理过程为:操作系统做完初始化工作后便启动命令解释程序,它输出命令提示符,等待键盘中断的到来。每当用户输入一条命令(暂存在命令缓冲区)并按回车键时,申请键盘中断。CPU响应后,将控制权交给命令解释程序,接着读入命令缓冲区内容,分析命令、接受参数。若为简单命令,则立即转向命令处理代码执行。否则查找命令处理文件,装入内存并传递参数,将控制权交给其执行。命令处理结束后,再次输出命令提示符,等待下一条命令。
命令解释程序有以下两种处理方式与角色:由终端命令解释程序直接处理、由子进程代为处理。
分时系统中的用户控制作业的执行过程大致有以下四个阶段:终端的连通、用户登录、控制作业执行、用户退出。
(最近更新:2019年09月18日)