操作系统是硬件和进程的中间层
操作系统可以看成是硬件和进程之间的middleWare。
从下往上看,我们可以给计算机分层:
-
底层:硬件
-
中间层:操作系统
-
上层:CPU和在CPU上跑的进程
在上层的进程跑的时候,有可能需要调用硬件,但是进程不能直接跨过操作系统去调用硬件,所有必须中断,一旦开启中断,CPU就进入内核模式(反之则是用户模式),然后用户就可以与硬件交互了。
中断和异常
中断和异常会切换进入内核模式。
在CPU上,进程的每1条指令在执行完毕之后,CPU会去访问是否有中断信号。如果没有中断信号,则去执行下1条指令。
反之,则立即进入内核模式。
从触发异常/中断,到重新执行下1条指令,经历如下过程:
-
触发中断后,将进程的上下文信息(如程序计数器 PC、寄存器的值等)保存到堆栈中。
-
分析中断原因,并根据中断原因进入不同的处理程序。
-
中断处理完成之后,回到进程,再次读取堆栈中的上下文信息,重新执行下1条指令。