考点频率:★★★★★(必考,PV操作的前置基础)
难度:⭐⭐
建议:掌握同步与互斥的本质区别,理解临界资源的概念
1️⃣ 为什么要引入同步与互斥?
在多道程序设计环境下,多个进程(或线程)共享系统中的各种资源(如CPU、内存、I/O设备、共享变量等)。共享带来效率提升的同时,也带来了资源竞争的问题。
- 如果两个进程同时修改同一个共享变量,可能导致数据不一致。
- 如果一个进程在打印文件,另一个进程也同时使用打印机,输出会混乱。
因此,操作系统需要提供机制来协调多个进程对共享资源的访问,这就是进程同步与互斥要解决的问题。
2️⃣ 基本概念
2.1 临界资源(Critical Resource)
定义:一次只允许一个进程使用的资源,称为临界资源。
常见临界资源:
- 共享变量(如计数器 count)
- 打印机
- 磁带机
- 共享缓冲区(如生产者-消费者中的缓冲区)
注意:临界资源是互斥机制产生的原因。正是因为资源一次只能给一个进程用,才需要同步与互斥机制来保证访问顺序的有序性。
2.2 临界区(Critical Section)
定义:每个进程中访问临界资源的那段代码。
进程P: ┌─────────────────────┐ │ 非临界区代码 │ ├─────────────────────┤ │ 进入区(申请资源) │ ← 临界区入口 │ 临界区(访问资源) │ ← 核心 │ 退出区(释放资源) │ ← 临界区出口 ├─────────────────────┤ │ 非临界区代码 │ └─────────────────────┘一个合格的临界区管理方案应满足以下四个原则:
| 原则 | 说明 |
|---|---|
| 忙则等待 | 已有进程在临界区时,其他进程必须等待 |
| 空闲让进 | 无进程在临界区时,允许一个请求者进入 |
| 有限等待 | 任何进程不能无限等待,必须保证在有限时间内能进入 |
| 让权等待 | 不能进入临界区的进程,应释放CPU资源 |
2.3 进程互斥(Mutual Exclusion)
定义:当多个进程竞争同一个临界资源时,保证同一时刻只有一个进程进入临界区访问该资源。
本质:互斥解决的是多个进程争抢一个资源的问题(“你用了我就不能用”)。
举例:两个学生都想用同一台打印机,系统必须保证同一时刻只有一个人在打印。任何人打印期间,其他人必须等待。
2.4 进程同步(Synchronization)
定义:多个进程在执行顺序上必须遵守某种先后次序,一个进程必须等待另一个进程完成某件事后才能继续执行。
本质:同步解决的是进程间的协作顺序问题(“你做完了我才能做”)。
举例:生产者和消费者问题——消费者必须先等生产者生产出产品,然后才能消费。这就是一种“先生产后消费”的顺序关系。
3️⃣ 同步 vs 互斥(重点区分)
| 对比项 | 互斥 | 同步 |
|---|---|---|
| 本质 | 竞争关系 | 合作关系 |
| 问题 | 资源能否访问 | 事件发生的顺序 |
| 典型关系 | 你给我滚开,我要用 | 你先完成,我再开始 |
| 涉及资源 | 同一临界资源 | 多个进程之间传递信号 |
| 典型场景 | 多进程争打印机 | 生产者-消费者、前驱图 |
关系:互斥是特殊的同步。可以说,互斥是解决“谁先用资源”的同步问题。
4️⃣ 常见同步互斥问题的分类
| 类型 | 典型问题 | 解决方案 |
|---|---|---|
| 互斥问题 | 多进程使用同一共享变量或I/O设备 | 信号量PV操作(互斥信号量) |
| 同步问题 | 生产者-消费者、读者-写者、哲学家进餐 | 信号量PV操作(同步信号量) |
| 前驱关系 | 作业A必须先于作业B执行 | 前趋图 + PV操作 |
5️⃣ 经典例题
例题1:在操作系统中,临界区是指( )。
A. 访问临界资源的程序段
B. 进程执行过程中访问共享变量的程序段
C. 进程执行过程中访问临界资源的程序段
D. 进程执行过程中一次只能由一个进程访问的程序段
解析:临界区是访问临界资源的那段代码。选D(注意是“访问临界资源的程序段”,而不是任意共享变量)。
例题2:以下关于进程同步与互斥的叙述中,正确的是( )。
A. 互斥是同步的一种特殊形式
B. 同步是互斥的一种特殊形式
C. 互斥和同步没有任何关系
D. 互斥和同步解决的是同一个问题
解析:互斥是“资源能否访问”的问题,同步是“事件发生的顺序”问题。互斥可以看作是一种“谁先进入临界区”的同步。选A。
6️⃣ 记忆口诀
临界资源一次用,临界区是访问段。
互斥解决争资源,同步协调执行序。
同步互斥紧相连,PV操作来管理。
7️⃣ 小测验(评论区对答案)
某系统中有一个临界资源,两个进程P1和P2都要访问该资源。若P1正在访问该资源,则P2此时( )。
A. 可以同时访问
B. 必须等待,直到P1释放资源
C. 可以抢占P1的资源
D. 可以访问该资源的另一部分
🔔本专栏日更2篇,点击头像 → 专栏《软考中级高频考点》订阅
#软考中级 #软件设计师 #进程同步 #进程互斥 #临界区 #操作系统