中断和异常
1.什么是中断
CPU上会运行两种程序,一种是内核程序,一种是应用程序。在正常的情况,CPU上面会主动运行应用程序,中断就是操作系统内核夺回CPU执行权的唯一途径,也就是用户态——>内核态。
2.内中断和外中断
2.1内中断(称为异常,中断信号来自CPU内部)
当在运行应用程序时,以下情况属于内中断:
-
试图调用非特权指令。
-
当前指令有误,发生错误(比如除0)。
-
需要调用内核服务,执行陷入指令。
2.2外中断(称为中断,中断信号来自于CPU外部)
当在运行应用程序时,以下情况属于外中断:
-
时钟中断,实现并发的原理。
-
I/O中断请求,比如打印机打印完毕给CPU发出中断请求。
3.中断机制的基本原理
不同的中断信号,需要不同的中断处理程序来处理,当CPU检测到中断信号后,会去“中断向量表”中查询相应的中断处理程序。