首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
某操作系统采用信号量机制实现进程同步,共有50个进程需要访问
[单选题]
某操作系统采用信号量机制实现进程同步,共有50个进程需要访问一个共享资源。为了保证互斥访问,系统引入了一个二进制信号量作为临界区的互斥锁。现在需要选择正确的信号量初值,使得只有一个进程能够进入临界区。假设进程在进入临界区之前会尝试获取信号量,若信号量值为0,则进程会被阻塞。以下选项中,哪个是正确的信号量初值?
0
1
49
50
查看正确选项
添加笔记
求解答(0)
邀请回答
收藏(20)
分享
纠错
1个回答
添加回答
0
白毛黑丝小萝莉
在使用信号量机制实现互斥访问时,正确的信号量初值应为1。以下是关键分析步骤: 1. **二进制信号量特性**:二进制信号量的值只能是0或1。初值为1表示资源可用,初值为0表示资源已被占用。 2. **互斥需求**:题目明确要求仅允许一个进程进入临界区。此时,信号量初值设为1,确保第一个进程调用P操作时成功获取资源(信号量减1至0),其他进程因信号量为0而被阻塞,从而实现互斥。 3. **错误初值分析**: - 若初值为0,所有进程在首次尝试获取时均会被阻塞,导致无法进入临界区。 - 若初值超过1(如50),这与二进制信号量的定义相悖,实际系统中会被隐式限制为1。 4. **释放机制**:当持有信号量的进程退出临界区后,通过V操作将信号量恢复为1,唤醒等待队列中的下一个进程,确保资源的循环使用。 **结论**:正确的信号量初值是 **1**。
发表于 2025-04-28 13:57:33
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
操作系统
难度:
1条回答
20收藏
103浏览
热门推荐
相关试题
请编写实现malloc()内存分配...
微软
C++
操作系统
评论
(3)
有两个N*N的矩阵A和B,想要在P...
阿里巴巴
操作系统
评论
(38)
来自
中国电信2025春招笔试...
能正确表示逻辑式“a≥10或a≤0...
C++
C语言
评论
(1)
请你罗列出3家严选对标的同类型竞争...
竞品研究
评论
(1)
下列哪些选项描述了Java中的抽象类?
Java
评论
(2)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题