ch2-2.2中断技术(1)

上传人:ldj****22 文档编号:51936804 上传时间:2018-08-17 格式:PPT 页数:83 大小:1.16MB
返回 下载 相关 举报
ch2-2.2中断技术(1)_第1页
第1页 / 共83页
ch2-2.2中断技术(1)_第2页
第2页 / 共83页
ch2-2.2中断技术(1)_第3页
第3页 / 共83页
ch2-2.2中断技术(1)_第4页
第4页 / 共83页
ch2-2.2中断技术(1)_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《ch2-2.2中断技术(1)》由会员分享,可在线阅读,更多相关《ch2-2.2中断技术(1)(83页珍藏版)》请在金锄头文库上搜索。

1、LOGO第二章 处理器管理2.1.1 处理器用户态(目态) - 核心态(管态)有两种情况: 一是程序请求操作系统服务,执行系统调用; 二是程序运行时,产生中断或异常事件,运行 程序被中断,转向中断处理或异常处理程序工作 。 以上均通过中断机构发生2.2中断技术2.2.1 中断概念 2.2.2 中断源分类 2.2.3 中断和异常的响应及服务 2.2.4 中断事件处理 2.2.5 中断优先级和多重中断 2.2.6 Windows 2003中断处理v实现并行工作 v及时进行事故处理 v实现分时操作 v实现实时操作 v程序调试都需要通过中断机制产生中断信号并启动 内核工作。2.2中断技术2.2中断技术

2、中断对于操作系统的重要性就像机器中的驱动齿轮一样所以有人把操作系统称为是由“中断驱动”或者 “(中断)事件 驱动”中断是指程序执行过程中,遇到急需 处理的事件时,暂时中止CPU上现行程序 的运行,转去执行相应的事件处理程序, 待处理完成后再返回原程序被中断处或调 度其他程序执行的过程。2.2.1 中断的概念中断最初仅作为设备向CPU报告I/O 操作情况的一种手段,是用来解决CPU 轮询外围设备导致大量浪费CPU时间的 问题。后来这种机制被应用到其他各种情 形中,包括系统调用、异常,也出现了 用软件模拟中断机制这种行为。2.2.1 中断的概念中断由中断源或中断装置发出,其共 性:改变处理器的操作

3、执行次序,同时 也是实现了把控制权从应用程序转移出 来的功能。例如:从应用程序转移到内核2.2.1 中断的概念2.2.1 中断的概念中断源:引起中断的事件或发出中断请求的来源,称为中断源。如:控制器、通道完成I/O请求或数据传输中出错;.程序运行出错、电源故障、时钟计数到时,都可成为中断源。中断请求:中断源向CPU提出的处理请求,称为中断请求。断点:发生中断时,被打断程序的暂停点,称为断点。 2.2.1 中断的概念中断处理程序:由软件来完成,处理中断的程序。 中断装置:指发现中断,响应中断的硬件 中断响应:处理器暂停当前程序转而处理中断的过程。 中断返回:中断处理结束之后恢复原来程序的执行。

4、2.2.2中断源分类从中断事件的性质和激活的手段来 说,可以分成两类: v强迫性中断事件:强迫性中断事件不是正在 运行的程序所期待的,而是由于某种事故或 外部请求信息所引起的,随机性较强。v自愿性中断事件:自愿性中断事件是正在运 行的程序所期待的事件。2.2.2中断源分类v强迫性中断有以下几种: 机器故障中断: 程序性中断: 时钟中断: I/O中断: 控制台中断:由掉电、存储器校验错等硬件故障引起如系统操作员通过控制台发出命令等某些条件下由指令执行结果产生,如算 术溢出、被零除等由处理器内部的计时器产生,允许操作系统 以一定规律执行函数,如时间片到等I/O控制器产生,通知一个I/O操作的正常完

5、 成或发生的错误2.2.2中断源分类v自愿性中断事件是正在运行的程序所期待的 事件。这种事件是由于执行了一条访管指令 而引起的,它表示正在运行的程序对操作系 统有某种需求。一旦机器执行这一中断时, 便自愿停止现行程序而转入访管中断处理程 序处理。 v例如,要求操作系统协助启动外围设备工作 。 2.2.2中断源分类访管指令是一条可以在目态下执行的指令 ,用户程序中凡是要调用操作系统功能时就安 排一条访管指令。当处理器执行到访管指令时 就产生一个中断事件(自愿中断),暂停用户 程序的执行,而让操作系统来为用户服务。 我们可以进一步问另一个问题:为什么要在 程序执行中引入“访管指令”呢?2.2.2中

