操作系统(二)
二、用户接口和作业管理
2.1 概述
- 基本概念:
1.接口:要让计算机完成任务,就一定要先编写程序,将程序提交给计算机,这实际上就是用户与操作系统的接口。计算机为用户提供的接口是:命令接口、程序接口
2.作业:用户一次计算过程中或者一次事物处理过程中要求计算机系统所做的全部工作的集合。
作业的组成:程序、数据和作业控制说明书
2.2 命令接口
- 命令接口:用户和操作系统通过高级通信来控制程序运行。
- 脱机命令(批处理作业,由作业控制语言组成)、联机命令也叫交互式命令(用于交互式命令,人机对话)
- 程序接口:在程序,系统资源以及系统服务之间交互作用。程序接口由系统调用组成。
3.系统调用:是操作系统提供给编程人员的唯一入口,编程人员在源程序级动态请求和释放系统资源调用系统中已有的系统功能来完成与机器硬件部分相关的工作和控制程序的执行。
2.3 系统调用
- 系统调用分类:
文件操作类: 创建、打开、读、写、删除等
进程控制类:创建、执行、撤销等
资源申请类:申请或归还内存、请求或释放设备等
进程通信类:进程间传递消息或信号
信息维护类:用户与OS间传递信息,如获取时间等 - 系统调用功能:用户程序使用子程序以得到特权指令提供的功能但是并没有使用特权指令。
- 陷入(TRAP)或异常处理机构:在系统中为控制系统调用服务的机构
- 陷入或异常指令(或称访管指令):由于系统调用引起处理机中断的指令
- 系统调用与一般过程调用的比较:
系统调用通过非特权指令——访管指令调用
系统调用与一般的过程调用方式的相同点:- 改变指令流程
- 重复执行和公用
- 改变指令流程后需要返回原处
- 系统调用与一般过程调用的区别:(从5方面考虑)
(1)系统调用通过软中断进入
一般的过程调用可直接由调用过程转向被调用过程;系统调用通常都是通过软中断机制转向相应的命令处理程序
(2)运行在不同的处理器状态
一般的过程调用,其调用程序和被调用程序都运行在相同的处理器状态 ;系统调用调用程序运行在目态,而被调用程序则运行在管态
(3)处理器状态的转换不同
一般的过程调用不涉及系统状态的转换;系统调用需要系统状态转换(通过软中断机制先由用户态转换为核心态)
(4)返回问题不同
一般的过程调用在被调用过程执行完后,将返回到调用过程继续执行;系统调用不一定返回原调用过程
(5)嵌套调用
像一般过程一样,系统调用也允许嵌套调用,但对嵌套调用的深度都有一定的限制。
2.4 作业管理
- 研究问题:用户如何向操作系统提交作业,操作系统如何组织作业,调度作业的运行
- 基本功能:作业调度和作业控制
批处理作业
- 建立过程:
1.作业控制块(JCB)建立—作业由输入设备输入时,系统为其建立JCB 并对其进行初始化 作业完成之后系统对其撤销。
JCB与作业一一对应。所有的JCB构成一个表成为作业表。作业表存放在外存的固定区域,长度固定。
2.作业输入 - 作业调度算法
- 先来先服务算法
按照作业进入系统的先后次序来挑选作业,先进入系统的作业优先被挑选 - 最短作业优先算
总是选取计算时间最短的作业投入运行
---- 计算时间靠用户估计 - 响应比最高者优先算法
响应比=(等待时间+计算时间)/计算时间,作业调度时总是选取响应比高的作业投入运行
----有利于短进程 和等待时间较长的进程 响应比公式中的计算时间仍是用户的估计时间 - 优先数调度算法
每次总是选择优先数高的作业
优先数的确定:一种是用户自己提出;一种是由系统综合考虑有关因素来确定 - 分类调度算法
根据系统运行情况和作业属性将作业分类(如计算型、I/O型等),作业调度时轮流从这些不同的作业类中挑选作业
- 先来先服务算法
- 作业调度与处理器调度的关系
进入计算机系统的作业只有经过 两级调度后才能占用处理器。
第一级是作业调度,使作业进入内存储器;第二级是处理器调度,使作业进程占用处理器。
- 作业的状态
-提交状态 作业还未进入算机系统内之前,用户正在向系统提交作业时所处的状态
-后备状态 作业的提交完成后,作业便处于后备状态
-运行状态 作业被选中,分配资源,调入内存,创建进程
-完成状态 当作业运行结束或异常终止时,作业进入完成状态