如果信号量的当前值为-4,则表示系统中在该信号量上有 ? 个等待进程?谢谢 10

 我来答
帐号已注销
2020-11-08 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:167万
展开全部

表示有4个等待进程。

信号量的当前值如果是正值N,该值表示有N个可用资源。

如果为0,则表示所有资源全部被分配,同时没有进程处于等待状态

如果为负数N,则表示全部资源分配完毕,且还有N个进程处于等待该资源的状态。

例如:若信号S的初值为3,当前值为-2,则表示有( 2 )个等待进程,当信号量的值小于0时,其绝对值表示系统中因请求该类资源而被阻塞的进程个数。

扩展资料:

参数nsems是一个大于等于0的值,用于指明该信号量集中可用资源数(在创建一个信号量时)。当打开一个已存在的信号量集时该参数值为0。函数执行成功,则返回信号量集的标识符(一个大于等于0的整数),失败,则返回–1。函数semop用以操作一个信号量集,函数原型如下:

#include <sys/sem.h>

int semop( int semid, struct sembuf semoparray[], size_t nops );

函数中参数semid是一个通过semget函数返回的一个信号量标识符,参数nops标明了参数semoparray所指向数组中的元素个数。

参考资料来源:百度百科-信号量

tteerrii
推荐于2018-03-19 · TA获得超过432个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:201万
展开全部
表示有4个等待进程。
信号量的当前值如果是正值N,该值表示有N个可用资源。
如果为0,则表示所有资源全部被分配,同时没有进程处于等待状态
如果为负数N,则表示全部资源分配完毕,且还有N个进程处于等待该资源的状态。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
霍文玉枝风
2019-09-23 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:27%
帮助的人:1004万
展开全部
这是信号量的p、v操作,p表示申请一个资源,每次p操作使信号量减1,v是释放一个资源,每次v操作使信号量加1。信号量表示的是当前可用的资源个数,当信号量为负时,申请资源的进程就只能等待了。所以,信号量是负的多少,就表明有多少个进程申请了资源但无资源可用只能处于等待状态。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式