首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
若有4个进程共享同一程序段,而且每次最多允许3个进程进入该程
[单选题]
若有4个进程共享同一程序段,而且每次最多允许3个进程进入该程序段,则信号量的变化范围是()。
3,2,1,0
3,2,1,0,-1
4,3,2,1,0
2,1,0,-1,-2
查看答案及解析
添加笔记
求解答(25)
邀请回答
收藏(342)
分享
纠错
4个回答
添加回答
28
晓宇大美女~
当信号量是负数的时候表示有进程在等待,是负几就代表有几个进程在等待,因为最多有一个进程在等待,所以信号量最小只能是-1
发表于 2016-03-25 15:20:22
回复(0)
14
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)
5
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)
0
舒意意123
当信号量是负数的时候表示有进程在等待,是负几就代表有几个进程在等待,因为最多有一个进程在等待,所以信号量最小只能是-1
发表于 2017-04-20 21:15:58
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
操作系统
上传者:
小小
难度:
4条回答
342收藏
18930浏览
热门推荐
相关试题
请编写实现malloc()内存分配...
微软
C++
操作系统
评论
(3)
有两个N*N的矩阵A和B,想要在P...
阿里巴巴
操作系统
评论
(38)
来自
阿里巴巴2015实习生笔试题
“乔布斯不做调查,张小龙不看数据。...
用户研究
评论
(1)
相关性分析有哪些?
评论
(1)
如何检验聚类分析结果
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题