中断与异常机制工作原理

1.软硬件分工:

  • 硬件 —— 中断/异常响应: 捕获中断源发出的中断/异常请求,以一定方式响应,将处理器控制权交给特定的处理程序。
  • 软件 —— 中断/异常处理程序: 识别中断/异常类型并完成相应的处理。

2.中断响应过程:
这里写图片描述
(中断向量:一个内存单元,存放中断处理程序入口地址和程序运行时所需的处理机状态字)

中断响应步骤:
① 设备发中断信号。
② 硬件保存现场(PC、PSW的内容)。
③ 根据中断码查表。
④ 把中断处理程序入口地址等推送到相应的寄存器。
⑤执行中断处理程序。

3.中断处理程序:
设计操作系统时,为每一类中断/异常事件编好相应的处理程序,并设置好中断向量表:
这里写图片描述

中断处理程序步骤:
①保存相关寄存器信息。
② 分析中断/异常的具体原因。
③执行对应的处理功能。
④恢复现场,返回被事件打断的程序。

4.实例:

  • 打印机给CPU发中断信号。
  • CPU处理完当前指令后检测到中断,判断出中断来源并向相关设备发确认信号。
  • CPU开始为软件处理中断做准备:
    (1)处理器状态被切换到内核态。
    (2)在系统栈中保存被中断程序的重要上下文环境,主要是程序计数器PC、程序状态字PSW。
  • CPU根据中断码查中断向量表,获得与该中断相关的处理程序的入口地址,并将PC设置成该地址,新的指令周期开始时,CPU控制转移到中断处理程序。
  • 中断处理程序开始工作 :
    (1)在系统栈中保存现场信息 。
    (2)检查I/O设备的状态信息,操纵I/O设备或者在设备和内存之间传送数据等等。
  • 中断处理结束时,CPU检测到中断返回指令,从系统栈中恢复被中断程序的上下文环境,CPU状态恢复成原来的状态,PSW和PC恢复成中断前的值,CPU开始一个新的指令周期。

5.x86处理器对中断的支持:

  • 中断描述符表 (Interrupt Descriptor Table):采用门(gate) 描述符数据结构表示中断向量。
  • 全局描述符表(Global Descriptor Table):在整个系统中,全局描述符表GDT只有一张(一个处理器对应一个GDT),GDT可以被放在内存的任何位置,但CPU必须知道GDT的入口,也就是基地址放在哪里,Intel的设计者门提供了一个寄存器GDTR用来存放GDT的入口地址。

这里写图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值