操作系统【OS】中断和异常

 

异常(内中断)

中断(外中断)

基本概念

  • 由CPU执行指令内部产生的事件
  • 内中断都是屏蔽中断,一旦出现,就要立即处理。
  • 由来自CPU外部的设备发出的中断请求(常用于输入输出)
  • 典型的由外部设备触发的、与当前正在执行的指令无关的异步事件
  • 外部I/O设备通过特定的中断请求信号线向CPU提出中断请求
  • CPU每执行完一条指令就检查中断请求信号线,若检测到中断请求,则进入中断响应期
  • 外部中断都是在一条指令执行完成后(中断周期)才被检测并处理的

分类

故障

  • 由指令执行引起的异常
  • 在引起故障的指令启动之后、执行结束前被检测到的异常事件

自陷

  • 也称陷阱或陷入,是预先安排的一种“异常事件”,就像预先设置好的“陷阱”一样

终止

  • 若在执行指令的过程中发生了使计算机无法继续执行的硬件故障,那么程序将无法继续执行,只能终止

可屏蔽中断(INTR)

  • 通过可屏蔽中断请求线INTR向CPU发出的中断请求
  • 通过改变屏蔽字可以实现多重中断

不可屏蔽中断(NMI)

  • 通过不可屏蔽中断请求线NMI向CPU发出的中断请求
  • 通常是非常紧急的硬件故障,如电源掉电等。
  • 不受中断标志位的影响,即使在关中断的情况下也会被响应

举例

故障

  • 指令译码时,出现“非法操作码”
  • 取数据时,发生“缺段”或“缺页”
  • 除数为零
  • 地址越界
  • 运算溢出

自陷

  • x86机器中,用于程序调试“断点设置”和单步跟踪功能
  • 系统调用指令
  • 条件自陷指令

终止

  • 控制器出错
  • 存储器校验错
  • 调出中断服务程序来重启系统
  • 终止异常(Abort)和外中断属于硬件中断
  • 故障异常和自陷异常属于软件中断
  • I/O中断:键盘输入,打印机缺纸
  • 时钟中断:一个固定的时间片已经到了,让处理机处理计时、启动定时运行的任务

执行时间

  • CPU在执行指令时会检查是否有异常发生
  • 每个指令周期末尾,CPU都会检查是否有外中断信号需要处理

不同点

  • 缺页”或“溢出”等异常事件是由特定指令在执行过程中产生的
  • 异常的检测由CPU自身完成,不必通过外部的某个信号通知CPU
  • 中断不与任何指令相关联,也不阻止任何指令的完成

 

CPU响应可屏蔽中断需要满足3个条件:

中断源有中断请求;

CPU允许中断及开中断;

一条指令执行完毕,且没有更紧迫的任务。

你可能感兴趣的:(操作系统,考研,操作系统,408)