对于有界缓冲区数量为n的生产者-消费者问题来说,应设置互斥信号量mutex、资源信号量full和empty,它们的初值分别应为()。
第1题:
A.1
B.6
C.8
D.9
第2题:
已知有n个进程共享一个互斥段,如果最多允许m个进程(m<n)同时进入互斥段,则信号量的变化范围是(26)。
A.-m~1
B.-m~0
C.-(n-m)~m
D.-(m-1)~n
第3题:
关于读者写者问题,下列叙述中哪些是错误的? Reader() { while (TRUE) { P(mutex); rc = rc + 1; if (rc = = 1) P (w); V(mutex); ① 读操作; P(mutex); ② rc = rc - 1; if (rc = = 0) V(w); V(mutex); 其他操作; } } writer() { while (TRUE) { …… P(w); 写操作; V(w); } }
A.信号量w的初值是0
B.信号量mutex的初值是1
C.计数器rc的初值是0 rc是互斥资源么
D.语句P(mutex)的位置可以放到语句rc = rc + 1后面
E.语句①②可以取消
第4题:
假设某企业有一个仓库。该企业的生产部员工不断地将生产的产品送入仓库,销售部员工不断地从仓库中取产品。假设该仓库能容纳n件产品。采用PV操作实现生产和销售的同步模型如下图所示,该模型设置了3个信号量S、S1和S2,其中信号量S的初值为1,信号量S1的初值为( ),信号量S2的初值为( )。
A.-1B.0C.1D.NA.-1B.0C.1D.N
第5题:
重新定义P操作: P(s): S=S-1; if s<0 then {将本进程插入相应等待队列的队首}; V操作的定义不变。 使用上述定义的信号量操作。现有n个进程竞争进入一个临界区,需要使用(24),并保证进程能够以正常的次序公平地进入临界区。
A.1个信号量,初值为1
B.2个信号量,初值分别为1,0
C.n-1个信号量,初值均为1
D.n/2个信号量,初值均为1
第6题:
进程P通过缓冲区K不断向n个进程Qi(1≤i≤n)发送消息,消息大小与缓冲区K一样。为了使每个接收进程都应该接收到与发送次序一样的消息序列,需要配置(23)。
A.2个信号量,初值分别为1,0
B.2个信号量,初值分别为1,n,
C.3个信号量,初值分别为1,0,0
D.3个信号量,初值分别为1,1,0
第7题:
m个进程(Pi,0≤i≤m-1)通过k个等长的缓冲区(Bi,0≤i≤k-1)向n个进程(Qi,0≤i≤m-1)发送消息。每个进程Pi发送消息的顺序与数量不受限制,每个进程Qi接收消息的顺序与数量也不受限制,但发送进程与接收进程作为两个分别的整体,要求消息发送与接收的整体次序相同。为保证消息发送与接收的充分并行,需要设置(24)。
A.3个信号量,初值分别为1,1,0
B.4个信号量,初值分别为1,0,1,0
C.3个信号量,初值分别为k,1,0
D.4个信号量,初值分别为k,1,0,1
第8题:
A 0、1
B 1、0
C 1、2
D 2、0
第9题:
有m个进程(P0,P1,…,Pm-1)通过n个缓冲区(B0,B1,…Bn-1)向1个进程(Q)发送数据包,每个数据包大小与缓冲区一样。要求:进程Q接收数据包的次序与发送次序一样。为保证发送进程与接收进程正确地并行工作,需要设置(23)。
A.一个信号量,初值为0
B.一个信号量,初值为1
C.两个信号量,初值分别为0和1
D.3个信号量,初值分别为n、1、0
第10题:
A.0、1、n
B.1、n、0
C.n、1、0
D.1、0、n