Skip to content

CPU运行模式(内核态与用户态)

考情分析

内核态与用户态的区分、切换时机是选择题高频考点。🔥🔥🔥 高频。

如果任何程序都能直接操作硬件,一个有 bug 的用户程序就可能把整台机器搞崩——CPU 怎么防止这种事发生?

两种运行模式

模式别名PSW 中的模式位可执行的指令
内核态核心态、管态、特权态0所有指令(包括特权指令)
用户态目态1(或 3)非特权指令

特权指令 vs 非特权指令

类型说明示例
特权指令只能在内核态执行I/O 指令、置中断指令、修改 PSW、修改页表寄存器
非特权指令用户态和内核态都能执行算术运算、访存指令、跳转指令

判断标准

凡是可能影响其他进程或整个系统的操作,都应该是特权指令。

用户态 → 内核态

从用户态进入内核态的唯一途径中断或异常——可以类比为"普通员工(用户态)想进机房(内核态),唯一的办法是按门铃(中断),让管理员来开门"。

触发方式说明举例
外中断来自 CPU 外部的中断信号时钟中断、I/O 中断
内中断(异常)指令执行过程中产生缺页异常、除零异常
陷入(Trap)用户程序主动发出系统调用(int 0x80 / syscall

内核态 → 用户态

通过执行一条特权指令(如中断返回指令 iret),将 PSW 中的模式位改回用户态。

这是一个特权指令——只有内核态才能执行,保证了用户程序无法自行进入内核态。

内核的组成

层次组件说明
与硬件紧密相关时钟管理提供时间基准
中断处理响应和处理中断
原语(原子操作)不可中断的底层操作
内核功能进程管理调度、同步、通信
存储器管理内存分配、地址映射
设备管理I/O 控制

易混淆概念

概念解释
用户态 → 内核态硬件完成(中断触发,自动切换模式位)
内核态 → 用户态软件完成(OS 执行中断返回指令)
态的切换 ≠ 进程切换态切换不一定伴随进程切换(如系统调用后可能返回同一进程)

考研高频考点

  • 🔥🔥🔥 用户态 → 内核态的唯一途径:中断/异常
  • 🔥🔥🔥 特权指令只能在内核态执行
  • 🔥🔥 内核态 → 用户态通过中断返回指令(特权指令)
  • 🔥🔥 系统调用通过 trap 指令触发,本质是一种异常
  • 🔥 态的切换 ≠ 进程切换

知道了态切换的存在,自然会问:中断和异常到底有哪些类型,硬件和软件各自在处理流程中承担什么角色?下一篇展开讲中断和异常的分类与处理机制。

真题练习

相关真题(8题)

2026Q23选择题2分

内核态操作:装入程序涉及内存分配需在内核态执行

2024Q27选择题2分

CPU模式:用户态只能执行非特权指令,内核态可执行所有指令

2023Q26选择题2分

态切换:系统调用完成后返回用户态

2015Q24选择题2分

态切换:NOT是普通算术指令,不会引起态切换

2014Q25选择题2分

特权指令:关中断是特权指令,只能在内核态执行

2013Q28选择题2分

态切换:除零异常和read系统调用进入内核态,sin()是库函数不进入

2012Q23选择题2分

进程切换:必须在内核态执行,不可能在用户态发生

2011Q24选择题2分

用户态程序:命令解释程序(shell)在用户态运行