第 2 章 中断和异常,陷阱的区别和联系

目录

2.1. 中断Interrupt
2.2. 异常Exception
2.3. 陷阱Trap
2.4. 中断和异常,陷阱的区别和联系

摘要

说到中断,那么多很多人会想到其他几个相关的词,即异常和陷阱。

这几个概念,很多人都会搞混淆,所以,在此特别地,详细地解释一下。

首先,各自名字所对应的英文单词叫法分别是,中断是interrupt,异常是exception,陷阱是trap。

对于中断,异常和陷阱这几个词来说,其实还有其他一些相关的词:故障/错误fault,终止abort。对于这些名词,其实没有一个完全统一和精确的解释。

因此也出现,不同的厂家,不同的作者,有不同的各自的解释。

不过,相对来说,这么多名词中,最常用的,还是上面这三个:中断,异常和陷阱。

此处,对于其各自的含义,也采用大家所最常用的解释。

只是,如果你在别处看到对这些名词有不同的解释,也别太惊讶就行了。

2.1. 中断Interrupt

此处的中断,一般也成为硬件中断,即外部的硬件发生了某些事件了,然后就通知到了当前CPU,CPU跳转到对应的ISR去执行了。

此处的外部的硬件中断,和当前执行的指令,是没有任何关系的。

而且往往都是外部设备,需要引起CPU的注意,比如某个按键被按下了,定时器超时了等等,才会去打断CPU,CPU才会跳转到ISR执行,然后执行完对应的ISR,再回来继续执行下一条指令。

可见,CPU此处是被动的,也不知道什么时候,属于不可预知的,就会受到外部的硬件中断,而外部的硬件中断,和当前CPU所执行的指令,没有任何关系,即属于异步关系。