计算机操作系统原理-4
清华大学出版社 1/19 第第4章章 中断和处理机调度中断和处理机调度 4.1 中断中断 4.2 处理机调度处理机调度 4.3 实时调度实时调度 4.4 多处理机调度多处理机调度 清华大学出版社 2/19 4.1中断中断 中断的重要性: 中断和通道技术成为了计算机发展过程中一种里程 碑式的重要发展,它们使得今天的计算机更加灵活、灵活、 有效有效。 中断对于操作系统的作用: 中断或中断机制是实现多道程序设计与并发执行的中断或中断机制是实现多道程序设计与并发执行的 基础和必要条件基础和必要条件。如果没有中断,操作系统就无法如果没有中断,操作系统就无法 获得系统的控制权,就不会将处理机(也作为一种获得系统的控制权,就不会将处理机(也作为一种 资源)分派给不同的进程而实现并发执行。资源)分派给不同的进程而实现并发执行。 清华大学出版社 3/19 中断响应三个步骤: 终止当前程序执行终止当前程序执行 保存断点信息保存断点信息 转相应中断处理程序转相应中断处理程序 中断打断正常执行序列, 当处理完成后,再恢复 执行(如图4.1)。在并发 环境下,用户程序不需用户程序不需 要为中断添加任何特定要为中断添加任何特定 代码代码。 1 2 i i+1 n 在 此在 此 处 产处 产 生 中生 中 断断 用户程序用户程序中断处理程序中断处理程序 图 4.1 通过中断转移控制 4.1中断中断 4.1.1中断和指令周期中断和指令周期 重新回顾重新回顾 和熟悉和熟悉 清华大学出版社 4/19 为适应中断产生,在指令周期末端要增加一个中断 阶段(如图4.2所示)。 取下一条指令分析指令执行指令 检查中断;检查中断; 初始化中初始化中 断处理程序断处理程序 停止 开始开始 取指阶段分析阶段执行阶段中断阶段 图 4.2 中断和指令周期 4.1中断中断 4.1.1中断和指令周期中断和指令周期 清华大学出版社 5/19 4.1.2中断处理中断处理 强迫性中断:强迫性中断:这类中断大致有如下几种: 时钟中断时钟中断:如硬件实时时钟到时等 输入输出中断输入输出中断:设备数据传输结束/设备出错等。 控制台中断控制台中断:系统操作员通过控制台发出命令等。 硬件故障中断硬件故障中断:如掉电、内存效验错等。 程序性中断程序性中断:如地址越界、数据溢出,除零等。 4.1中断中断 自愿性中断自愿性中断 程序事先有意识安排的;事先有意识安排的;通常执行访管指令(系统 调用)而引起的,其目的要求系统提供某种服务。 清华大学出版社 6/19 正在运行正在运行 的程序的程序 中断装置中断装置 中断处理程序中断处理程序 时钟中断 I/O中断中断 控制台中断控制台中断 硬件中断硬件中断 程序错误中断程序错误中断 运行程序运行程序 访管指令访管指令 中断装置中断装置 中断处理程序中断处理程序 (a)强迫性中断(b)自愿性中断 图4.3 两类中断事件 4.1中断中断 4.1.2中断处理中断处理 确定位置中断确定位置中断任意位置中断任意位置中断 下下 一一 步步 清华大学出版社 7/19 4.1中断中断 4.1.2中断处理中断处理 对于图4.3,每类中断事件一个中断处理程序,及 一个入口地址。 当中断事件发生时,中断装置根据中断类别自 动地将对应的PSW和PC分别送入程序状态字和程 序计数器中,如此便转入到对应的中断处理程序, 如图4.4所示。 应当说明的是,图4.4所示的中断处理是比较比较 典型典型的形式。对于系统的中断处理,硬件要保存硬件要保存 哪些信息,保存到什么地方,这些随哪些信息,保存到什么地方,这些随CPU(或系(或系 统)而不同统)而不同。 清华大学出版社 8/19 PSW1,PC1 PSW2,PC2 PSW3,PC3 PSW4,PC4 PSW5,PC5 PSWn,PCn CSW CAW 定时器定时器 PSW1,PC1 PSW2,PC2 PSW3,PC3 PSW4,PC4 PSW5,PC5 PSWn,PCn 现行现行PSW,PC 旧旧PSW,PC 新新PSW,PC PC1:中断处理程序:中断处理程序 PC2:中断处理程序:中断处理程序 PC3:中断处理程序:中断处理程序 PC4:中断处理程序:中断处理程序 PC5:中断处理程序:中断处理程序 PCn:中断处理程序:中断处理程序 图4.4 中断向量与中断处理程序 结束结束 4.1中断中断 清华大学出版社 9/19 时钟中断时钟中断 时钟中断是现代操作系统不可或缺的控制手段, 所以在此特别强调。时钟中断管理及维护的内容: 进程管理进程管理:用于时间片轮转处理机调度算法的系 统中,记录进程已占用处理机时间等。 作业管理作业管理:记录作业在输入井中等待的时间等。 4.1中断中断 4.1.2中断处理中断处理 资源管理资源管理:动态统计运行进程占有和使用处理机 等资源的时间等。 清华大学出版社 10/19 事件处理事件处理:实时系统中定时向被控制的对象发送 控制信号。 系统维护系统维护:定时运行死锁检测程序等,定时运行 系统记帐程序等。 实现软件时钟实现软件时钟:利用硬件间隔时钟和一个存储单 元可以实现软件时钟。例如,假设硬件间隔时钟每 隔10ms产生一次中断,某一程序每隔1000ms执行 一次,则可以这样确定该程序的执行时刻。 4.1中断中断 4.1.2中断处理中断处理 清华大学出版社 11/19 4.1.3 多个中断多个中断 由于系统有多个事件在不停和不断地发生,因而 就势必存在多个中断在一个极短的时间内发生多个中断在一个极短的时间内发生。处 理多个中断有两种方法 : 4.1中断中断 第1种方法:在处理一个中断时,禁止再发生中断禁止再发生中断。 优点这种方法保证了各个中断按顺序处理这种方法保证了各个中断按顺序处理。 缺点缺点没有考虑相对优先级和时间限制优先级和时间限制的要求。 第2种方法:定义中断优先级定义中断优先级,允许高优先级的打 断低级中断处理程序的运行。图4.5 给出了事例。 可通过硬件可通过硬件 和软件定义和软件定义 清华大学出版社 12/19 t=10 t=15 t=25t=25 t=35 t=40 用户程序 打印机中断打印机中断 处理程序处理程序 通信中断通信中断 处理程序处理程序 磁盘中断磁盘中断 处理程序处理程序 图4.5 多中断处理的时间顺序 t=0t=20 打印机打印机 中断中断 通信中断通信中断 磁盘中断磁盘中断 磁盘中断磁盘中断 优先级低优先级低 于通信,于通信, 信号保留,信号保留, 通信中断通信中断 处理继续处理继续 磁盘中断信号 仍然存在,且 高于打印机, 中断打印机中 断处理,进入 磁盘中断处理 结束结束 下下 一一 步步 下下 一一 步步 4.1.3 多个中断多个中断 清华大学出版社 13/19 4.1.4 多道程序设计多道程序设计 中断的应用使得系统的资源利用率得到提高, 但即使利用了中断,在单道单道情况下处理机仍有可能 未得到充分的利用。例如,如果I/O操作的时间比 较长,则大部分时间处理机是空闲的。解决这个问 题的方法是允许多道多道用户程序同时处于活动状态。 某程序(进程)等待I/O上,可调度另一程序, 这时处理机与外设都在“忙”。 由此,说明多道程序设计是提高系统效率又 一重要的技术思想。 4.1中断中断 清华大学出版社 14/19 4. 2处理机调度处理机调度 4.2.1 高级、中级和低级调度高级、中级和低级调度 处理机调度是把进程指定到一个处理机中执 行。在许多系统中,这个调度活动分成三个层次: 高级调度高级调度、中级调度中级调度和低级调度低级调度。 高级调度高级调度是在创建新进程时,决定是否把进程 添加到当前活跃的进程集合中。 中级调度中级调度是属于交换功能的一部分,它需要决 定(部分)进程是否不再处于活动空间中。 低级调度低级调度真正决定下一次执行哪一个就绪进程。 图4.6 给出了进程状态转换三个层次的调度。 清华大学出版社 15/19 图图4 4. .6 6 调度的层次调度的层次 运行运行 就绪就绪 阻塞阻塞 低级低级 静止阻塞静止阻塞 静止就绪静止就绪 中级中级 新建新建退出退出 高级高级 4. 2处理机调度处理机调度 4.2.1 高级、中级和低级调度高级、中级和低级调度 清华大学出版社 16/19 高级调度(作业调度)高级调度(作业调度) 一个作业的处理可以分若干相对独立的作业步,每每 个作业步可能对应一个进程个作业步可能对应一个进程。例如,一个C语言程 序,作为批作业处理大致应当包括如下步骤: 运行C语言编译程序对C代码进行编译。 对所编译产生的浮动程序进行连接装配。 执行所产生的目标代码程序。 以上三个步骤运行的是三个不同的程序,因而需以上三个步骤运行的是三个不同的程序,因而需 要三个进程完成要三个进程完成。 4. 2处理机调度处理机调度 4.2.1 高级、中级和低级调度高级、中级和低级调度 清华大学出版社 17/19 图图4.7为作业五个状态变迁图示为作业五个状态变迁图示。 提交提交 SPOOLING 输入 作业调度作业调度 作业调度作业调度 SPOOLING 输出 图图4 4. .7 7 作业状态转换图作业状态转换图 后备后备退出退出 完成完成 活动空间活动空间 阻塞阻塞 运行运行 就绪就绪 4. 2处理机调度处理机调度 4.2.1 高级、中级和低级调度高级、中级和低级调度 高级调度(作业调度)高级调度(作业调度) 结束结束 清华大学出版社 18/19 低级调度低级调度/处理机调度处理机调度 处理机调度(CPU scheduling)是指CPU在可运行 实体之间的分配。如图4.7中虚框的活动空间部分。 处理机资源管理需要解决三个问题: 依什么原则分配处理机,即确定处理机调度算法。 什么时候分配处理机,即确定处理机调度时机。 如何分配处理机,即给出处理机调度过程。 4. 2处理机调度处理机调度 4.2.1 高级、中级和低级调度高级、中级和低级调度 清华大学出版社 19/19 中断与进程状态转换中断与进程状态转换 前面讨论了中断的重要性和处理过程,下面进一步 说明中断作为引起进程状态转换的本质中断作为引起进程状态转换的本质加以阐述。 我们仍以进程的三个基本状态进程的三个基本状态为例说明四条有向边 所表明的状态转移。图4.9给出了由中断引起进程 状态转移的形式描述(图中省略了关于中断仲裁或 控制部分)。其中,虚线表示事件,或系统产生的 操作。 4. 2处理机调度处理机调度 4.2.1 高级、中级和低级调度高级、中级和低级调度 清华大学出版社 20/19 图图4 4. .9 9 由中断由中断 引起的进程状引起的进程状 态转换图态转换图 I/O(完成完成)中断中断 申请申请I/O服务服务 I/O完成完成 调度调度 时间时间 片到片到 自愿性中断自愿性中断 阻塞队列阻塞队列 就绪队列就绪队列 时钟 中断就绪就绪 阻塞阻塞 运行运行 申请申请I/O服务服务:运行中进程需要在某处执行有关I/O指令 以进行数据输入输出。此时用户利用的指令要么是访管指令,此时用户利用的指令要么是访管指令, 要么是某种系统调用要么是某种系统调用,无论那种形式,都属于自愿性中断无论那种形式,都属于自愿性中断 而进入中断处理而进入中断处理;也可能由于没有所要求空闲I/O设备而进 入阻塞状态,进入由于等待某类I/O的阻塞队列。 I/O完成完成:I/O外设数据传输完成产生一个I/O完成中断信号 而进入I/O中断处理。当前进程状态信息被保存后,系统分析 中断原