操作系统的状态
两种程序:应用程序、内核程序
两种指令:
- 特权指令:操作系统内核作为“管理者”,有时会让CPU执行一些“特权指令”,如“内存清零指令”。这些指令影响重大,只允许“管理者”,即操作系统内核来使用
- 非特权指令:应用程序只能使用“非特权指令”,如加法指令、减法指令等
CPU能判断出指令类型,但是它怎么区分此时正在运行的是内核程序还是应用程序?
两种处理器状态:
- 内核态(核心态、管态):处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令
- 用户态(目态):处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令,CPU中有一个寄存器叫程序状态字寄存器(PSW),其中有个二进制位,1表示“内核态”,0表示“用户态”
内核态 -> 用户态:执行一条特权指令,修改PSW的标志位为“用户态”,这个动作意味着操作系统将主动让出CPU使用权
用户态 -> 内核态:由“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权(除了非法使用特权指令之外,还有很多事件会触发中断信号,一个共性是,但凡需要操作系统介入的地方,都会触发中断信号)