☰
408真题解析-2010-25-操作系统-信号量
2026/10/10 6:08:20 网站建设 项目流程

一 真题2010-25

2010-25. 设与某资源关联的信号量初值为 3,当前值为 1。若 M 表示该资源的可用个数,N 表示等待该资源的进程数,则 M、N 分别是( )。

A. 0,1
B. 1,0
C. 1,2
D. 2,0

二 题目要素解析

核心考点:整型信号量的核心含义,属于操作系统进程同步与互斥模块的基础核心考点,考查信号量值与资源可用数、等待进程数的一一对应关系,是 408 统考选择题的经典常考题型。

考查知识点

  • 整型信号量的定义:信号量值与资源可用个数的直接关联关系;
  • 信号量的 P/V 操作对信号量值、资源数、等待进程数的影响;
  • 判定等待进程数的核心条件:信号量值小于 0时,其绝对值为等待该资源的进程数。

题型特征:数值对应类选择题,无复杂计算,侧重对信号量基本概念的精准理解,属于基础概念辨析题,易因混淆信号量值与等待进程数的判定条件而出错。

易错点

  • 误将信号量当前值与资源可用数割裂开,错误计算资源可用个数;
  • 忽略等待进程数仅在信号量值 < 0 时存在的核心条件,盲目根据初值与当前值的差值计算等待进程数。

三 哔哔详解

本题解题核心是牢牢掌握整型信号量的两个核心判定规则,直接通过信号量当前值推导资源可用个数和等待进程数,无需复杂的 P/V 操作反推,一步判定结果。

前置概念铺垫

在操作系统的整型信号量机制中,信号量(S)是用于实现进程同步与互斥的核心变量,与共享资源强关联,其值的含义有严格且唯一的定义(408 必背),是解此类题的关键:

  1. 信号量的初值:表示系统中该共享资源的初始总个数,本题中初值为 3,即该资源初始有 3 个;

  2. 信号量的当前值(S):直接表示系统中该资源的可用个数(空闲个数);

  3. 等待进程数的判定规则:仅当信号量当前值 S < 0时,其绝对值 | S|*表示*等待该资源的进程数;若S ≥ 0**,则等待该资源的进程数为0(无进程等待)。

    核心逻辑:P 操作(申请资源)会使 S-1,V 操作(释放资源)会使 S+1;仅当申请资源时无可用资源(S-1<0),进程才会阻塞并进入等待队列。

题干条件逐一推导

已知题干中与资源关联的信号量当前值为 1,结合上述核心规则直接推导:

  1. 推导资源可用个数 M:信号量当前值直接表示资源可用个数,因此 M = 信号量当前值 =1;
  2. 推导等待该资源的进程数 N:信号量当前值 1 ≥ 0,根据判定规则,此时无进程等待该资源,因此 N =0。

选项最终判定

M=1、N=0,对应正确选项为B。

四 参考答案

B ✅

五 考点精析

5.1 整型信号量的定义

整型信号量是一种由Dijkstra 提出的同步机制,其本质是一个整型变量S,用于表示系统中某类临界资源的可用数量,并配合两个原子操作 P(Wait)和 V(Signal)实现进程互斥与同步。

  • 数学表示:semaphore S;
  • 初值设定:
    • 互斥信号量:S = 1(仅一个进程可进入临界区)
    • 同步信号量:S = 0(用于前驱-后继关系)
    • 资源计数信号量:S = n(n 个同类资源)

5.2 性质与特征

特性说明
原子性P/V 操作必须是不可分割的原子操作(执行期间不被中断)
非负性(理想)理论上S ≥ 0,但实际实现中可能为负(表示等待进程数)
忙等待(Busy Waiting)❗ 最大缺陷:当S ≤ 0时,进程在 P 操作中循环测试,持续占用 CPU(不满足“让权等待”)
仅支持互斥/简单同步无法高效处理复杂同步场景(如生产者-消费者需多个信号量)
无等待队列不记录等待进程信息,仅靠循环重试

💡关键局限:
整型信号量因“忙等待”问题,在现代操作系统中已被记录型信号量取代,但仍是理解同步机制的基础


5.3 P/V 操作对信号量状态的影响

1.对信号量值S的影响

操作动作公式
P(S)申请资源S = S - 1
V(S)释放资源S = S + 1

✅ 无论资源是否可用,P/V 都会立即修改 S 值(这是原子性的体现)

2.对可用资源数的影响

操作可用资源数变化
P(S)若原S > 0→ 可用资源减 1 若原S ≤ 0→ 无资源可减(但 S 仍减 1)
V(S)可用资源加 1(若之前有等待进程,则资源被立即分配,对外表现为“可用数不变”)

📌注意:

  • 可用资源数 =max(S, 0)(仅当 S ≥ 0 时才有实际可用资源)
  • 当 S < 0 时,可用资源数 = 0

3.对等待进程数的影响

操作等待进程数变化
P(S)若执行后S < 0→ 等待进程数 = `
V(S)若执行前S ≤ 0→ 理论上应唤醒一个等待进程 (但整型信号量无唤醒机制,依赖其他进程再次尝试 P)

⚠️核心缺陷体现:
整型信号量没有阻塞/唤醒机制,因此:

  • 等待进程数在逻辑上存在(由 S 的负值隐含)
  • 但物理上所有进程都在运行态忙等,无真正“阻塞队列”

六 考点跟踪

年份题号考查内容CSDN 参考链接VX参考链接
2010第25题信号量
2015第45题信号量同步互斥
2017第46题信号量同步互斥
2020第45题信号量同步互斥
2021第45题信号量同步互斥
2022第46题信号量同步互斥
2024第46题信号量同步互斥

说明:本文内容基于公开资料整理,参考了包括但不限于《数据结构》(严蔚敏)、《计算机操作系统》(汤小丹)、《计算机网络》(谢希仁)、《计算机组成原理》(唐朔飞)等国内高校经典教材,以及其他国际权威著作。同时,借鉴了王道、天勤、启航等机构出版的计算机专业考研辅导系列丛书中的知识体系框架与典型题型分析思路。文中所有观点、例题解析及文字表述均为作者结合自身理解进行的归纳与重述,未直接复制任何出版物原文。内容仅用于学习交流,若有引用不当或疏漏之处,敬请指正。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询