中断和异常

中断机制

操作系统引入中断机制,实现了多道程序的并发执行
本质:发生中断意味着需要操作系统介入,开展管理工作

  1. 当中断发生时,CPU立即进入核心态
  2. 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
  3. 对于不同的中断信号,会进行不用的处理

发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换,分配I/O设备等)需要特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,是操作系统获得计算机控制权,有了中断,才能实现多道程序的并发执行。
注意:用户态->核心态是通过中断机制实现的,并且中断是唯一途径
核心态->用户态的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为'用户态'

中断的分类

(区别与中断信号的来源是CPU的内部,还是CPU的外部)

  1. 内中断(信号来自CPU内部,与当前执行的指令有关,也称为异常,例外,陷入)
  • 自愿中断:指令中断,例如:系统调用时使用的访管指令
  • 强迫中断:
    • 硬件故障:缺页
    • 软件故障:整数除0
  1. 外中断 (信号来自CPU外部,与当前执行的指令无关)
    • 外设请求:例如:I/O操作完成发出的中断信号
    • 人工干预:例如:用户强行终止一个进程

中断的处理过程

  1. 每条指令执行结束后,CPU检查是否有外部中断信号
  2. 若有外部中断信号,则需要保护被中断进程的CPU环境(如状态字PSW,程序计数器,各种通用寄存器)
  3. 根据中断信号的类型转入相应的中断处理程序
  4. 恢复原进程的CPU环境并退出中断,返回原进程继续往下执行
posted @ 2021-02-02 09:36  IT小五  阅读(155)  评论(0)    收藏  举报