6、断源分类我们知道,用户程序只能在目态下运行,并且不 能使用特权指令。因而就存在这么一个问题:如果用 户程序想要启动外设,或者要完成在目态下无法完成 的工作,该怎么办?要解决这一问题必须有三个条件 :(1)需要有一条指令,能使处理机从目态进入管态,并向 操作系统提交要代为完成的工作;(2)在管态下由操作系统完成用户程序的请求;(3)操作系统完成所做工作后能返回到用户程序,即从管 态回到原来的目态。解决这个问题要靠访管指令。访管指令本身不是特 权指令,其基本功能是让程序拥有“自愿进管”的手段 ,从而引起访管中断。 运行程序中断处理 程序中断装置中断处理 程序中断装置机器故障中断事件程序性中断事件外

7、部中断事件输入输出中断事件 运行程序访管指令2.2.2中断源分类2.2.2中断源分类硬中断:由硬件发给CPU的中断 软中断:由软件发给软件的中断硬中断软中断外中断(中断、异步中断)内中断(异常、同步中断)信号软件中断按事件 来源和 实现手 段分类2.2.2中断源分类v 外中断(中断或异步中断):来自处理器 之外的硬件产生的中断信号,比如键盘 中断,设备中断 v 内中断(异常或同步中断):来自处理器 内部的硬件产生的中断1.硬中断:可以继续按照中断源硬件所处 的位置,分为:2.2.2中断源分类外中断(中断或异步中断) 外中断信号,不一定是代表了一定发生了外中断信号,不一定是代表了一定发生了 需要

8、需要CPUCPU处理的事情,很多时候,只是告诉一处理的事情,很多时候,只是告诉一 下下CPUCPU设备完成了某项工作,这个时候,设备完成了某项工作,这个时候,CPUCPU 其实并不一定要知道这个中断发生了。其实并不一定要知道这个中断发生了。2.2.2中断源分类v 可屏蔽中断 v 不可屏蔽中断外中断(中断或异步中断) 外中断又分为:外中断又分为:每个不同中断具有不同的中断优先级,表示事件 的紧急程度,在处理高一级的中断时,往往会屏蔽部 分或全部低级中断。有一些中断,是比较紧急的情况,是不可以忽略 的,CPU在收到这些中断信号后,必须马上进行处理 ,否则会引起系统的问题,这些就是不可屏蔽中断2.2

9、.2中断源分类vv访管中断访管中断:主动引发进行系统调用:主动引发进行系统调用 vv硬件故障硬件故障:处理器内部的硬件问题:处理器内部的硬件问题 vv程序性异常程序性异常:运算过程中出现错误,比如除数:运算过程中出现错误,比如除数 为为0 0、页故障、地址越界等。、页故障、地址越界等。内中断(异常或同步中断) CPUCPU在运算过程中,也会出现一些错误或者意在运算过程中,也会出现一些错误或者意 外事件,这里面一部分是运算发生了错误,比如除数外事件,这里面一部分是运算发生了错误,比如除数 为零等,另外一部分是程序为零等,另外一部分是程序“ “故意故意” ”而为之,目的就是而为之,目的就是 触发中

10、断机制,使控制权强行跳转到另一个地方。触发中断机制,使控制权强行跳转到另一个地方。2.2.2中断源分类v一般,把外中断就叫做“中断”,内中断叫做“异常” ,有些书上,把故意而为之的异常,称为“陷阱”, 把异常中的错误,叫“故障” v异常与正执行的指令相关,均不可屏蔽,因为其不 是错误,就是有意为之,都是有目的的 v而中断则是要分情况,有些可屏蔽,有些不可屏蔽内中断(异常或同步中断) 2.2.2中断源分类Linux中把异常按照发生之后处理的方式, 分为以下四种:v 故障(Fault):指程序运行中系统捕获的潜在可恢 复的错误,经处理后可返回当前指令再次执行; v 陷阱(Trap):执行特定的调试

