1.异常是用来响应处理器中状态变化的异常控制流
如何理解处理器的状态:
- 在处理器中,状态被编码为不同的信号和位。
- 当有一些需要事件发生时,这些信号和位会改变。
- 如:内存缺页、指令除零、下断电、定时器信号都会引起处理器中某些位或信号的变化,从而产生异常。
2.异常分为四类
- 中断:来自处理器外部 I/O 设备的信号的结果
- 陷阱:一条指令执行造成的结果,产生这个异常一般是有意的
- 故障:由一些错误情况引起的,可能被故障处理程序修复,如果没法修复这个程序就会被终止
- 终止:由一些无法恢复的错误产生的,一般是一些硬件故障。
异常经常在别的教科书或文章中与中断混为一谈,但这里异常是一个较为宽泛的概念,包括了外部设备产生的中断信号、还有指令产生的陷阱以及一些故障等。
2.异常由硬件和软件共同来处理
- 当有异常产生时,处理器检测到一些位发生了变化,然后确定异常类型,通过异常向量表间接调用异常处理程序
- 然后剩下的工作就是由异常处理程序在软件中完成,处理这个异常