750 likes | 875 Views
用户接口与作业管理. 用户与操作系统的接口 批处理系统的作业管理 交互式系统作业管理. 1 、作业级接口. 一、用户与操作系统的接口. 操作系统为用户对作业运行全过程控制提供的功能 (1) 联机接口(交互式) (2) 脱机接口. 作业级接口 程序级接口. 2. 程序级接口. 系统为用户在程序一级提供有关服务而设置 由一组系统调用命令组成 负责管理和控制运行的程序 并在这些程序与系统控制的资源和提供的服务间实现交互作用 用汇编语言:在程序中直接用系统调用命令 用高级语言:可在编程时使用过程调用语句. 二、批处理系统作业处理. 1 、作业的基本概念
E N D
用户接口与作业管理 • 用户与操作系统的接口 • 批处理系统的作业管理 • 交互式系统作业管理
1、作业级接口 一、用户与操作系统的接口 操作系统为用户对作业运行全过程控制提供的功能 (1) 联机接口(交互式) (2) 脱机接口 • 作业级接口 • 程序级接口
2. 程序级接口 系统为用户在程序一级提供有关服务而设置 由一组系统调用命令组成 • 负责管理和控制运行的程序 • 并在这些程序与系统控制的资源和提供的服务间实现交互作用 • 用汇编语言:在程序中直接用系统调用命令 • 用高级语言:可在编程时使用过程调用语句
二、批处理系统作业处理 1、作业的基本概念 (1)作业 用户在一次计算过程中,或者一次事务处理过程中,要求计算机系统所做工作的总称 (2)作业步 一个作业可划分成若干部分,称为一个作业步 典型的作业控制过程: “编译”、“连接装配”、“运行” (3)作业流
库函数 动态库函数 子程序 源程序 输入数据 目标 程序 段 编译 连接装配 运行 计算结果 目标 程序 作业的基本概念(续1) (4)典型的作业步
2、批处理作业控制语言与作业说明书 (1)作业控制语言 • 用户用于描述批处理作业处理过程控制意图的一种特殊程序 • 书写作业说明书的语言称为作业控制语言(JCL) (2)作业控制语言的类别 包括:I/O命令、编译命令、操作命令以及条件命令等
(3)作业说明书 批处理作业控制语言与作业说明书(续) 表达用户对作业的控制意图 内容: • 作业的基本描述 • 作业控制描述 • 资源要求描述
3、作业控制块与作业表 (1)作业控制块 (JCB:Job Control Block) • 作业控制块是批处理作业存在的标志 • 保存有系统对于作业进行管理所需要的全部信息 • 位于磁盘区域中
(2)作业控制块的内容 作业控制块与作业表(续1) 作业控制块中所包含的信息数量及内容因系统而异 • 较简单的系统 • 较复杂的系统
作业控制块与作业表(续2) 作业标知 用户名称 用户帐号 调度信息 资源需求 作业状态 作业类别 输入井地址 输出井地址 进入系统时间 开始处理时间 作业完成时间 作业退出时间 资源使用情况 作业控制块JCB
(3)作业控制块的建立 作业控制块与作业表(续3) 当作业开始由输入设备向磁盘的输入井传输时 系统输入程序为其建立一个作业控制块 进行初始化 初始化的大部分信息取自作业说明书
(4)作业控制块的使用 作业控制块与作业表(续4) 需要访问作业控制块的程序 • 系统输入程序 • 作业调度程序 • 作业控制程序 • 系统输出程序等
(5)作业控制块的撤消 作业控制块与作业表(续5) 作业完成后,其作业控制块由系统输出程序撤消 作业控制块被撤消后其作业也不复存在
JCB1 JCB2 …… JCBi …… JCBn (6)作业表 作业控制块与作业表(续6) 每个作业有个作业控制块 • 所有作业JCB构成一个作业表 • 作业表存放在外存固定区域中,长度是固定 • 限制了系统所能同时容纳的作业数量 系统输入程序、作业调度程序、系统输出程序都需要访问作业表 因而存在互斥问题 作业表
4、 批处理作业的状态及转换 一个作业从进入系统到运行结束 经历四个不同的状态: “进入” “后备” “运行” “完成”
进入状态 后备状态 运行状态 退出状态 数据 数据 … 输 入 程 序 输 出 程 序 作 业 调 度 作业控制进程 源程序 作业说 明书 输 入 井 输 出 井 运行 进程 调度 输入设备 输出设备 就绪 等待 批处理作业的状态及转换(续1) 作业和进程的状态转换图
(1)运行状态的作业 批处理作业的状态及转换(续2) 三种状态: • 就绪状态 • 执行状态 • 等待状态
5、作业的建立 一个作业建立过程的两个子过程: • 作业的输入 • JCB的建立 作业控制块JCB和作业:一一对应关系
(1)作业的输入 作业的建立(续1) 将作业程序、数据和作业说明书从输入设备(例如键盘)输入到外存,并形成初始信息 典型作业输入方式 • SPOOLing系统
(2)JCB的建立 作业的建立(续3) 在系统把作业信息输入到输入井之后 根据作业说明书和有关作业信息在外存的位置等 建立作业控制表JCB JCB包含对作业进行管理所必须的信息 • JCB表的数量是一个常数 • 外存输入井的大小有限 只有在获得JCB表项和足够输入井空间后 作业才可能创建成功
6、批处理作业的调度 主要功能: • 审查系统能否满足用户作业的资源要求 只要通过调用相应的资源管理程序的有关部分 审核其表中是否能满足作业说明书中的要求即可 作业调度: • 按照一定的算法从输入井中的后备作业中选取作业 将其投入内存运行 调度的关键 在于 选择恰当的算法
(1)调度算法评价 批处理作业的调度(续1) 调度实质上是一个策略问题 设定的目标往往是相互冲突的 目标: • 单位时间内运行尽可能多的作业 • 使处理机尽可能保持“忙碌” • 使各种I/O设备得以充分利用 • 对所有的作业都是公平合理的
批处理作业的调度(续2) 要设计一个理想的调度算法是一件十分困难的事 在实际系统中,调度算法往往折衷考虑 设计调度算法时应考虑的因素: • 调度算法应与系统设计目标保持一致 • 注意系统资源均衡使用 • 保证提交的作业在截止时间内完成 • 设法缩短作业平均周转时间 大多数操作系统都采用比较简单的调度算法
批处理作业的调度(续3) (2)调度算法性能的衡量 作业平均周转时间 假定某一作业进入“输入井”的时间为Si, 它被选中执行,得到计算结果的时间为Ei 它的周转时间为Ti =Ei – Si 则作业平均周转时间为: T=( )× n为被测定作业流中的作业数
批处理作业的调度(续4) 平均带权周转时间 W=( )× ri 为某作业i的实际执行时间 • T:衡量不同调度算法对同一个作业流的性能 • W:同一调度算法对不同作业流的性能衡量
(3)系统进行作业调度的决策因素 批处理作业的调度(续5) • 作业到达时间 • 预先为作业确定的优先级 系统可测定的其他因素: • 作业所需的CPU时间C • 存储要求M • 打印输出的行数L • 其他的资源要求
(4)常见的批处理作业调度算法 批处理作业的调度(续6) • 先来先服务算法(FCFS:First Come First Serve) • 最短作业优先算法(SJF:Shortest Job First) • 最高响应比优先算法 (HRN:Highest Response Ratio Next) 响应比R = 作业周转时间 / 作业处理时间 =(作业处理时间+作业等待时间)/ 作业处理时间 = 1 +(作业等待时间 / 作业处理时间)
批处理作业的调度(续7) • 基于优先数调度算法 (HPF:Highest Priority First) (a)由用户规定优先数(外部优先数) 用户提交作业时,根据急迫程度规定适当的优先数 作业调度程序根据JCB优先数决定进入内存的次序 (b)由系统计算优先数(内部优先数) 例:可按如下公式计算作业的优先数: 优先数 = 用户规定优先数 –作业处理时间 + 作业等待时间 –输出量
批处理作业的调度(续8) • 均衡调度算法(分类排队算法) 基本思想: • 根据系统运行情况和作业属性将作业分类 • 轮流从不同的作业类中挑选作业 目标: • 力求均衡地利用各种系统资源,发挥资源使用效率 • 力求使用户满意
批处理作业的调度(续9) 例1:将待处理作业分成如下队列: 队列1:计算量大的作业 队列2:I/O量大的作业 队列3:计算量与I/O量均衡的作业 • 调度时,在三个队列中各取一些作业 在内存中的作业有的使用处理机 有的使用外部设备 • 使得系统的各种资源能得到充分利用
批处理作业的调度(续10) 例2:将待处理作业分成如下三个队列: 队列1:长作业 队列2:中等长度作业 队列3:短作业 • 调度时 取队列1一作业,队列2一作业,队列3一作业 • 长作业用户和短作业用户均比较满意
(5)作业调度算法应用例子1 批处理作业的调度(续11) • 假设在单道批处理环境下有四个作业,已知它们进入系统的时间、估计运行时间 应用先来先服务、最短作业优先和最高响应比优先作业调度算法,分别计算出作业的平均周转时间和带权的平均周转时间
先来先服务调度算法计算结果 批处理作业的调度(续12)
最短作业优先作业算法计算结果 批处理作业的调度(续13)
最高响应比优先作业算法计算结果 批处理作业的调度(续14)
(6)作业调度算法应用例子2 批处理作业的调度(续15) 在两道环境下有四个作业 已知它们进入系统的时间、估计运行时间 系统采用短作业优先作业调度算法,作业被调度运行后不再退出 当一新作业投入运行后,可按照作业运行时间长短调整作业执行的次序 请给出这四个作业的执行时间序列,并计算出平均周转时间及带权平均周转时间
两道批处理系统中最短作业优先作业算法计算结果两道批处理系统中最短作业优先作业算法计算结果 批处理作业的调度(续16)
两道批处理系统中最短作业优先作业算法计算结果(续1)两道批处理系统中最短作业优先作业算法计算结果(续1) 批处理作业的调度(续17) 四个作业的执行时间序列为: JOB1:10:00—10:05,10:40—11:05 JOB2:10:05—10:25 JOB3:10:25—10:30 JOB4:10:30—10:40
两道批处理系统中最短作业优先作业算法分析过程两道批处理系统中最短作业优先作业算法分析过程 批处理作业的调度(续18) 10:00,JOB1进入,只有一作业,JOB1被调入执行 10:05,JOB2到达,最多允许两作业同时进入 所以JOB2也被调入 • 内存中有两作业,哪一个执行?题目规定当一新作业运行后,可按作业运行时间长短调整执行次序 • 即基于优先数可抢占式调度策略 优先数是根据作业估计运行时间大小来决定的 由于JOB2运行时间(20分)比JOB1少 (到10:05,JOB1还需25分钟) 所以JOB2运行,而JOB1等待
两道批处理系统中最短作业优先作业算法分析过程(续1)两道批处理系统中最短作业优先作业算法分析过程(续1) 批处理作业的调度(续19) 10:10,JOB3到达输入井,内存已有两作业 JOB3不能马上进入内存; 10:20,JOB4也不能进入内存 10:25,JOB2运行结束,退出,内存中剩下JOB1 输入井中有两作业JOB3和JOB4,如何调度? • 作业调度算法:最短作业优先 因此JOB3进入内存 比较JOB1和JOB3运行时间 JOB3运行时间短,故JOB3运行 同样,JOB3退出后,下一个是JOB4 JOB4结束后,JOB1才能继续运行
(7)多道程序对平均周转时间的影响 批处理作业的调度(续20) 作业流在多道环境下运行 • 平均周转时间、带权平均周转时间 比单道环境下都有明显改善 • 不是任意作业组合都能改善调度性能 有时甚至可能变坏
批处理作业的调度(续21) 例:四个各需两小时作业同时投入运行,I/O等待时间均占25%,即占CPU时间各为1.5小时 根据计算公式,CPU的空转率为0 采用简单轮转法调度,每小时各作业分别占用25%的CPU时间,算得该作业组合的平均周转时间约为6小时,而平均带权周转时间约为3 但是,若以单道程序方式运行: • 平均周转时间T=(2+4+6+8)/4=5小时 • 平均带权周转时间W=(1+2+3+4)/4=2.5
7、作业调度与进程调度 作业能否占用处理器?什么时间能够占用处理器? 由进程调度来决定 进程的初始状态为就绪状态 进程调度选择当前可占用 CPU处理进程,当它让出处理器时,进程调度就再选另一作业的进程 作业调度与进程调度相互配合,实现作业的并行
8、批处理作业的控制 • 当作业为执行态时,作业调度程序为其建立一作业控制进程, 由该进程控制作业运行 • 作业控制进程:主要负责控制作业的运行,具体解释执行作业说明书的每一个作业步,并创建子进程来完成相应步骤 • 一个作业步的处理: (1)建立子进程 (2)为其申请资源 (3)访问该作业的JCB (4)释放占有资源 (5)撤消子进程等 • 作业控制程序只有一个 对应每一处于执行状态的作业有一作业控制进程
9、作业退出 • 把输出结果送到输出设备上(启动缓输出进程完成) • 回收各种资源
10、SPOOLing系统工作原理 全称:Simultaneous Peripheral Operations On-Line 含义: 同时的外围设备联机操作(假脱机技术) 包括: • 输入程序模块 • 输出程序模块 • 作业调度程序
进入状态 后备状态 运行状态 退出状态 数据 数据 … 输 入 程 序 输 出 程 序 作 业 调 度 作业控制进程 源程序 作业说 明书 输 入 井 输 出 井 运行 进程 调度 输入设备 输出设备 就绪 等待 SPOOLing系统工作原理(续1) 作业和进程的状态转换图
SPOOLing系统工作原理(续2) • 作业执行前用慢速设备将作业预先输入到后援存储器(如磁盘、磁鼓,称为输入井)中,称为预输入 • 作业运行后,使用数据时,从输入井中取出 • 作业执行不必直接启动外设输出数据,只需将这些数据写入输出井中 • 作业全部运行完毕,再由外设输出全部数据和信息,称为缓输出 实现了对作业输入、组织调度和输出的统一管理 • 使外设在CPU直接控制下,与CPU并行工作(称为假脱机)
输入装置 通 道 外 设 输入井 输出井 通 道 输出装置 输出装置 输出装置 通 道 主机系统 输入管 输出管 理模块 理模块 SPOOLing系统工作原理(续3) SPOOLing系统
三、 交互式系统的作业管理 1、概述 (1)命令接口 在操作系统与计算机用户之间提供易于理解的双向通信机制 基本任务: • 解释命令,传送命令以便执行 • 接收系统信息,提交给用户(以响应语言的形式) 包括:一组联机命令,终端处理程序,命令解释程序 • 交互式命令的接口复杂 含功能结构,可能问题的处理,如各种约定、前端处理、命令日志、命令注解、宏命令及命令组等