11、指令时触发,被调试 的进程遇到所设置的断点处会暂停等待 v 终止(Abort):某些错误发生后,无法恢复,不会 返回原进程,有时甚至需要重启计算机 v 编程异常:用于实现系统调用,进程自愿进入核心态 以请求系统服务,属于主动行为 中断是由与现行指令无关的中断信号触发的(异步 的),且中断的发生与CPU处在用户模式或内核模 式无关,在两条机器指令之间才可响应中断,一 般来说,中断处理程序提供的服务不是为当前进 程所需的; 异常是由处理器正在执行现行指令而引起的,一条 指令执行期间允许响应异常,异常处理程序提供 的服务是为当前进程所用的。异常包括很多方面 ,有出错(fault),也有陷阱(trap

12、)等。 2.2.2中断源分类中断和异常之间的区别:2.软中断:是利用硬中断的概念,用软件方 法对中断机制进行模拟,实现宏观上的异 步执行效果。软中断分两种:2.2.2中断源分类v“信号” v“软件中断” 中断(外中断):外部设备对CPU的中断 异常(内中断):因指令执行不正常而对 CPU的中断 软件中断:用于硬中断服务程序对内核的中 断 信号:用于内核或进程,对某个进程的中断 ,向进程通知某个特定事件发生或迫使进程 执行信号处理程序。2.2.2中断源分类3.几种中断各自的用途: 概念上一致:都是中断源向某个目的地发 送中断信号 均是异步:不知道何时会发生中断事件 均设有“中断屏蔽位”,可以对于

13、一些中断信 号,置之不理 实现方式均采用向量表,以向量号做索引 查找中断处理程序2.2.2中断源分类4.中断与信号有很多类似之处: 中断由硬件和软件实现,信号则专门由软 件实现 中断向量表与中断处理程序位于内核空间 ,而信号向量表属于内核空间,但信号处 理程序一般位于用户空间 中断会立即处理,而信号则可能会延时2.2.2中断源分类5.中断与信号的区别:6.硬中断或软中断处理延时问题 vCPU接到和响应硬中断或异常后会立即调 用中断或异常处理程序处理; v对于接收到的信号或软件中断,此时由于 进程未必占有处理器运行或内核正在执行 敏感性操作,通常会有一定时间的延迟, 在适当的时刻内核或相关进程才

14、能加以处 理。2.2.2中断源分类v中断是现代计算机有效合理地发挥效 能和提高效率的一个十分重要的功能 。vCPU中通常设有处理中断的机构 中断系统,以解决各种中断的共性问 题。 2.2.3中断系统 中断系统=中断装置+中断处理程序 中断装置:捕获中断源发出的中断请求, 并以一定的方式响应中断,然后将处理 器的控制权交给特定的中断处理程序 中断处理程序:针对中断事件的性质而 执行相应的一系列操作2.2.3中断系统一、中断响应中断响应: 硬件对中断请求做出反应的过程。 中断响应过程: 中止当前程序的执行 保存程序的断点信息(主要是程序计 数器PC和程序状态寄存器的内容) 转到处理程序 2.2.3

15、中断系统 中断响应机制 (1)CPU在执行每条指令执行周期后扫描中断寄存器,查看有无中断请求如果没有,则运行下一条指令;如果有中断请求,处理器接收由硬件中断装置 发来的中断向量代号 (2)处理器为后续软件处理中断做准备工作保存中断点的程序执行上下文环境(保存现场)处理器状态切换到管态 (3)处理器根据中断向量代号查询中断向量表,获得 中断处理程序的入口地址,将PC置成该地址,将控制 权转移到中断处理程序2.2.3中断系统2.2.3中断系统二、中断处理中断处理:指中断信号已被中断系统的 硬件中断装置接收和响应后,对应的中断 处理程序进行中断处理的具体过程。软件处理中断2.2.3中断系统(1)处理

16、器控制权转移到中断处理程序之后,中段处理程序开始运作 (2)中断处理程序结束工作之后,处理器会检测到中断返回指令 执行中断返回指令:将原先被中断的程序 的上下文恢复 处理器状态恢复到被中断时的状态 中断处理结束 (3)处理器开始新的指令周期,继续执行原先 被中断的程序2.2.4 典型中断事件处理1、 I/O中断 2、时钟中断处理 3、硬件故障处理 4、程序性中断的处理 5、自愿性中断处理1、 IO中断处理由I/O设备的控制器或通道发出 vI/O正常结束 如果要继续传输,准备好数据,启动通道 如果有进程等待I/O结束,将其唤醒 vI/O传输错误 进行I/O复执,多次不成功,通知系统操作员设 备故障2 、时钟中断处理时钟中断:处理较多与系统运转、管理和维护相关的工作 v维护软件时钟:系统中若干软件时钟控制定时任务 以及进程的处理器时间配额,时钟中断维护这些软 件时钟 v处理器调度:维护当前进程的时间片软件时钟,选择调度进程 v控制系统定时任务:激

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号