操作系统-课本浓缩_第1页
操作系统-课本浓缩_第2页
操作系统-课本浓缩_第3页
操作系统-课本浓缩_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章第一章 引言引言 第一节 什么是操作系统第一节 什么是操作系统 一 计算机系统 是按用户的要求接收和存储信息 自动进行数据处理并输出结果信息的系统 计算机系统由硬件 子 系统和软件 子 系统组 成 计算机系统资源分两大类 硬件资源和软件资源 硬件系统是计算机赖以工作的实体 由中央处理器 主存储器 辅助存储器 磁盘 磁带等 以及各种输入 输出设备 键盘 显示器 打印机等 组成 软件系统保证计算机系统按用户指定的要求协调地工作 二 操作系统 OS 是一种管理计算机系统资源 控制程序执行 改善人机界面和为其他软件提供支持的系统软件 A 操作系统是一种资源管理程序 B 操作系统也是一种控制其他程序执行的控制程序 操作系统的设计目标 A 使计算机系统使用方便 B 使计算机系统能高效地工作 第二节 操作系统的形成第二节 操作系统的形成 操作系统的形成和发展与计算机体系的软 硬件技 术的发展密切相关 SPOOL ING 的处理形式 不仅方便操作员 而且不仅方便操作员 而且 提高系统效率提高系统效率 本质上 SPOOL 是把磁盘作为一个巨大的缓冲把磁盘作为一个巨大的缓冲 器器 SPOOL ING 又称 斯普林 是 simultaneous peripheral operation on line 的缩写 最先投入使用的操作系统是批处理操作系统 它提 高了在单位时间内的算题量 第三节 操作系统的类型第三节 操作系统的类型 分类 批处理操作系统 分时操作系统 实时操作 系统 网络操作系统 分布式操作系统 多机操作系统 和嵌入式操作系统 其中前三种是基本的操作系统 1 批处理操作系统可分为 批处理单道系统和批处理多道系统 2 分时操作系主要特点 同时性 独立性 及时性 交互性 3 什么是前台作业 什么是后台作业 为什么 前台 作业要及时响应 答 在批处理兼分时的系统中 往往把由分时系统控制的作业称 前台 作业 而批处理系统控制的作业称 后台 作业 所以用户以交互方式调试 好的程序转向批处理自动控制执行的过程 实际上是把前台作业转换成后台 作业的过程 在这样的系统中 对前台作业应该及时相应 使用户满意 对 后台作业可按照一定的原则进行组合 以提高系统的效率 第二章第二章 计算机系统结构计算机系统结构 第一节第一节 计算机系统的结构计算机系统的结构 一 现代的通用计算机系统是由硬件和软件组成的 一种层次结构 最内层是硬件系统 最外层是使用计算 机系统的人 人与硬件系统之间的软件系统 如下图所 示 操作员 人 应用软件 支援软件 编译软件 系 统 软 件 操作系统 硬件系统 操作系统功能 实现资源的管理和控制程序的执行 编译系统功能 把高级语言 如 PASCAL 语言 C 语言 C 语言等 所写的源程序翻译成计算机可执行 的由机器语言 指令 表示的目标程序 支援软件 是可支持其他软件的开发和维护的软件 如 各种接口软件 软件开发工具 应用软件 是按某种特定的需要而编写的专用程序 硬件系统 由中央处理器 主存储器 输入输出控 制系统以及各种外围设备组成 中央处理器中央处理器是对信息进行高速运算和控制处理的部件 主存储器主存储器用于存放各种程序和数据 它可被中央处理器直接访问 输入输出控制系统输入输出控制系统控制和管理外围设备与主存储器之间的信息传送 二 操作系统的运行方式 任何一个计算机系统都有一个 引导程序引导程序 或初 启程序 当计算机开启时 自动执行引导程序 引导程 序首先进行系统初始化的工作 然后把操作系统中的核 心装入主存储器 此后操作系统便等待用户请求 事件 的发生 当有某个事件出现 硬件便能识别并能发生一 个中断 从而通过操作系统 由它的服务程序去处理 处理结束后 又等待下一个事件发生 第二节 硬件环境第二节 硬件环境 一 输入输出结构 CUP 与外设的并行工作 在计算机系统中 输入 输出控制系统负责完成外 围设备与主存储器之间的信息传送 利用硬件的中央处理器与外围设备的并行工作能力 各外围设备之间的并行工作能力 操作系统可以让多个 程序同时执行 在同一时刻各个程序各自使用计算机系 统的不同资源 外围设备是由中央处理器根据程序的要求而启动的 故当外围设备工作结束后 应反馈该设备的工作情况 这项工作通过中断中断完成 二 存储体系 存储结构 计算机系统中既有操作系统程序 又有用户程序 在什么情况下操作 系统程序才能占用中央处理器 答 一个计算机系统 尤其是采用多道程序设计技术的计算机系统 不 仅有操作系统和其他的软件 而且还有若干应用程序 这些程序只有占用处 理器执行时才能履行自己的职责 而中央处理器在任何时刻最多只能被一个 程序占用 计算机系统的引导程序进行系统初始化后 把操作系统的核心程序装入 主存储器 如果没有用户请求操作系统服务 操作系统就处于等待状态 当 某个时间出现 操作系统的服务程序就要处理它 让用户程序执行 处理结 束后 又等待下一个事件的发生 中断是计算机系统结构的一个重要部分 中央处理器每执行完一条指 令后 均由中断装置判别是否有事件发生 若无事件发生 中央处理器继续 执行指令 若有事件发生 中断装置原来占用中央处理器的程序执行 而操 作系统的处理事件服务程序占用中央处理器 对出现的事件进行处理 待操 作系统对事件处理完成后 再让原来的程序继续占用中央处理器 寄存器是处理器的组成部分 用来存放处理器的工 作信息 一般来说 寄存器可分成如下几类 1 通用寄存器 2 指令寄存器 3 控制寄存器 主存储器是中央处理器能直接访问的唯一的存储空 间 因而任何程序和数据必须被装入主存储器之后中央 处理器才能对它们进行操作 主存储器以 字节 为单 位进行编址 若干字节组成一个 字 中央处理器可以 按地址读出主存储器中的一个字节或一个字的内容 为了减少对主存储器的访问时间 加快程序的执行 速度 现代计算机系统往往配置一个高速缓冲存储器 cache 辅助存储器解决了主存储器的容量不足 以及主存 储无法永久保存信息的问题 辅助存储器的优点是容量 大且能永久保存信息 缺点是无法被中央处理器直接访 问 必须通过主存储器才能访问 三 硬件保护 特权指令 管态和目态 存储保护特权指令 管态和目态 存储保护 在资源共享的计算机系统中 只有具备了必要的保 护措施 才能使个别的错误不致影响其他程序 硬件的 部分保护措施有以下几种 1 特权指令 硬件把 启动 I O 等一类可能影响 操作系统安全的指令定义为特权指令 为什么要把 启动 I O 等指令定义为特权指令 答 一个程序可以在其他程序等待外围设备传送信息时占用处理器执行 在执行中如果它也使用 启动 I O 指令去启动一台正在工作的外围设备 那 么就会造成冲突 为了保证 I O 输入 输出 的完整性 硬件把 启动 I O 等一类可能影响系统安全的指令定义为特权指令 特权指令只允许操作系统 程序使用 用户程序不能使用特权指令 外围设备的启动工作由操作系统统 一管理 这样不仅可以安全地使用外围设备 正确地传送信息 而且可以减 少用户为启动外围设备而必须了解外围设备特性及组织启动等工作 大大方 便了用户 2 管态和目态 我们要求用户程序不使用特权指令 但万一用户程序中出现了特权指令又怎么办 为保证正确 的操作 中央处理器有两种工作状态 管态和目态 处理器为什么要区分 管态 和 目态 两种操作模式 答 当中央处理器处于管态时可执行包括特权指令在内的一切机器指 令 当中央处理器处于目态时不允许执行特权指令 所以 操作系统程序占用中央处理器时 应让中央处理器在管态下工 作 而用户程序占用中央处理器时 应让中央处理器处于目态下工作 当系统启动时 硬件置中央处理器的初始状态为管态 然后装入操作 系统程序 如果操作系统选择了用户程序占用处理器 则把管态转换成目态 如果中断装置发现了一个事件 则又将其置为管态 让操作系统去处理出现 的时间 所以 总能保证操作系统在管态工作 操作系统退出执行时 让用 户程序在目态执行 3 存储保护 硬件设置两个寄存器 一个称为 基 址寄存器 另一个称为 限长寄存器 不允许用户随 意修改基址寄存器和限长寄存器的值 只有操作系统才 有权改变它们的值 硬件把修改这两个寄存器值的指令 也定义为特权指令 只能在管态时执行 操作系统与硬件是如何配合来实现存储保护的 答 主存储器往往同时装入了操作系统程序和若干用户程序 为了保证 正确操作 必须对主存储器区域进行存储保护 存储保护随着主存储器管理 方式的不同 实现保护的方法也有所不同 一般是操作系与硬件配合来实现 存储保护 每个程序在主存中占一个连续的存储空间 硬件设置两个寄存器 一个 称为 基址寄存器 另一个称为 限长寄存器 用来限定用户程序执行时 可以访问的主存空间的范围 当操作系选中某个用户程序中用处理器时 把 该用户程序占用的主存空间的起始地址存入基址寄存器 把占用的主存空间 的长度存入限长寄存器 中央处理器在目态下执行程序时 对每一个访问主 存的地址都要进行核对 若关系式 基址寄存器值基址寄存器值 访问地址访问地址 基址寄存器值基址寄存器值 限长寄存器值限长寄存器值 成立 则允许访问 否则不允许访问 这样就保护了该区域之外的存储信息 不受到破坏 一旦程序执行中出错也不会干涉及其他程序 第三节 操作系统的结构第三节 操作系统的结构 一 结构设计目标 应从哪方面考虑操作系统的结构设计 答 操作系统是一种程序量大且接口复杂的系统软件 设计一个操作 系统要投入大量的人力和花费较长的时间 因而 如何保证操作系托能正确 高效地工作至关重要 由于程序的结构是影响程序质量的内在因素 因此 有必要对操作系统的结构进行研究有必要对操作系统的结构进行研究 为什么要研究操作系统的结构 操作系统的结构设计应追求一下目标 正确性 正确性 一个结构良好的操作系统不仅能保证正确性而且易于验证且正 确性 高效性 高效性 核心程序是影响计算机系统效率的关键所在 应遵循少而精的 原则 使处理及有效又灵活 可维护性可维护性 操作系统要容易维护 可移植性可移植性 在 结构设计时 尽量减少与硬件直接有关的程序量并将其独立封装 二 层次结构 操作系统结构的设计方法有 无序模块法 内核 扩充法 层次结构及管程设计法等 它们的目标都是要 保证操作系统工作的可靠性 这里只介绍层次结构法 1 层次结构法的最大特点是 把整体问题局部化把整体问题局部化 软 件 系 统 2 层次结构的主要困难在于层次的划分和安排层次的划分和安排 由于每一层只能利用位于它内层提供的功能每一层只能利用位于它内层提供的功能 而且需要 仔细地规划每一层的功能 以保证操作系统工作过程中 不出现双向依赖关系 如果存在双向关系 则很可能出 现无休止的循环 使系统瘫痪 操作系统采用层次结构有什么优点 答 层次结构法的最大特点是把整体问题局部化 一个大型复杂的操 作系统被分解成若干个单向依赖的层次 由个层次的正确性来保证整个操作 系统的正确性 采用层次结构 能使结构清晰 便于调试 有利于功能的增加 删除 和修改 正确性容易得到保证 也提高了系统的可维护性和可移植性 3 UNIX 系统的机构 UNIX 的层次结构有什么特点 答 从结构法上看 UNIX 可分成内核层内核层和外壳层外壳层两部分 内核层是 UNIX 操作系统的核心 它具有存储管理 文件管理 设备管理 进程管理 等功能 以及为外壳层提供服务的系统调用 外壳层为用户提供各种操作命 令和程序设计环境 外壳层由 shell 解释程序 支持程序设计的各种语言 编 译程序 解释程序 实用程序和系统库等组成 外壳层的其他程序都是在执行命令时根据命令的要求而被启动的 UNIX 的内核程序用 C 语言和汇编语言编写 Shell UNIX 提供的操作控制命令称为 shell 命令 第四节 用户与操作系统的接口第四节 用户与操作系统的接口 操作系统为用户提供两类使用接口 一类是操作员 级的 供用户提出如何控制作业执行的要求 另一类是 程序员级的 为用户程序提供服务功能 1 操作员接口 用户怎样使用操作系统提供的接口 答 一个用户作业进入计算机系统后 用户往往要告诉操作系统控制 作业执行的步骤 为此 操作系统提供了让用户 操作员一级的用户 表示 作业执行步骤的手段 作业控制语言和操作控制命令 用户可以用作业控制语言写出控制作业执行命令指出作业的执行步骤 操作系统根据作业控制说明书能自动地控制作业的执行 有利于作业的成批 处理 当用户使用操作控制命令时 用户每输入一条命令 操作系统就按要 求进行控制 一条命令的控制要求完成后 就通知用户输入下一条命令 直 到作业执行结束 2 程序员接口 系统调用 A 不同操作系统提供的系统调用不全相同 但大 致分为如下几类 文件操作类 打开 建立 读文件等 资源申请类 请求分配主存空间等 控制类 正常结束 异常结束 返回断点等 信息维护类 设置时间日期 设置文件属性等 B UNIX 提供的系统调用数量因不同的版本而有差异 但基本上可被分为三类 文件操作类 控制类 信号与时间类 操作系统为什么要提供 系统调用 答 在用户编写的源程序一级 用户使用程序设计语言描述算题任务 的逻辑要求 有些要求的实现只有通过操作系统的系统调用才能完成 操作 系统编制了许多不同功能的子程序 用户程序在执行过程中可以调用这些子 程序 由操作系统提供的这些子程序称为系统功能调用程序 简称系统调用 系统调用是一种操作系统提供给用户程序的服务界面 第三章第三章 处理器管理处理器管理 第一节第一节 多道程序设计多道程序设计 多道程序设计 让多个计算机问题同时装入一个计 算机系统的主存储器并执行 这种技术称 多道程序设计 这种计算机系统称 多道程序设计系统 或 多道系 统 采用多道程序设计技术应注意以下三点 存储保护 程序浮动 资源的分配和调度 1 多道程序设计怎样提高系统效率 又可为 为什么说计算机系 统采用了多道程序设计后 能提高整个系统的效率 答 计算机系统采用了多道程序设计技术后 能提高整个系统的效率 具体表现为 1 提高了处理器的利用率 2 充分利用外围设备资源 计算机系统通常配置多种外围设备 采 用多道程序并行工作时 可以将使用不同设备的程序搭配在一起同时装入主 存储器 使得系统中各外围设备经常处于忙碌状态 系统设备资源被充分利 用 3 发挥了处理器与外围设备以及外围设备之间的并行工作能力 从总体上说 采用躲到程序设计技术后 可以有效地提高系统中资源 的利用率 增加单位时间内的算题量 从而提高了吞吐量 2 多道程序设计一定能提高系统效率吗 不一定 采用多道程序设计技术时应注意哪些问题 答 采用多道程序设计能改变系统资源的使用情况 提高系统效率 但是应该注意以下两个问题 1 可能延长程序的执行时间 2 并行工作道数与系统效率不成正比 从表面上看 只要增加并行 工作道数就可以提高系统效率 但实际上并行共组道数与系统效率是不成正 比的 因为并行的道数要根据系统配置的资源和用户对资源的要求而定 主存储器的大小限制了可同时装入的程序数量 外围设备的数量也是一个制约条件 多个程序同时要求使用同一资源的情况也会发生 总之 多道程序设计能提高系统资源的使用效率 增加单位时间的算 题量 但是对每个计算机问题来说 从算题开始到全部完成所需要的时间可 能延长 另外在确定并行工作道数时应综合系统的资源配置和用户对资源的 要求 第二节第二节 进程的概念进程的概念 一 进程的定义 1 进程 把一个程序在一个数据集合上的一次执行 称为一个 进程 程序与进程 程序 火车 静止的 进程 列车 已出发的列车 包含火车以及火车上的人或物 动态 的 包含程序和程序处理的对象 数据集 进程能得到程序处理的结果 为什么要引入进程 答 原因有以下两个方面 1 提高资源的利用率 2 正确描述程序的执行情况 二 进程的属性 1 进程的基本属性 1 进程的动态性 2 多个不同的进程可以包含相同的程序 3 进程可以并发执行 4 进程有三种基本状态 等待态 就绪态 运行态 UNIX 系统中 进程状态包括 运行态 就绪态 睡眠态 创建态 僵死态 2 多个不同的进程可以包含相同的程序 程序与进程并非是一一对应的 一个程序运行在不 同的数据集合上就构成不同的进程 能得到不同的结果 可再入可再入 程序程序 我们把一个能倍多个用户同时调 用的程序称作是 可再入 程序 可再入 程序有什么特性 答 可再入程序是指一个能够被多个用户同时调用的程序 首先 可在如程序必须是纯代码的 在执行中自身不变 其次 一个可再入程序要求调用者提供工作区 以保证程序以同样的 方式为客户服务 编译程序和操作系统程序通常都是可再入的程序 能同时被不同用户 调用而构成不同的进程 3 进程有三种基本状态 状态如何发生变化 答 等待态 等待某一事件 就绪态 等待系统分配处理器以便运行 运行态 正在占用处理器运行 当一个进程被建立时 通常处于就绪状态 三态转换过程如下 等待某一事件 落选 等待的事件发生 进程有哪些基本特征 根据进程的四个基本属性概括 答 1 动态性 进程是程序的依次执行过程 在执行过程中进程 状态不断发生变化 2 并发性 若干进程是可同时执行的 它们轮流占用 处理交替运行 3 异步性 进程的执行速度取决于自身与外界原因以及能 占用处理器的时间 因此以不可预知的速度向前推进 三 进程队列 1 进程控制块 PCB process control block 进程控制块 为 了标识进程 记录各个进程执行时的情况 操作系统为 每个进程都设置了一个 进程控制块 一般情况下 PCB 应包含四类信息 标示信息 说明信息 现场信息 管理信息 进程控制块 PCB 中应该包括哪些内容 其作用是什么 又 阐述进程控制块 PCB 的作用 答 进程控制块是泳衣记录进程有关信息的一个数据集合 其中登记 着诸如 进程标识 进程状态 优先级 终端现场 所占资源等信息 它是 由系统为每个进程分别建立的 并且在进程结束其生命周期时由系统将相应 的 PCB 撤销 PCB 是进程存在的标识是进程存在的标识 2 进程的创建和撤销 原语 操作系统中往往设计一些完成特定功能的 不可中断的过程 这些不可中断的过程称为原语 用于控制进程的原语有 1 创建 原语 为一个程序分配一个工作区和建立一个 PCB 并 止该进程为就绪态 一个刚被创建的进程 它的初始状态是 就绪态就绪态 2 撤销 原语 一个进程完成工作后 收回它的工作区和 PCB 3 阻塞 原语 等待态 进程运行过程中发生等待时间 把进程状态改为等待态 4 唤醒 原语 就绪态 当进程等待的事件发生时 把进程的状态改为就绪态 UNIX 中创建一个进程要做哪些主要工作 答 在 UNIX 中 除了 0 号进程和 1 号进程外 其他的进程重视使用 系统调用 fork 来创建新进程 形成父子关系 父进程和子进程可以并发执行 子进程可以共享父进程的正文段和已打开的文件 由 fork 创建的子进程实际 上是其父进程的一个映像 除了进程的状态 标识和与时间有关的控制项外 全部复制父进程的 proc user 栈和数据区 Fork 的主要工作如下 1 在进程表 proc 中为子进程找一个空闲的表项 用来存放子进程 的 proc 结构 2 为子进程分配一个唯一的标识号 3 把父进程 proc 中的字段复制到子进程的 proc 中 但把分配到的 标识号置于 p pid 中 把 p pid 置为父进程的标识号 把 p stat 置为创 建状态 4 按父进程中 p size 所示的长度为子进程申请分配主存 UNIX 中进程的优先数和优先权之间有什么关系 答 UNIX 中每个进程都有一个优先数 进程的优先数随进程的执行情 况而变化 就绪进程能占用处理器的优先权取决于进程的优先数 优先数越 小则优先权越高 进程调度总是让优先权高的进程占用处理器 扎用处理器的进程每次 可使用一个规定的世间片 当进程运行中由于各种事件让出处理器 或当用 完了一个时间片而被剥夺了占用处理器的权利时 进程调度就再从就绪队列 中选择优先权高的进程占用处理器 什么是进程队列 具有什么作用 答 在多道程序设计的系统中 往往会同时创建许多进程 这些进程 运行态 就绪态 等待态 处于不同的状态 为了便于管理 经常把处于相同状态的进程链接在一起 称为 进程队列 1 就绪队列 把若干个等待运行的进程 就绪进程按一定的次序 链接起来的队列 2 等待队列 把等待资源或等待某些时间的进程组成的队列 有时 可以把等待队列按等待的原因分成若干个相应的等待队列 进程队列是操作系统管理进程的一种数据组织 第三节第三节 中断系统中断系统 一 中断和中断类型 1 中断 中断 一个进程占有处理器运行时 由于自身或 外界的原因 出现了事件 运行被打断 让操作系统处 理所出现的事件 到适当的时候再让被打断的程序继续 运行 这个过程称之 引起中断的事件称为 中断源中断源 对出现的事件进行处理的程序称为 中断处理程序中断处理程序 2 中断类型 中断类型 按中断事件的性质来分 强迫性中断事件强迫性中断事件 强迫性中断分为 硬件故障中断 程序性中断事件 外部中断事 件 输入输出中断事件 强迫性中断事件的发生是随机的 无法与之是否会 发生和发生的事件 因而进程的断点可能在任意位置 自愿性中断事件自愿性中断事件 是正在运行的进程为了请求调用操作系统的某个功 能服务而执行一条 访管指令 所引起的中断 各计算机系统都提供 访管指令 作为条用操作系 统功能服务的手段 但访管指令的名称和格式可能不同 当处理器执行房管指令是就产生一个中断 因而进 程自愿中断的断点是确定的 中断分为哪几种类型 给出各自的含义 答 1 硬件故障中断 它是由于机器故障造成的例如 电源故障 主存出错 2 程序性中断 这是由于程序执行到某条机器指令时可能出现 的各种问题而引起的中断 例如 发现定点操作数溢出 除数为 0 地址越 界 使用非法指令码 目态下的用户使用了特权指令等 3 外部中断 这是由各种外部事件引起的中断 例如 按压了控 制板上的一个中断键 设备的定时时钟的时间已到 4 输入 输入中断 输入 输入控制系统发现外围设备完成了输入 输 入操作或在执行输入 输入操作时通道或外围设备产生错误而引起的中断 中断装置如何判断是发生了自愿性中断还是强迫性中断 答 处理器执行指令时根据操作码是否是房管指令 来确定是否有自 愿性中断事件发生 若有 则通知中断装置 对于强迫性中端 终端装置只 要检查中断寄存器的内容 非 0 表示有中断发生 二 中断的响应 中断响应中断响应 处理器每执行完一条指令后 硬件的终 端装置立即检查有无中断事件发生 若有中断事件发生 则暂停现行进程的执行 而让操作系统的中断处理程序 占用处理器 这一过程称 中断响应 中断装置发现中断时间后应做哪些事 答 首先检查中断寄存器 确定中断事件的发生 其次 保护好中断进程的断点以及其他信息 以便进程在适当的时候 能继续执行 最后 启动操作系统的中断处理程序工作 1 中断寄存器 记录强迫性中断的寄存器 因为有 了中断寄存器的存在 所以中断装置只要检查中断寄存 器就可以知道是否有中断事件发生 若中断寄存器内容 为 0 则无中断事件发生 处理器继续执行下一条指 令 若中断寄存器的内容为非 0 则表示有中断事件 发生 2 程序状态字 PSW 是用来控制指令执行顺序 并且保留和指示与程序相关的系统状态 每个才好呢工序都要有一个程序状态字 刻画本程 序的执行状态 处理器设有一个 程序状态字寄存器 用来存放当前运行程序的 PSW 处理器总是按照存放在 程序状态字寄存器中的指令地址和其他状态控制程序的 执行 一般来说 程序状态字包含程序基本状态 中断码 中断屏蔽位三部分内容 例如 IBM 360 370 系列计算机的 PSW 格式为 0 7 8 14 15 16 31 34 36 40 63 等待 计算 目态 管态 条件码 1 程序的基本状态 指令地址 指出下一条指令的地址 条件码 指出指令执行结果的特征 目态 管态 设置为管态 程序执行时可以使用 包括特权指令在内的一切指令 若设置为目态 程序执 行时不可使用特权指令 等待 计算 置为计算状态时 处理器按指令地 址顺序执行指令 置为等待状态时 处理器不执行任何 指令 2 中断码 保存程序执行时当前发生的中断事件 以 便操作系统进行分析处理 3 中断屏蔽位 用来指出要不要响应出现的中断事件 若设置了 中断屏蔽 则即使出现中断事件也不终止程 序的执行 就像没有发生终端一样 3 中断响应 一般情况下 中断响应过程区分为三种 PSW 1 当前 PSW 当前存放在程序状态寄存器中的 PSW 它是正占有处理器运行进程的 PSW 2 旧 PSW 中断事件出现后 现进程被中断 为了使 进程在适当的时候能继续运行 必须把被中断进程的 PSW 保护好 把保护起来的被中断进程的 PSW 称旧 PSW 3 新 PSW 把操作系统的中断处理程序的 PSW 成之 图 交换新 旧 PSW 三 中断事件的处理 中断处理程序的主要工作有如下几个方面 1 保护被中断进程的现场信息 2 分析中断原因 3 处理发生的中断事件 四 中断优先级和中断屏蔽 中断优先级中断优先级 在计算机系统中 每一瞬间可能有几个 中断事件同时发生 故引入中断优先级 中断优先级是按中断事件的重要性和紧迫程度来确 定的 是硬件设计时固定的 不同的系统对中断优先级 的划分不尽相同 在一般情况下 优先级的高低顺序为 硬件故障中断硬件故障中断 自愿性中断自愿性中断 程序性中断程序性中断 外部中断外部中断 输入输出中断输入输出中断 中断处理程序可以有选择地设置中断屏蔽位 通常 中断处理程序只屏蔽比自己级别低比自己级别低的中断事件 但是 自愿中断是不能屏蔽的 中断屏蔽的作用是什么 答 中断优先级只是规定了中断装置响应同时出现的中断次序 当中 断装置响应了某个中断后中断处理程序在进行处理时 中断装置又可能去响 应另一个中断事件 因此会出现优先级低的中断事件的处理打断优先级高的 中断事件的处理 使得中断事件的处理顺序与中断响应顺序不一致 而且会 形成多重嵌套处理 使得现场保护 程序返回等工作变得复杂 中断屏蔽技术就是为了解决上述问题而提出的 在一个中断处理没有 结束之前不再响应其他中断事件 或者只影响比当前级别高的中断事件 于 是 当中端装置检查到有中断事件后 便去查看 PSW 中中断屏蔽标志 如果 没有屏蔽就响应该中断 否则 暂时不响应该中断 待屏蔽标志消除后再响 应 为什不能屏蔽自愿性中断 答 自愿性中断事件是正在运行程序所期待的中断事件 它是正在运行 程序为了请求调用操作系统的某个功能服务而执行一条 房管指令 所引起 的中断 当处理器执行到房管指令时就会产生一个自愿中断 自愿中断时确 定的 自愿中断不同于强迫性中断 强迫性中断不是正在运行程序所期待的 时由于外部请求或意外而被迫打断正在运行的进程 系统必须响应这些中断 自愿中断既然是确定中断 是用户程序访问系统功能的手段 所以 自 愿中断是不能屏蔽的 第四节第四节 进程调度进程调度 一 进程调度算法 常用的进程调度算法进程调度算法有先来先服务先来先服务 优先数优先数 时间时间 片轮转片轮转及分级调度分级调度等算法 先来先服务调度算法先来先服务调度算法 按照进程进入就绪队列的先 后次序选择可以占用处理器的进程 当有进程就绪时 把该进程排入就绪队列的末尾 而进程调度总是把处理 器分配给就绪队列中的第一个进程 一旦一个进程占有 了处理器 它就一直运行下去 直到因等待某时间或进 程呢个完成了工作才让出处理器 优先数调度算法优先数调度算法 对每一个进程确定一个优先数 进程调度总是让具有最高优先数的进程先使用处理器 如果进程具有相同的优先数 则对这些有相同优先数的 进程再按先来先服务的次序分配处理器 一个高优先数的进程占用处理器后 系统可以用两 种方式对待它 非抢占式非抢占式 抢占式抢占式 非抢占式非抢占式 一旦有某个高优先数的进程占用了处 理器 就一直让它运行下去直到该进程由于自身的原因 主动让出处理器或进程执行结束而让出处理器 此时 进程调度才重新再按优先数选择一个占用处理器 抢占式抢占式 这种方式是严格保证任何时刻 总是让 具有最高优先数的进程在处理器上运行 也就是说 当 某一个进程在处理器上运行时 一旦有另一个更高优先 数的进程就绪 而把处理器让具有更高优先数的进程使 用 时间片轮转调度算法时间片轮转调度算法 时间片 把规定进程一次使用处理器的最长时 间称为时间片 这种调度算法让就绪进程按就绪的先后 次序排成队列 每次总是选择就绪队列的第一个进程占 用处理器 但规定只能使用一个 时间片 如果一个时 间片用完 进程工作尚未结束 则它也必须让出处理器 给其他进程使用 自己被重新排列到就绪队列的末尾 等待再次运行 如果在一个时间片的时间内进程发生了 等待事件 那么也把处理器让给下一个就绪的进程使用 自己被排入等待队列 等待事件结束后 仍需排入就绪 队列的末尾 当再次轮到运行时 重新开始使用一个新 的时间片 这样就绪队列中的进程就依次轮流地占用处 理器运行 一次运行未完成工作的进程可作第二次 第 三次或更对此的轮转 直到进程完成工作 时间片轮转调度算法中 时间片值的选取对系统有什么影响 答 时间片的大小关系到计算机系统的效率和用户的满意度 所有 时间片的值应根据进程要求系统给出应答的时间和进入系统的进程数来决定 如果要求系统快速应答 则时间片小一些 这样使轮转一遍的总时间减少而 可对进程尽快应答 如果进程数少 则时间片可以大一些 这样可减少进程 调度的次数 提高系统效率 对每个进程可规定相同的时间片 但有的系统对不同的进程规定不同 的时间片 例如 对少使用外围设备而需要运算时间长的进程 给一个大一 些的时间片 以达到减少调度次数加快进程执行速度的目的 但应注意到 硬件故障事件 程序性事件 外部事件 输入输出事件 访管中断事件 硬件故障事件 程序性事件 外部事件 输入输出事件 访管中断事件 中断屏蔽位中断码指令地址 CPU 当前 PSW 时间片值过大时该算法退化为先来先服务 时间片值过小时 加重系统开销 分级调度算法分级调度算法 由系统设置多个就绪队列 每个就 绪队列中的进程按时间片轮转法占用处理器 具体的调 度原则是 当有进程就绪时 排入第一级就绪队列的末 尾 当某就绪队列的一个进程获得处理器并用完规定的 时间片后 它的工作尚未结束 则排入下一级就绪队列 的末尾 当最后一级中的进程占用处理器运行一个规定 的时间片后 它的工作尚未结束 则仍排入本队列尾 当占用处理器的进程在规定的时间片内运行时出现等待 事件 则排入等待队列 等待结束后成为就绪状态排入 第一级就绪队列 第一级就绪队列的优先级最高 每次 总是先选择第一级就绪队列中的进程 仅当该队列为空 时 才从第二级就绪队列中选进程 若仍为空 则再从 下一级就绪队列中选 依次类推 在分级调度算法中 为什么对不同就绪队列中的进程规定使用不同长度 的时间片 答 在分级调度算法中 对不同就绪队列中的进程规定使用不同长度 的时间片 一般来说 第一级就绪队列的时间片短一些 以后各级就绪队列 的时间片逐级增长 最后一级就绪队列的时间片最长 这是因为 1 运行时间短的进程只需要经过前面几级队列就能得到结果 且 它们被优先调度 有利于提高系统的吞吐率 2 对运行时间长的进程在进入了低级就绪队列后可以到到较长的 时间片 以减少调度次数来保证系统效率 3 对经常使用外围设备的进程来说 每次的呢光爱外围设备传输 结束后总是链入第一级就绪队列 它们会被优先调度 有利于处理器与外围 设备以及外围设备之间的并行工作 从而提高系统资源的使用效率 因此 在分级调度算法中 对不同就绪队列中的进程规定使用不同长 度的时间片 二 进程调度算法的选择 一般来说 选择算法时可考虑如下一些准则 1 处理器利用率 2 吞吐量 3 等待时间 4 响应时间 三 进程调度的职责 进程调度的职责是按选定的进程调度算法从就 绪队列中选择一个进程 让他占用处理器 当进程调度选中一个进程后 怎样才能让它占用处理器 答 进程调度的职责是按选定的进程调度算法从就绪队列中选择一 个进程 让他占用处理器 要让选中的进仓呢个占用处理器 调度程序要进 行如下处理 把选中进程的进程控制块中有关的现场信息送入处理器相应的寄存 器中 处理器就按该进程要求工作 达到了进程占用处理器的目的 四 进程的切换 进程的切换是由进程状态的变化引起的 而进程状 态变化又与出现中断事件有关 进程之间的变换关系是怎样的 又 引起进程切换的时机有那些 答 我们把一个进程让出处理器由另一个进程占用处理器的过程称为 进程切换 引起进程切换的情况有如下几种 1 一个进程从运行状态变为等待状态 运行态 等待态 2 一个进程从运行状态变为就绪状态 运行态 就绪态 3 一个进程从等待状态变为就绪状态 等待态 就绪态 4 一个进程运行完后被撤销 一 有 5 个进程 P1 P12 P3 P4 P5 它们同时依次进入就绪队列 它们的优先数和需要的处理器时间如下图所示 进程处理器时间优先数 P1 P2 P3 P4 P5 10 1 2 1 5 3 1 3 4 2 忽略进行调度所花费的时间 请回答下列问题 写出分别采用 先来先服务 和 非抢占式的优先数 调度算法选 中进程执行的次序 分别计算出上述两种算法使个进程在就绪队列中的等待事件以及两 种算法下的平均等待时间 答 采用先来先服务调度算法时进程调度次序 P1 P2 P3 P4 P5 采用非抢占式的优先数调度算法时进程调度次序 P1 P2 P5 P3 P4 采用先来先服务调度算法时进程的等待时间 进程等待事件运行时间 P1010 P2101 P3112 P4131 P5145 平均等待时间 0 10 11 13 14 5 9 6 采用非抢占式的优先数调度算法时进程的等待时间 进程等待事件运行时间 P1010 P2101 P5115 P3162 P4181 平均等待时间 0 10 11 16 18 5 11 二 在单处理器环境中 有 4 道作业 其进入系统的时间和所需要的 执行时间如下表所示 作业进入时间 小时 要求运行时间 小时 初始优先数 1 2 3 4 8 00 8 50 9 00 9 50 2 00 0 50 0 10 0 21 1 2 3 1 试分别计算在以下调度算法中 每个作业的周转时间和平均周转时间 其中 周转时间指作业从进入系统开始到作业完成离开系统所花费的时间 1 先来先服务调度算法 2 抢占式的优先数调度算法 优先数采用动态优先数 假设优先 数改变时机是在新进程进入系统时 其计算方法如下 优先数 初始优先数 作业以等待时间 作业要求运行时间 答 1 先来先服务调度算法 进程 进入 时间 运行 时间 开始执 行时间 结束 时间 周转 时间 18 002 008 0010 002 00 28 500 5010 0010 502 00 39 000 1010 5010 601 60 49 500 2110 6010 811 31 平均周转时间1 7275 2 抢占式的优先级调度算法 进程 进入 时间 运行 时间 开始执 行时间 结束 时间 周转 时间 18 002 008 0010 602 60 28 500 508 509 000 50 39 000 109 009 100 10 49 500 2110 6010 811 31 平均周转时间1 1275 三 设有 Pa Pb Pc Pd 四个进程同时依次进入就绪队列 它们所 需的处理器时间和优先数如下表所示 进程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论