收藏 分享(赏)

004 中断技术.ppt

上传人:saw518 文档编号:9413239 上传时间:2019-08-06 格式:PPT 页数:40 大小:174.50KB
下载 相关 举报
004 中断技术.ppt_第1页
第1页 / 共40页
004 中断技术.ppt_第2页
第2页 / 共40页
004 中断技术.ppt_第3页
第3页 / 共40页
004 中断技术.ppt_第4页
第4页 / 共40页
004 中断技术.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、中断技术,中断对于操作系统的重要性就像机器中的驱动齿轮一样所以有人把操作系统称为是由“中断驱动”或者 “(中断)事件驱动”,中断机制,中断机制是操作系统得以正常工作的最重要的手段它使得OS可以捕获普通程序发出的系统功能调用 及时处理设备的中断请求 防止用户程序中破坏性的活动等等,什么是中断? 指CPU对系统中或系统外发生异步事件的响应 异步事件是指无一定时序关系的随机发生事件如外部设备完成数据传输,实时设备出现异常等“中断”名称源于: 当异步事件发生后,打断了对当前程序的执行 而转去处理该异步事件 直到处理完了后,再转回原程序中断点继续执行,1、中断的概念,中断定义,CPU对系统发生的某个事件

2、作出的一种反应CPU暂停正在执行的程序,保留现场后自动转去执行相应事件的处理程序,处理完成后返回断点,继续执行被打断的程序,从用户角度看中断,引入中断的目的 解决主机与外设的并行工作问题 提高可靠性 实现多机联系 实现实时控制 特点:1) 中断随机的2) 中断是可恢复的3) 中断是自动处理的,中断源:引起中断发生的事件 中断寄存器:记录中断 中断字:中断寄存器的内容系统堆栈: 在内存开辟的一块区域,用于临时保存现场,中断系统的概念,中断类型(1),强迫性中断正在运行的程序所不期望的,由于某种硬件故障或外部请求引起的自愿性中断用户在程序中有意识安排的中断,是由于用户在编制程序时因为要求操作系统提

3、供服务,有意使用“访管”指令或系统调用,使中断发生,中断类型(2),强迫性中断 输入/输出(I/O)中断:主要来自外部设备通道 程序性中断:运行程序中本身的中断 (如溢出,缺页中断,缺段中断,地址越界) 时钟中断 控制台中断 硬件故障,中断类型(3),自愿性中断执行I/O,创建进程,分配内存 信号量操作,发送/接收消息,微机中的中断,1.可屏蔽中断(IO中断)2.不可屏蔽中断(机器内部故障、掉电中断)3.程序错误中断(溢出、除法错等中断)4.软件中断(Trap指令或中断指令INT),IBM370中的中断,1. 机器故障中断:如电源故障,机器电路检验错等 2. 输入输出中断:输入输出设备和通道数

4、据传输状态) 3. 外部中断:时钟中断,操作员控制台中断,多机系统中其它机器的通信要求中断,各种外设或传感器发来的实时中断等 4. 程序中断:程序中的问题引起的中断,如错误地使用指令或数据、溢出等问题,存储保护等 5. 访管中断:访管指令或陷阱指令(Trap指令)中的操作数规定了要求服务的类型。每当CPU执行访管指令或陷阱指令时,即引起中断并调用操作系统相应的功能模块为其服务,2、中断系统,中断系统的两大组成部分:硬件中断装置和软件中断处理程序中断系统的硬件中断装置-中断系统的机制部分负责捕获中断源发出的中断请求,以一定方式响应中断源,然后将处理器控制权交给特定的中断处理程序 软件中断处理程序

5、-中断系统的策略部分负责辨别中断类型并做出相应的操作,中断装置的基本功能,提供识别中断源的方法 提供查询中断状态的方法,通常使用一个寄存器存储有关中断的状态信息,称为中断字 提供中断现场保护的能力 提供中断处理程序寻址能力,找到恰当的中断处理程序 具有预定义的系统控制栈和中断处理程序入口地址映射表(中断向量表)等数据结构和它们在主存中的位置,以辅助OS定制中断处理策略和中断调度机制,3、中断逻辑与中断寄存器(1),如何接受和响应中断源的中断请求,因机器而异 如,在PC中: 有可屏蔽的中断请求INTR:主要是输入输出设备的I/O中断, 通过建立在PSW中的中断屏蔽位加以屏蔽,即使再有I/O中断,

