您的位置:首页 > 其它

2-2 中断/异常机制工作原理

2015-08-04 14:17 246 查看


一、中断/异常机制工作原理
1. 中断/异常机制是现代计算机系统的核心机制之一
硬件和软件相互配合而使计算机系统得以充分发挥能力
●硬件该做什么事?--中断/异常响应
捕获中断源发出的中断/异常请求,以一定方式响应,将处理器控制权交给特定的处理程序
●软件要做的什么事?---中断/异常处理程序
识别中断/异常类型并完成响应的处理
2. 中断响应:发现中断、接收中断的过程
由中断硬件部件完成
处理器控制部件中设有中断寄存器,保存了中断信号
中断响应过程示意图



3. 中断向量表
中断向量:一个内存单元,存放中断处理程序入口地址和程序运行时所需的处理机状态字
执行流程按中断号/异常类型的不同通过中断向量表转移控制权给中断处理程序
4. linux中的中断向量表



5. 中断响应示意图


6. 中断处理程序
设计操作系统时,为每一类中断/异常事件编好相应的处理程序,并设置好中断向量表
系统运行时若响应中断,中断硬件部件将CPU控制权转给中断处理程序:
保存相关寄存器信息
分析中断/异常的具体原因
执行对应的处理功能
恢复线程,返回被事件打断的程序
小结:软件提前设置好,硬件部件来执行
7. 例子:以设备输入输出中断为例
①打印机给CPU发中断信号(硬件)
CPU处理完当前指令后检测到中断,判断出中断来源并向相关设备发确认信号

②CPU开始为软件处理中断做准备:(硬件)
处理器状态被切换到内核态
在系统栈中保存被中观程序的重要上下文环境,主要是程序计数器PC,程序状态字PSW

③CPU根据中断码查中断向量表,获得与该中断相关的处理程序的入口地址,并向PC设置成该地址,新的指令周期开始时,CPU控制转移到中断处理程序(硬件)

④中断处理程序开始工作(软件)
在系统栈中保存现场信息
检查I/O设备的状态信息,操纵I/O设备或者在设备和内存之间传送数据等等

⑤中断处理结束时,CPU检测到中断返回指令,从系统栈中恢复被中断程序的上下文环境,CPU状态恢复成原来的状态,PSW和PC恢复成中断前的值,CPU开始一个新的指令周期(硬件)
8. 例子:I/O中断处理程序(软件)
通常分为两类处理:
I/O操作正常结束
若有程序正等待此次I/O的结果,则应将其唤醒
若要继续I/O操作,需要准备号数据重新启动I/O

I/O操作出现错误
需要重新执行失败的I/O操作
重试次数有上限,达到时系统将判定硬件故障
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: