Skip to content

408

操作系统

同步与互斥的基本概念


一、定位信息

  • 所属圈层:核心层
  • 前置知识:了解进程的概念和并发执行(OS-02-01),了解线程共享地址空间(OS-02-04)
  • 知识网络位置:本单元是进程同步(OS-02-10至OS-02-13)的概念基础,理解竞争条件和临界区问题是掌握信号量、管程等同步机制的前提
  • 考点热度等级H级(高频重点)——同步与互斥是OS考试的核心内容,几乎每年必考

二、知识点讲解

2.1 为什么需要同步与互斥

多个进程/线程并发执行时,如果访问共享资源(如共享变量、共享文件),可能出现竞争条件(Race Condition)——执行结果取决于执行的相对速度,导致结果不可预测。

2.2 临界资源与临界区

  • 临界资源(Critical Resource):一次只允许一个进程使用的资源(如共享变量、打印机)
  • 临界区(Critical Section):进程中访问临界资源的代码段

2.3 临界区的访问结构

每个访问临界资源的进程都有以下结构:

do {
    进入区(Entry Section):检查并设置访问标志
    临界区(Critical Section):访问临界资源
    退出区(Exit Section):清除访问标志
    剩余区(Remainder Section):其余代码
} while (true);

2.4 同步与互斥

概念定义核心要求举例
互斥(Mutual Exclusion)多个进程不能同时进入临界区任一时刻最多一个进程在临界区多个进程访问同一打印机
同步(Synchronization)多个进程按约定的顺序执行按照预定的先后次序运行生产者先生产,消费者才能消费

区别:互斥解决"不能同时做"的问题,同步解决"按顺序做"的问题。互斥是同步的特殊情况。

2.5 互斥访问临界区的四个原则

  1. 空闲让进:临界区空闲时,允许一个请求进入的进程立即进入
  2. 忙则等待:临界区已有进程时,其他试图进入的进程必须等待
  3. 有限等待:进程等待进入临界区的时间必须是有限的(不能无限等待/饥饿)
  4. 让权等待:进程不能进入临界区时,应立即释放CPU(避免忙等待)

三、记忆与理解辅助

  1. 口诀记忆四原则:"空进忙等有限等,让权等待不白忙"
  2. 同步vs互斥一句话:互斥是"不能同时进",同步是"必须按顺序进"
  3. 临界区结构口诀:"进入检查→临界访问→退出清除→剩余干活"

四、例题与精解

例题1(基础巩固)

题目:以下关于临界区的描述,正确的是( )

A. 临界区是指访问共享资源的硬件设备 B. 临界区是指进程中访问临界资源的代码段 C. 不同进程的临界区不能访问同一资源 D. 临界区只能被一个进程访问一次

命题意图:考查临界区的基本概念。

精解

  1. 审题分析:需要准确理解临界区的定义
  2. 解题思路:临界区是代码段,不是硬件设备
  3. 完整步骤
    • A选项:错误。临界区是代码段,不是硬件设备
    • B选项:正确。临界区是进程中访问临界资源的那段代码
    • C选项:错误。不同进程的临界区可以访问同一临界资源(如多个进程访问同一共享变量),正因为如此才需要互斥
    • D选项:错误。临界区可以被同一进程多次进入,互斥只是保证同一时刻只有一个进程在临界区内
  4. 方法反思:临界区的本质是"代码段",不是资源本身

答案:B

例题2(中等提升)

题目:互斥访问临界区的"让权等待"原则是指( )

A. 进程不能进入临界区时应立即释放CPU B. 进程在临界区中应尽快释放CPU C. 进程应让出临界区给其他进程 D. 进程应等待CPU分配后再进入临界区

命题意图:考查"让权等待"原则的含义。

精解

  1. 审题分析:关键词是"让权等待"
  2. 解题思路:"让权"指释放CPU,"等待"指不能进入临界区时的状态
  3. 完整步骤
    • "让权等待"是指当进程无法进入临界区时,应立即释放CPU,进入阻塞状态等待,而不是占着CPU忙等(忙等待/自旋)
    • A选项正确描述了这一原则
    • B选项错误(在临界区中不应释放CPU)
    • C选项混淆了"让权"(释放CPU)和"让出临界区"
    • D选项错误(不是等待CPU分配,是释放CPU等待)
  4. 方法反思:让权等待避免了忙等待(Busy Waiting)——占着CPU反复检查,浪费CPU资源

答案:A


五、考情分析

  • 考查频次:近5年每年必考
  • 常见题型:选择题,综合题中作为基础概念
  • 分值占比:2分/题(选择题)
  • 命题趋势:基本概念题倾向于在具体场景中判断是否满足互斥/同步要求,可能与后续的信号量、管程结合出题

六、易错点提醒

  1. 错误表现:混淆"同步"和"互斥" 错误原因:两者都涉及多个进程的协调 正确理解:互斥是"不能同时做"(竞争关系),同步是"按顺序做"(协作关系)

  2. 错误表现:认为临界区是硬件资源 错误原因:将"临界资源"和"临界区"混淆 正确理解:临界资源是共享的硬件/软件资源,临界区是访问这些资源的代码段

  3. 错误表现:认为"空闲让进"和"忙则等待"是矛盾的 错误原因:没有理解两个原则适用的条件不同 正确理解:空闲让进——临界区空时立即进入;忙则等待——临界区忙时等待。两者分别针对不同情况

  4. 错误表现:认为"让权等待"是所有互斥实现必须满足的 错误原因:将原则和实现混淆 正确理解:让权等待是理想原则,但某些实现(如Peterson算法的忙等待版本)不满足此原则


七、来源标注

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

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