处理器状态
处理器的状态(模式MODE)
- 现代处理器通常将CPU状态设计 划分为两种,三种或四种
- CPU时而运行操作系统,时而运行用户态,那CPU如何知道该运行什么呢
- 比如在程序状态字寄存器PSW中专门设置一位,根据运行程序对资源和指令的使用权限而设置不同的CPU状态
特权指令和非特权指令
1. 操作系统只需要两种CPU状态:
- 内核态(Kernel Mode):运行操作系统程序
- 用户态(User Mode):运行用户程序
2. 特权(privilege)指令:只能由操作系统使用,用户程序不能使用的指令。例如启动I/O,内存清零,修改程序状态字,设置时钟,允许/禁止中断,停机关机等。
3. 非特权指令:用户程序可以使用的指令。例如控制转移,算数运算,访管指令,取数指令等。
CPU状态之间的转换
- 用户态 -> 内核态
唯一途径 -> 中断/异常/陷入机制
- 内核态 -> 用户态
只需要设置程序状态字PSW
为什么叫访管指令?因为内核态也被称为管理态,“访问管理态”。