首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
若有4个进程共享同一程序段,而且每次最多允许3个进程进入该程
[单选题]
若有4个进程共享同一程序段,而且每次最多允许3个进程进入该程序段,则信号量的变化范围是()
3,2,1,0
3,2,1,0,-1
4,3,2,1,0
2,1,0,-1,-2
查看答案及解析
添加笔记
求解答(26)
邀请回答
收藏(390)
分享
4个回答
添加回答
38
晓宇大美女~
当信号量是负数的时候表示有进程在等待,是负几就代表有几个进程在等待,因为最多有一个进程在等待,所以信号量最小只能是-1
发表于 2016-03-25 15:20:22
回复(0)
15
L.K.
允许3个进程同时进入程序段,因此信号量S设为3.
这里的信号量P操作应该是等待时,将其挂到信号量等待队列中,因此可以为负数。先对信号量执行减1操作,如果为负数,将进程添加到信号量等待队列,并挂起进程。
本题中,当3个线程进入程序段后,S=0;第4个进程再想进入时,S=-1,因此取值范围是[3,-1](整数)。
void P(sem S)
{
S--;
if(S < 0)
add to waiting list of S;
block();
}
发表于 2015-08-04 11:29:38
回复(0)
6
yxliuxinglin
A
“信号量s是具有非负整数值的全局变量”,只有两个操作P(s)和V(s):
P(s):如果s非零,那么P将s减1,并且立即返回。如果s为零,那么就挂起这个线程,直到s变为非零,而一个V操作会重启这个线程。在重启之后,P操作将s减1,并将控制返回给调用者。
发表于 2015-08-24 18:11:11
回复(0)
1
舒意意123
当信号量是负数的时候表示有进程在等待,是负几就代表有几个进程在等待,因为最多有一个进程在等待,所以信号量最小只能是-1
发表于 2017-04-20 21:15:58
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
前端开发
数据
运维/技术支持
测试
后端开发
客户端开发
操作系统
上传者:
小小
难度:
4条回答
390收藏
20645浏览
热门推荐
相关试题
请编写实现malloc()内存分配...
微软
C++
操作系统
评论
(3)
有三个关系R,S和T如下图所示,则...
数据库
SQL+MySQL
测试
后端开发
客户端开发
前端开发
人工智能/算法
数据
运维/技术支持
评论
(12)
小李在家打扫卫生时发现了小时候的带...
数学运算
项目
银行
财务审计类
法务类
人力资源类
行政管理类
数据
市场/营销类
销售/商务类
管理培训生
评论
(6)
来自
2025秋招-中国兵器工...
鲸鱼相对于( )相当于青蛙( ...
判断推理
评论
(1)
在 HTML 中,用于定义表格行的...
HTML
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题