前言:

关于终端、异常、陷入三者之间的关系,网上有很多种分类,很多种解释。

本文对三者关系的阐述根据山东大学杨兴强教授教授的操作系统时的思路整理。

外部中断、异常、陷入:

简单的来说,中断分为陷入、异常、外部中断(外部设备的中断)。即这三者统称为中断。

其中陷入、异常又称为内部中断。

外部中断:

最容易被混淆,我们平常所说的中断既指大概念上的中断,又指的外部中断,这个要根据上下文推断。

异常:

CPU执行时出错,发出中断。是被动发生中断事件。

陷入

CPU主动跳转,比如断点调试和trap指令。使程序主动进入某一条指令流。

不同类型中断事件的比较

中断响应过程

内部、外部的关系?

内部中断指的是CPU自身产生的中断。

外部中断指的外设产生的中断。

中断和程序调用的区别

  • 中断是CPU从执行某一程序流到执行另一程序流的过程。也就是从执行程序A到执行程序B,换了一个程序。

  • 程序调用则不是这样,他还是在执行同一程序,可能是发生子函数调用等事件。

硬中断和软中断

当然网上关于硬中断和软中断的概念划分有很多,各有道理。而我们认为:硬中断指的是外部设备中断,软中断指的异常和陷入。