news 2026/6/26 7:23:49

【操作系统】进程同步与互斥的基本概念

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【操作系统】进程同步与互斥的基本概念

考点频率:★★★★★(必考,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篇,点击头像 → 专栏《软考中级高频考点》订阅

#软考中级 #软件设计师 #进程同步 #进程互斥 #临界区 #操作系统

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 7:23:00

铝板加工ERP单据打印技术解析:解决行业单据合规与适配难题

铝板贸易加工行业单据场景复杂,涵盖原料入库单、加工工单、分切出库单、磅单、对账单、质检报表等专属单据,存在规格参数多、理实重换算、批次追溯严、对外对账合规性要求高等特点。传统ERP打印模块通用性强、行业适配弱,普遍出现模板固定、数…

作者头像 李华
网站建设 2026/6/26 7:20:08

Marker Tracking 被动标志点追踪测量

被动标志点测量模块 Marker Tracking集成的离散标志点跟踪测量功能 Intergrated Discrete Marker TrackingVIC-3D 具备在三维空间中追踪离散标记点(圆形或领结形)的能力。与手动测量相比,该功能可大幅节省时间。此外,它还能精确测…

作者头像 李华
网站建设 2026/6/26 7:16:12

传统服装企业如何破局,看河南旭瑞服饰的多元化转型思路

传统服装企业如何破局,看河南旭瑞服饰的多元化转型思路服装代工单一赛道,越来越难走别急,很多做服装制造的老板都有这个感受。 河南旭瑞服饰有限公司,2010年成立,是本土老牌服装企业。 最早他们做服装批发,…

作者头像 李华
网站建设 2026/6/26 7:15:48

Python 正则表达式入门:从匹配手机号到提取文本内容

Python 正则表达式入门:从匹配手机号到提取文本内容 一、前言:为什么要学正则表达式? 在日常Python开发、数据处理、爬虫工作中,我们经常会遇到这些高频需求:从杂乱文本中精准提取手机号、邮箱、身份证批量替换文本中的…

作者头像 李华
网站建设 2026/6/26 7:15:40

Web 渗透测试全流程实战指南:从合规到报告,打造企业级安全评估

一、前言:为什么要做标准化 Web 渗透测试 Web 应用已成为企业核心资产与攻击重灾区。自动化扫描仅能发现 30%–50% 漏洞,业务逻辑、越权、链式利用等高阶风险必须靠人工渗透验证。本文以PTES 七阶段 + OWASP WSTG v4.2为框架,覆盖授权、侦察、测绘、漏洞、利用、后渗透、报…

作者头像 李华