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