408 知识网络

互斥四原则 空闲让进 / 忙则等待 有限等待 / 让权等待

操作系统

所属模块:OS-3 同步与互斥(信号量与 PV 设计) · 本模块第 3 / 16 个概念

在「OS-3 同步与互斥(信号量与 PV 设计)」概念体系中的位置

flowchart TD
    A["并发进程共享资源<br/>→ 竞争条件"] --> B["临界资源 / 临界区"]
    B --> C["互斥四原则<br/>空闲让进 / 忙则等待<br/>有限等待 / 让权等待"]
    C --> D1["软件算法<br/>单标志→双标志→Peterson"]
    C --> D2["硬件指令<br/>关中断 / TSL / Swap"]
    C --> D3["信号量<br/>整型→记录型"]
    C --> D4["管程"]
    D1 -- "忙等、不满足让权等待" --> D2
    D2 -- "仍忙等" --> D3
    D3 -- "P/V 分散在代码中易错" --> D4
    D3 --> E["扩展:同步问题<br/>前驱关系 / 经典模型"]
    E --> F["PV 设计题"]

核心概念清单:

概念 定义要点 易考点
临界资源 一次只允许一个进程使用的资源(打印机、共享变量、缓冲区) 局部变量不是临界资源(2016 年 30 题)
临界区 访问临界资源的那段代码(不是资源本身) 进入区/临界区/退出区/剩余区四段结构
互斥四原则 空闲让进、忙则等待、有限等待、让权等待 “让权等待”是判别忙等方案的关键词(2016 年 27、2018 年 32、2020 年 32 题)
信号量 S 一个整数值 + 一个阻塞队列,只能经 P/V 访问 初值 = 可用资源数;当前值 1、初值 3 → 可用 1 个、等待 0 个(2010 年 25 题)
P / wait(S) S--;若 S < 0 则阻塞自己并入队 P、V 本身必须是原子操作(2022 年 45 题第 1 问)
V / signal(S) S++;若 S ≤ 0 则唤醒队首一个进程 唤醒≠立即运行,只是变就绪
管程 把共享数据结构和其上操作封装为一个模块,编译器保证任一时刻最多一个进程在内执行 “管程只能实现互斥”是错误说法(2016 年 32 题,管程也能实现同步)

来源:复习资料 P3 §四;王道 2027 操作系统 进程管理章。