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操作
重试次数有上限,达到时系统将判定硬件故障
相关文章推荐
- 中文分词工具-IKAnalyzer下载及使用
- Ehcache详细解读
- poj-3286 How many 0's?
- SQL try
- 利用maven管理项目之POM文件配置
- ACM1001:Sum Problem
- javascript高级编程技术 第二章
- C++:vector利用swap()函数进行内存释放源码
- 【IOS】高仿百度传课
- java注解简介
- HDOJ Galaxy 5073【2014年鞍山区域赛D题-方差】
- 认识Backbone (三)
- Nginx upstream性能优化
- CentOS6.6 Install Nagios
- javascript记住用户名和登录密码(两种方式)
- NPTL分析之线程的创建
- 深入解析Oracle学习笔记(第一章)
- VS2010+Qt5.3.1+qt-vs-addin插件
- javascript 两个等号和三个等号的区别
- Find Minimum in Rotated Sorted Array II