6、处理器也不响应 不可屏蔽的中断请求:属于机器故障中断,包括内存奇偶校验错以及掉电等中断源 程序中的问题所引起的中断(如溢出、除法错都可以引起中断)和软件中断等 由于可能有很多中断源请求同时发生 由中断逻辑按中断优先级加以判定响应哪个中断请求,中断寄存器: 有的计算机中,为了区分和不丢失中断信号对应每个中断源分别用一固定触发器寄存中断信号规定值为1时,表示有中断信号,为0时表示无这些触发器的全体称为中断寄存器 每个触发器称为一个中断位 所以中断寄存器是由若干个中断位组成,中断逻辑与中断寄存器(2),处理器如何发现中断信号?处理器的控制部件中设一个能检测中断的机构称为中断扫描机构在每条指令执行周期

7、的最后时刻扫描中断寄存器,询问是否有中断信号 若无中断信号,继续执行下一条指令 若有中断,中断硬件将该中断触发器内容按规定编码送入PSW的相应位,称为中断码,中断逻辑与中断寄存器(3),4、多级中断和中断屏蔽,多级中断: 多数微型处理器有着多级中断系统,可以有多根中断请求线(级)从不同设备连接到中断逻辑 如M 68000有七级,PDP11有11级 具有相同特性和优先级的设备可连到同一中断级上中断优先级: 在多级中断系统中,可能同时有多个中断请求,CPU接受中断优先级为最高的那个中断 忽略其中断优先级较低的那些中断,中断优先级,在一些机器中,中断优先级按中断类型划分:以机器故障中断的优先级最高

8、程序中断和访问管理程序中断次之 外部中断更次之 输入输出的优先级最低,中断屏蔽,在CPU上运行的程序,有时由于种种原因,不希望其在执行过程中被别的事件所中断,称为中断屏蔽在PSW中设置中断屏蔽码以屏蔽某些指定的中断类型 如果其PSW的中断禁止位建立后,则屏蔽中断(不包括不可屏蔽的那些中断) 如果PSW中的中断禁止位未建立则可以接受其中断优先级高于运行程序中断优先级的那些中断 各设备接口中也有中断禁止位,以禁止该设备的中断,5、中断响应,CPU如何响应中断, 两个问题:CPU何时响应中断?通常在CPU执行了一条指令以后,更确切地,在指令周期最后时刻接受中断请求,或此时扫描中断寄存器 如何知道提出

9、中断请求的设备或中断源?因为只有知道中断源或中断设备,才能调用相应的中断处理程序,开始,取下一条指令,执行指令,检查指令 处理中断,停止,取周期,执行周期,中断周期,不允许中断,允许 中断,用软件指令去查询各设备接口这种方法比较费时 多数微型机对此问题的解决方法:使用一种“向量中断”的硬件设施“向量中断”: 当CPU接受某中断请求时,该设备接口给处理器发送具有唯一性的“中断向量”,以标识该设备 “中断向量”在各计算机上实现方法差别比较大,两种解决方法,中断向量表,在有的机器中: 将主存最低位128个字保留作为中断向量表,每个中断向量占两个字中断请求的设备接口为了标识自己,向处理器发送一个该设备

10、在中断向量表中表目的地址指针,6、中断处理(1),简单的中断处理 - 典型的处理过程: (1)设备给处理器发一个中断信号 (2)处理器处理完当前指令后响应中断,延迟非常短(要求处理器没有关闭中断) (3)处理器处理完当前指令后检测到中断,判断出中断来源并向发送中断的设备发送了确认中断信号,确认信号使得该设备将中断信号恢复到一般状态 (4)处理器开始为软件处理中断做准备:保存中断点的程序执行上下文环境,这通常包括程 序状态字PSW,程序计数器PC中的下一条指令位置,一些寄存器的值,它们通常保存在系统控制栈中,处理器状态被切换到管态,(5)处理器根据中断源查询中断向量表,获得与该中断相联系的处理程

11、序入口地址,并将PC置成该地址,处理器开始一个新的指令周期,控制转移到中断处理程序 (6)中断处理程序开始工作,包括检查I/O相关的状态信息,操纵I/O设备或者在设备和主存之间传送数据等等 (7)中断处理结束时,处理器检测到中断返回指令,被中断程序的上下文环境从系统堆栈中被恢复处理器状态恢复成原来的状态。 (8)PSW和PC被恢复成中断前的值,处理器开始一个新的指令周期,中断处理结束,中断处理(2),简单的中断处理过程,多个中断的处理(1),若中断处理过程中又发生中断,引起多中断处理问题 两种策略方法: 第一种:处理一个中断时禁止中断,对任何新中断置之不理,在这期间发生的中断将保持挂起状态当再

