在生产者/消费者问题中,用s表示实施互斥的信号量,e表示与缓冲区空闲空间数量相关的信号量,n表示与缓冲区中数据项个数相关的信号量,下列生产者和消费者的操作(生产者和消费者可并发执行),可能产生死锁的是()。
A.生产者:wait(s); wait(e); append(); signal(n); signal(s);消费者: wait(s); wait(n); take(); signal(e); signal(s);
B.生产者:wait(s); wait(e); append(); signal(n); signal(s);消费者: wait(n); wait(s); take(); signal(s); signal(e);
C.生产者:wait(e); wait(s); append(); signal(s); signal(n);消费者: wait(s); wait(n); take(); signal(e); signal(s);
D.生产者:wait(e); wait(s); append(); signal(s); signal(n);消费者: wait(n); wait(s); take(); signal(s); signa
第1题:
A 0个
B 1个
C 2个
D 3个
第2题:
“生产者—消费者”问题是一个经典的进程同步与互斥控制问题,若缓冲区可存放n件物品,要解决这个问题,通常需要使用______个信号量。
A.1
B.2
C.3
D.4
A.
B.
C.
D.
第3题:
A.0、1、n
B.1、n、0
C.n、1、0
D.1、0、n
第4题:
第5题:
第6题:
第7题:
在某嵌入式操作系统中,若P、V操作的信号量S的初值为2,当前值为-1,则表示等待信号量S的任务个数为()。
第8题:
有9个生产者,6个消费者,共享容量为8的缓冲区。在这个生产者-消费者问题中,互斥使用缓冲区的信号量mutex的初值应该为()。
第9题:
下面关于信号量S的叙述中,正确的是()
第10题:
用PV操作实现进程互斥进入相关临界区时,要求()
第11题:
1
6
8
9
第12题:
用一个信号量S与一组相关临界区联系起来
任何进程在进入临界区前应调用P操作
进程退出临界区进调用V操作来释放一个等待信号量S的进程
一个等待信号量S的进程被释放后便可以进入它的临界区
一个等待信号量S的进程被释放后应再调用P操作后才能进入它的临界区.
第13题:
A.1
B.6
C.8
D.9
第14题:
s=0表示满缓冲的数量、即多少缓冲区里有消息
m=1表示互斥信号量
A:P(m)B:V(m)C:P(s)D:P(m)
由题意,m用于实现进程互斥,初值应为1,并应成对出现,由接收者进程的V(m)操作可知,m用于实现消息链存、取缓冲区操作的互斥,故D为P(m)。相应的,A为P(m),B为V(m)。
由发送者进程可知,当发送者将一个消息放入消息链尾后,执行V(s)操作,故s表示接收者可取消息的数量,又因s用于实现进程同步,所以接收者接受消息前,应判断是否有消息可以取,需对s执行P操作,所以C为P(s),发送者发送消息前,接收者无消息可取,s的初值应为0。
第15题:
在有N个缓冲区的生产者消费者的问题中,下列叙述中哪些是错误的?producer() { int item; while(TRUE) { item = produce_item(); P(empty); P(mutex); insert_item(item); V(mutex) V(full); } } consumer() { int item; while(TRUE) { P(full); P(mutex); item = remove_item(); V(mutex); V(mutex); consume_item(item); } }
A.信号量empty的初值为N
B.信号量full的初值为0
C.信号量mutex的初值为0
D.P(full)和P(mutex)两条语句可以颠倒顺序
E.V(mutex)和V(mutex)两条语句可以颠倒顺序
第16题:
第17题:
第18题:
第19题:
对于有界缓冲区数量为n的生产者-消费者问题来说,应设置互斥信号量mutex、资源信号量full和empty,它们的初值分别应为()。
第20题:
用PV操作实现多个并发进程的互斥执行时,信号量的初值为()
第21题:
实现进程互斥时,用()对应,对同一个信号量调用PV操作实现互斥。
第22题:
0、1、n
1、n、0
n、1、0
1、0、n
第23题:
信号量S的值仅由PV操作改变
当S>O时,S表示可使用的资源数,或表示可程数
当S-O时,表示无资源可使用,或表示不允许
当S
第24题:
0
1
2
3