从【操作系统】理解【中断】和【异常】

65 阅读1分钟

操作系统是硬件和进程的中间层

操作系统可以看成是硬件进程之间的middleWare。

从下往上看,我们可以给计算机分层:

  1. 底层:硬件

  2. 中间层:操作系统

  3. 上层:CPU和在CPU上跑的进程

在上层的进程跑的时候,有可能需要调用硬件,但是进程不能直接跨过操作系统去调用硬件,所有必须中断,一旦开启中断CPU就进入内核模式(反之则是用户模式),然后用户就可以与硬件交互了。

中断和异常

中断异常会切换进入内核模式

在CPU上,进程的每1条指令在执行完毕之后,CPU会去访问是否有中断信号。如果没有中断信号,则去执行下1条指令

反之,则立即进入内核模式

触发异常/中断,到重新执行下1条指令,经历如下过程:

  • 触发中断后,将进程的上下文信息(如程序计数器 PC、寄存器的值等)保存到堆栈中。

  • 分析中断原因,并根据中断原因进入不同的处理程序。

  • 中断处理完成之后,回到进程,再次读取堆栈中的上下文信息,重新执行下1条指令