Skip to content

408

操作系统

CPU运行模式(用户态/内核态/模式切换)


一、定位信息

  • 所属圈层:核心层
  • 前置知识:了解CPU的基本工作原理(指令执行周期),了解操作系统的四大特征(OS-01-01)
  • 知识网络位置:本单元是理解系统调用、中断机制、进程特权级的基础,与OS-01-04(中断/异常/系统调用)紧密关联
  • 考点热度等级H级(高频重点)——近5年选择题出现≥3次,是理解后续机制的基石

二、知识点讲解

2.1 为什么需要区分CPU运行模式

CPU执行的指令分为两类:普通指令(如算术运算、数据传送)和特权指令(如I/O指令、修改页表寄存器、关中断)。如果用户程序能执行特权指令,就可能破坏系统安全。因此CPU必须区分运行模式来保护系统安全

2.2 用户态与内核态

维度用户态(目态/User Mode)内核态(管态/Kernel Mode)
权限只能执行非特权指令可以执行所有指令(包括特权指令)
能访问的资源只能访问自己的用户空间可以访问整个地址空间
运行的程序用户程序操作系统内核代码
硬件支持PSW中的模式位=1(用户态)PSW中的模式位=0(内核态)

程序状态字(PSW):CPU中的特殊寄存器,其中的模式位标识当前CPU处于用户态还是内核态。

2.3 内核态与用户态的切换

  • 用户态→内核态(由用户程序主动触发或被动触发):
    • 用户程序执行系统调用(如 read()write()
    • 发生中断(如时钟中断、I/O中断)
    • 发生异常(如缺页异常、除零错误)
  • 内核态→用户态(由OS内核执行):
    • OS完成中断/异常/系统调用的处理后,通过中断返回指令(如x86的 iret)恢复用户程序执行,CPU回到用户态

2.4 切换过程

模式切换的具体步骤:

  1. 保存当前进程的上下文(PC、PSW、通用寄存器等)到内核栈或PCB
  2. 修改PSW的模式位(用户态→内核态)
  3. 跳转到中断/异常处理程序入口
  4. 执行内核代码
  5. 恢复之前保存的上下文
  6. 修改PSW的模式位(内核态→用户态)
  7. 继续执行用户程序

三、记忆与理解辅助

  1. 口诀:"用户不能干的事叫特权指令,内核啥都能干"——用户态受限,内核态全权
  2. 记忆要点:三种切换触发方式——系统调用(自愿)、中断(被动/异步)、异常(被动/同步)
  3. 对比表:三种切换触发方式
触发方式主动/被动同步/异步来源典型例子
系统调用主动同步用户程序fork()read()
中断被动异步外部设备/时钟I/O完成中断、时钟中断
异常被动同步CPU内部执行错误缺页异常、除零异常

四、例题与精解

例题1(基础巩固)

题目:CPU处于用户态时,以下操作中可以执行的是( )

A. 关中断 B. 读取系统时钟 C. 修改页表基址寄存器 D. I/O指令

命题意图:考查用户态与内核态的权限区分。

精解

  1. 审题分析:用户态只能执行非特权指令,需判断哪些是特权指令
  2. 解题思路:特权指令是可能影响系统安全或全局状态的指令
  3. 完整步骤
    • A选项:关中断是特权指令,用户态不可执行。否则用户关中断后OS无法响应中断,系统瘫痪
    • B选项:读取系统时钟通常是非特权指令,用户态可以执行。许多架构提供用户态可读的时钟寄存器
    • C选项:修改页表基址寄存器是特权指令。页表关系到整个内存保护机制,必须由OS管理
    • D选项:I/O指令是特权指令。否则用户程序可以直接操作硬件,破坏系统安全
  4. 方法反思:判断是否为特权指令的核心原则——"该操作是否可能破坏系统安全或影响其他进程"

答案:B

例题2(中等提升)

题目:下列关于CPU运行模式切换的描述,正确的是( )

A. 从用户态切换到内核态是由用户程序执行特权指令触发的 B. 从内核态切换到用户态是由硬件自动完成的 C. 系统调用是从用户态切换到内核态的唯一途径 D. 从用户态切换到内核态时,需要保存用户程序的上下文

命题意图:考查模式切换的机制与过程。

精解

  1. 审题分析:需要理解模式切换的具体过程和触发方式
  2. 解题思路:回顾模式切换的触发条件和步骤
  3. 完整步骤
    • A选项:错误。用户态不能直接执行特权指令。切换是通过系统调用(执行陷入指令 trap)、中断或异常触发的,而非直接执行特权指令
    • B选项:错误。从内核态切换到用户态需要OS执行中断返回指令(如 iret),这是软件行为,不是纯硬件自动完成
    • C选项:错误。除系统调用外,中断和异常也会导致用户态→内核态的切换
    • D选项:正确。切换时必须保存用户程序的上下文(PC、PSW、寄存器等),以便之后恢复执行
  4. 方法反思:模式切换的核心是"保存→切换→恢复"的过程,三种触发方式(系统调用、中断、异常)不要遗漏

答案:D


五、考情分析

  • 考查频次:近5年约3–4次
  • 常见题型:选择题,偶尔作为综合题的子问题
  • 分值占比:2分/题(选择题),或综合题中的3–5分
  • 命题趋势:近年倾向于将用户态/内核态与系统调用、中断结合起来考查,不仅考定义,更考切换过程和具体操作

六、易错点提醒

  1. 错误表现:认为用户态可以直接执行特权指令然后被OS捕获 错误原因:混淆了软件异常和硬件权限检查 正确理解:用户态执行特权指令是由硬件直接拒绝(触发异常),而非"先执行再捕获"

  2. 错误表现:认为从内核态回到用户态是自动完成的 错误原因:忽略了需要OS执行中断返回指令 正确理解:内核态→用户态需要OS主动执行中断返回指令(如 iret),修改PSW模式位

  3. 错误表现:混淆"中断"和"异常"导致的模式切换 错误原因:两者都导致用户态→内核态,但触发源不同 正确理解:中断来自CPU外部(异步),异常来自CPU内部(同步)

  4. 错误表现:认为PSW中只记录了CPU运行模式 错误原因:对PSW的功能理解不完整 正确理解:PSW还记录了条件码(溢出、零等)、中断使能标志等信息


七、来源标注

  • 依据2026考研统考408大纲
  • 依据《计算机操作系统》(汤小丹/汤子瀛版)第1章
  • 依据《操作系统概念》(Silberschatz版)第1–2章

考研全科复习资料 - 基于2026考研统考大纲