批处理作业的管理
批处理作业是指无需用户干预,由操作系统自动处理的一类作业。批处理作业的主要目的是提高系统的效率,通过集中处理一批作业,减少系统的空闲时间和用户的等待时间。批处理作业管理涉及三个主要功能:作业输入、作业调度和作业控制。
批处理作业的输入
作业输入
- 定义:将用户提交的作业装入辅存输入井(如磁盘),并形成后备作业队列。系统按照作业进入输入井的顺序排队等待调度执行。
- 作业输入信息通常包括:
- 源程序:待编译和执行的程序代码。
- 初始数据:用于程序执行所需的输入数据。
- 作业控制说明书:描述作业执行步骤的说明书,用作业控制语言编写。
作业控制语言(JCL)
- 定义:是一种描述作业执行过程的编程语言,用于批处理系统中。用户通过JCL指定作业的执行步骤和所需资源。
- 功能:
- 作业的提交:描述作业的开始和结束。
- 作业与作业步的执行控制:指定作业的执行顺序和依赖关系。
- 资源使用控制:指定作业执行时所需的硬件和软件资源。
作业控制块(JCB)
- 定义:作业在系统中存在的标识,包含作业的各种属性和状态信息。
- 主要内容:
- 作业名、作业状态
- 作业优先级、类别
- 所需资源(主存、外设)
- 作业的时间信息(提交时间、开始时间、结束时间)
- 用途:用于系统的输入程序、作业调度程序、作业控制程序等访问作业信息。
作业表
- 定义:由所有作业的JCB构成的集合,存放于辅存中,用于系统管理和查询作业信息。
批处理作业调度
作业调度程序
- 定义:用于控制作业调度的程序,根据某种调度算法从后备作业队列中选择合适的作业进行执行。
- 主要任务:
- 选择作业:从后备作业队列中选取作业进行执行。
- 资源分配:为选中的作业分配主存和外设等必要资源。
- 准备执行:为作业建立作业控制块和进程控制块,准备执行。
- 善后处理:当作业结束或被撤销时,释放资源,更新作业状态。
作业状态
作业在系统中的状态可以分为以下几种:
- 提交状态:作业刚被提交到系统,等待进入后备队列。
- 后备状态:作业在输入井中等待调度。
- 运行状态:作业被调度程序选中,分配资源后进入执行状态。
- 完成状态:作业执行完毕,资源被释放,作业退出系统。
作业调度的影响因素
- 公平性:确保系统资源在用户之间公平分配。
- 均衡使用资源:合理调度作业,使系统资源得到平衡使用。
- 提高系统吞吐量:最大化单位时间内完成的作业数量。
- 平衡系统和用户需求:兼顾系统性能和用户体验。
作业调度的性能指标
- CPU利用率:CPU的有效工作时间占总时间的比例。
- 吞吐量:单位时间内系统完成的作业数量。
- 周转时间:从作业进入系统到完成的总时间。
- 平均周转时间:所有作业的周转时间的平均值。
\[
T = \frac{1}{n} \sum_{i=1}^{n} T_i
\]
T:表示平均周转时间。 n:表示作业的总数量。\( T_{i} \):表示第 i 个作业的周转时间。
- 带权平均周转时间:考虑作业执行时间的比重,使短作业优先。
\[
W = \frac{1}{n} \sum_{i=1}^{n} W_i
\]
W:表示平均等待时间。 n:表示作业的总数量。\( W_{i} \):表示第 i 个作业的等待时间。
批处理作业调度的三级调度
- 高级调度(作业调度):选择哪些作业从后备队列进入主存执行。
- 中级调度:控制主存中进程的数量,通过换入换出进程以平衡内存使用。
- 低级调度(进程调度):选择就绪队列中的进程分配CPU执行。
批处理作业控制
批处理作业的执行
- 作业执行过程:当作业被调度程序选中后,系统为其创建一个作业控制进程,负责具体的作业运行控制。
- 运行控制:系统按照作业控制说明书逐步执行各作业步,直至作业完成。
批处理作业的终止与撤销
- 作业终止:当作业成功完成或发生异常时,系统进行资源释放、更新作业状态,并继续下一个作业调度。
- 作业撤销:在发生严重错误或用户要求中止时,系统强制停止作业执行,并进行善后处理。