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