处理器状态

发布时间 2023-08-02 20:30:14作者: C++杀我

处理器的状态(模式MODE)

  • 现代处理器通常将CPU状态设计 划分为两种,三种或四种
  • CPU时而运行操作系统,时而运行用户态,那CPU如何知道该运行什么呢
  • 比如在程序状态字寄存器PSW中专门设置一位,根据运行程序对资源和指令的使用权限而设置不同的CPU状态

                 

特权指令和非特权指令

  1. 操作系统只需要两种CPU状态:

  • 内核态(Kernel Mode):运行操作系统程序
  • 用户态(User Mode):运行用户程序

  2.    特权(privilege)指令:只能由操作系统使用,用户程序不能使用的指令。例如启动I/O,内存清零,修改程序状态字,设置时钟,允许/禁止中断,停机关机等。

  3. 非特权指令:用户程序可以使用的指令。例如控制转移,算数运算,访管指令,取数指令等。

        

 CPU状态之间的转换

  •  用户态 -> 内核态

  唯一途径   -> 中断/异常/陷入机制

  •    内核态 -> 用户态

    只需要设置程序状态字PSW

                   为什么叫访管指令?因为内核态也被称为管理态,“访问管理态”。