有1个等待进程。
信号量(Semaphore),是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第一个线程释放信号量。
为了完成这个过程,需要创建一个信号量VI,然后将Acquire Semaphore VI以及Release Semaphore VI分别放置在每个关键代码段的首末端。初值为2,表示初始时有两个可用的资源。现在为-1,就说明这两个可用资源已经被占用了,有一个进程还在等待资源。
扩展资料:
对信号量有4种操作(#include<semaphore.h>):
1、 初始化(initialize),也叫做建立(create) int sem_init(sem_t *sem, int pshared, unsigned int value)
2、等信号(wait),也可叫做挂起(suspend)int sem_wait(sem_t *sem)
3、给信号(signal)或发信号(post) int sem_post(sem_t *sem)
4、清理(destroy) int sem_destory(sem_t *sem)。
参考资料来源:百度百科-信号量
如果计算机*作系统中,若P、V*作的信号量S初值为2,当前值为-1,则表示有__1__个等待进程 信号量表示的是可用的资源数。初值为2,表示初始时有两个可用的资源。现在为-1,说明这两个可用资源已经被占用了,而且有一个进程在等待资源,所以就为-1了1,D 2,B 3,C 4,C 5,B1,p,v操作是信号量的原子操作,是指wait(),signal()操作,具有不可再分性,是信号量的原语操作
.因此选D.
2,信号量的值为1,表示开始系统有两个可用的资源,现在变成-1,则表示有一个资源正在等待,因此选B。
4,人们把在每个进程中访问临界资源的那段代码称为临界区,因此选C。
5,两个并发进程,mutex的初值为1,表示有一个可用资源,现在为0,即表示有一个资源进入临界区,因此选B。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)