系统中断的类型有哪些?

中断按事件来源分类,可以分为外部中断和内部中断。

中断事件来自于CPU外部的被称为外部中断,来自于CPU内部的则为内部中断。

进一步细分,外部中断还可分为可屏蔽中断(maskable interrupt)和不可屏蔽中断(non-maskable interrupt)两种,而内部中断按事件是否正常来划分可分为软中断和异常两种。

图片[1]-系统中断的类型有哪些?-不念博客
  • 外部中断

外部中断的中断事件来源于CPU外部,必然是某个硬件产生的,所以外部中断又被称为硬件中断(hardware interrupt)。

计算机的外部设备,如网卡、声卡、显卡等都能产生中断。

外部设备的中断信号是通过两根信号线通知CPU的,一根是INTR,另一根是NMI。

CPU从INTR收到的中断信号都是不影响系统运行的,CPU可以选择屏蔽(通过设置中断屏蔽寄存器中的IF位),而从NMI中收到的中断信号则是影响系统运行的严重错误,不可屏蔽,因为屏蔽的意义不大,系统已经无法运行。

  • 内部中断

内部中断来自于处理器内部,其中软中断是由软件主动发起的中断,常被用于系统调用(system call);

而异常则是指令执行期间CPU内部产生的错误引起的。

异常也和不可屏蔽中断一样不受eflags寄存器的IF位影响,区别在于不可屏蔽中断发生的事件会导致处理器无法运行(如断电、电源故障等),而异常则是影响系统正常运行的中断(如除0、越界访问等)。

© 版权声明
THE END