如果信号量的当前值为-4,则表示系统中在该信号量上有 ? 个等待进程?谢谢 10
3个回答
展开全部
表示有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所指向数组中的元素个数。
参考资料来源:百度百科-信号量
展开全部
表示有4个等待进程。
信号量的当前值如果是正值N,该值表示有N个可用资源。
如果为0,则表示所有资源全部被分配,同时没有进程处于等待状态
如果为负数N,则表示全部资源分配完毕,且还有N个进程处于等待该资源的状态。
信号量的当前值如果是正值N,该值表示有N个可用资源。
如果为0,则表示所有资源全部被分配,同时没有进程处于等待状态
如果为负数N,则表示全部资源分配完毕,且还有N个进程处于等待该资源的状态。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是信号量的p、v操作,p表示申请一个资源,每次p操作使信号量减1,v是释放一个资源,每次v操作使信号量加1。信号量表示的是当前可用的资源个数,当信号量为负时,申请资源的进程就只能等待了。所以,信号量是负的多少,就表明有多少个进程申请了资源但无资源可用只能处于等待状态。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询