12、次允许中断时,新中断信号被处理器检测到 软件实现方法:在任何中断处理前使用禁止中断指令在处理结束后开放中断指令所有中断严格按照发生顺序处理不考虑中断紧急程度,无法达到较严格时间要求,多中断处理第一种策略方法,第二种:中断按照优先度分级允许优先级高中断打断优先级低的中断处理过程这样中断优先级技术将引起中断处理的嵌套只要合适地定义中断的优先级别方法一的弊端大都可以克服,多个中断的处理(2),多中断处理第二种策略方法,典型的中断处理(1):I/O中断,由I/O设备的控制器或者通道发出 两类I/O中断: I/O操作正常结束 如果要继续I/O操作,需要在准备好以后重新启动I/O,若请求I/O程序正处于等

13、待I/O状态,则应将其唤醒 I/O异常 需要重新执行失败的I/O操作 重试次数有上限,次数过大,系统将判定硬件故障,系统多道能力的重要推动力量,时钟中断处理程序通常做与系统运转、管理和维护相关的工作,包括: 维护软件时钟:系统有若干个软件时钟,控制定时任务以及进程的处理器时间配额,时钟中断需要维护、定时更新这些软件时钟 处理器时间调度:维护当前进程时间片软件时钟,并在当前进程时间片到时以后运行调度程序选择下一个被调度的进程 控制系统定时任务:通过软件时钟和调度程序定时激活一些系统任务,如监测死锁、系统记帐、系统审计等 实时处理,典型的中断处理(2):时钟中断,典型的中断处理(3):硬件故障中断

14、,硬件故障中断处理程序一般需要做的工作: 保存现场,使用一定警告手段,提供些辅助诊断信息 在高可靠系统中,中断处理程序还要评估系统可用性,尽可能恢复系统 如Windows 2000/XP,关键硬件发生故障时,如显示卡损坏,出现系统蓝屏,系统实际上进入相应故障处理程序,发现故障不可恢复,则在屏幕上打印出发生故障时程序位置,并开始进行内存转储(将一定范围的内存内容写上磁盘,是系统故障时的全系统“快照”),备日后故障诊断,程序指令出错、指令越权或者指令寻址越界而引发 两类处理方法: 只能由操作系统的相关扩展功能模块完成多为程序试图作不能做的操作引起的系统保护如访问合法的、但不在内存虚地址内,引发页故

15、障页故障一般会引发OS虚存模块作一个页面换入 可由程序自己完成,如一些算术运算错误不同程序可有不同处理方法,所以很多OS提供由用户自己处理这类中断的“绿色通道”系统调试中断(断点中断、单步跟踪)也可被用户程序处理,用以支持各种程序调试,典型的中断处理(4):程序性中断,典型的中断处理(5):系统服务请求(自愿性中断),系统服务请求由处理器专用指令(访管指令)激发 如x86处理器提供int指令,用来激发软件中断 其他不少处理器则提供系统调用指令syscall执行专用指令的结果是系统被切换到管态,并且转移到一段专门OS程序处开始执行指令格式通常是指令名加请求服务识别号(中断号) OS利用处理器提供

16、的这种接口建立系统服务体系 处理器一般不负责定义系统调用所传递的参数格式,DOS:21h号中断的系统服务功能以及参数列表现代操作系统一般不提供直接使用系统调用指令的接口,通常做法:提供一套方便、实用的应用程序函数库(应用程序设计接口API) 从应用层面重新封装系统调用 屏蔽复杂的系统调用传参问题 高级语言接口,有助于快速开发 有的系统在更高层面提供系统程序设计模板库和类库如Windows 2000/XP提供封装系统用Win32 API和高层编程机制MFC以及ATLLinux提供封装系统调用、符合POSIX标准 API和C运行库,典型的中断处理(6):系统服务请求实例,中断系统硬件完成的工作,中断系统软件完成的工作,强迫性中断事件,自愿性中断事件,保存现场信息,保存现场信息,取出中断码,取出访管号,分析中断原因,分析何种系统调用,转相应处理程序,是否中断嵌套,由系统恢复现场,由系统恢复现场,转低级调度程序,返回上层中断,返回目态程序,需要切换进程,T,F,F,T,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报