查看更多
当前 - 选择题 - 信号量
中等
单选题
2025年5月第44题
#第二版教材
#必须掌握

在操作系统中,经常使用 PV(Proberen/Vrijgeven)操作来实现对临界资源的互斥访问。若某信号量专门用于互斥锁(即只允许同一时刻有一个进程进入临界区),该信号量的初始值应设为多少(__)。

问题(1)
浓缩知识点

互斥信号量是操作系统中实现临界资源互斥访问的核心机制,这类信号量的初始值通常设定为1,因为1代表临界资源初始处于空闲可用状态。当进程执行P操作进入临界区时,信号量值减为0,后续进程执行P操作会因信号量为0而进入阻塞等待状态;待占用资源的进程执行V操作释放资源后,信号量值恢复为1,等待的进程才可竞争进入临界区。此外,信号量的取值有明确含义:正值表示当前可用的临界资源数量,0表示资源已被占用且无等待进程,负值的绝对值则代表等待该资源的进程总数。需要注意,互斥信号量和同步信号量存在区别,同步信号量的初始值需根据实际可用的同步资源数量设定,可取值为0或正整数,而互斥信号量因针对单一临界资源的互斥访问需求,初始值固定为1。

正确答案
B

本题考察的是互斥信号量(binary semaphore)的初始化原理
A选项 2:如果初值设为 2,则意味着允许两个进程同时进入临界区,这与互斥的要求相违背,因此错误。
B选项 1:互斥信号量用于表示资源的可用性。初始值设为 1,表示临界资源最开始是空闲的,允许第一个进程进入。进入后执行 P 操作将信号量减为 0,其余进程会因信号量为 0 而阻塞,直到占用的进程执行 V 操作释放资源并将信号量加回 1。这正好满足互斥访问的需求,因此正确。
C选项 0:若初始值为 0,则表示一开始资源就不可用,所有进程都会阻塞在 P 操作上,无法进入临界区,因此错误。
D选项 -1:信号量初始值不可能为负数,负值仅表示已有多少进程阻塞等待,不是合法的初值,因此错误。
因此,本题的正确答案是 B。

联系我们
隐私协议
用户协议
微信公众号
知乎
小红书
浙ICP备2021029036号
@2022-2026
嘉兴市安芯网络科技有限公司 版权所有