【哲学家就餐问题-(C)】接续第55题 (C) 引入初值为1的信号量mutex,①处填上“wait(mutex); wait(chopstick[i]); wait(chopstick[(i+1)mod 5]); signal(mutex);”,②处填上“signal(chopstick[(i+1)mod 5]); signal(chopstick[i]);”

【哲学家就餐问题-(C)】接续第55题 (C) 引入初值为1的信号量mutex,①处填上“wait(mutex); wait(chopstick[i]); wait(chopstick[(i+1)mod 5]); signal(mutex);”,②处填上“signal(chopstick[(i+1)mod 5]); signal(chopstick[i]);”


参考答案和解析
侧面图?甲板、平台平面图?舱底平面图

相关考题:

(19)用 P、V 操作管理临界区时,把信号量 mutex 的初值设定为 1。当 mutex 的等待队列中有 k(k>1)个进程时,信号量的值为A)kB)k﹣1C)1﹣kD)﹣k

关于读者写者问题,下列叙述中哪些是错误的? 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的初值是0B.信号量mutex的初值是1C.计数器rc的初值是0 rc是互斥资源么D.语句P(mutex)的位置可以放到语句rc = rc + 1后面E.语句①②可以取消

阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内。【说明】下面的Java程序演示了程序竞争资源(Mutex的实例对象)而引起程序死锁的一种例子。【Java程序】import java.applet.*;import java.awt.*;//此处声明一个互斥类class Mutex { }class A extends (1){private Mutex first,second;public A(Mutex f,Mutex s){first = f;second = s;}public void run(){//锁定first变量(2) (first){try{ //本线程挂起,等待重新调度Thread.sleep(1); //注意此处(1)不是小题序号}catch(InterruptedException e){}System. out. println("threadA got first mutex");(2) (second) //锁定second变量{ //do somethingSystem. out. println("threadA got second mutex");} //释放second变量} //释放first变量}}class B extends (1){private Mutex first,second;public B(Mutex f,Mutex s){(3) ;second = s;}public void run(){(2) (second) //锁定second变量{//do somethingtry{Thread.sleep(((int)(3*Math.random()))*1000);//本线程挂起,等待重新调度}catch(InterruptedException e){}System.out.println("threadB got second mutex");(2) (first) //锁定first变量{//do somethingSystem.out.println("threadB got first mutex");} //释放first变量} //释放second变量}}public class DeadlockExample{public static void main(String arg[]){Mutex mutexX = new Mutex();Mutex mutexY = new Mutex();AthreadA = new A(mutexX,mutexY);B threadB = new B (4);threadA.(5);threadB.start();}}

用P、V操作管理临界区时,把信号量mutex的初值设定为1。当mutex的等待队列中有k(k1)个进程时,信号量的值为( )。A)kB)k-1C)1-kD)-k

读者写者问题的解决方案如下所示。Begin————①————;read_count:=read_count+1;if read_count=1then P(wnte);————②————;读文件;————③————;read—count:=read—count—1;if read—count=Othen V(write);————④————;End假设信号量.mutex表示对read—count共享变量所关注的互斥区进行互斥,那么,①、②、③和④处应该填写的语句是A.P(mutex)、P(mutex)、V(mutex)、V(mutex)B.P(mutex)、V(mutex)、P(mutex)、V(mutex)C.V(mutex)、V(mutex)、P(mutex)、P(mutex)D.V(mutex)、P(mutex)、V(rnutex)、P(mutex)

对于两个并发进程,设互斥信号量为mutex,若mutex=0,则表示没有进程进入临界区。( ) 此题为判断题(对,错)。

操作系统在使用信号量解决同步与互斥问题中,若P(或wAit)、V(或signAl)操作的信号量S初值为3,当前值为-2,则表示有( )等待进程。 A 0个B 1个C 2个D 3个

Wait.Signal操作可实现进程的同步和共享资源互斥使用,但不能排除死锁。()

有9个生产者,6个消费者,共享容量为8的缓冲区。在这个生产者-消费者问题中,互斥使用缓冲区的信号量mutex的初值应该为( )。 A.1B.6C.8D.9

利用信号量实现进程的(),应为临界区设置一个信号量 mutex。其初值为 (),表示该资源尚未使用,临界区应置于()和()原语之间。

在下面程序横线处填上适当内容,以使该程序执行结果为4.4。includeusing namespace std; 在下面程序横线处填上适当内容,以使该程序执行结果为4.4。include<iostream>using namespace std;template<typename T>T average(T*datA){T s=0;int i:0;while(data[i])【 】;return s/(i+1);}int main(){double x[]={2.5,4.5,6.5,5,0.0,5,3,18.5};cout<<average(X);return 0;}

下面程序的结果是( )。 i=l j=0 Do j=i+1 i=i+1 Loop Until i<5A.0B.4C.1D.5

对于有界缓冲区数量为n的生产者-消费者问题来说,应设置互斥信号量mutex、资源信号量full和empty,它们的初值分别应为()。 A.0、1、nB.1、n、0C.n、1、0D.1、0、n

请教:2016计算机四级网络工程师高分突破试题多选题64如何解答? 关于读者写者问题,下列叙述中哪些是错误的?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的初值是0B.信号量mutex的初值是1C.计数器rc的初值是0D.语句P(mutex)的位置可以放到语句rc = rc + 1后面E.语句①②可以取消

用P、V操作管理临界区时,把信号量mutex的初值设定为1。当有k(k>1)个进程在mutex的等待队列中时,信号量的值为A.kB.k 1C.1 kD.k

在有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的初值为NB.信号量full的初值为0C.信号量mutex的初值为0D.P(full)和P(mutex)两条语句可以颠倒顺序E.V(mutex)和V(mutex)两条语句可以颠倒顺序

设某一临界区对应的记录型信号最mutex,其初值为1 (即mutex.value=l),当mutex.value=-2时,表示有()个进程在临界区内,有()个进程等待进入临界区。

()用来初始化一个互斥锁。A、pthread_mutex_initB、pthread_mutex_createC、pthread_mutex_beginD、pthread_mutex_lock

在生产者—消费者问题中,能否将生产者进程的wait(empty)和wait(mutex)语句互换,为什么?

对于有界缓冲区数量为n的生产者-消费者问题来说,应设置互斥信号量mutex、资源信号量full和empty,它们的初值分别应为()。A、0、1、nB、1、n、0C、n、1、0D、1、0、n

试从物理概念上说明记录型信号量wait和signal。

利用信号量实现进程的(),应为临界区设置一个信号量mutex,其初值为1,表示该资源尚未使用,临界区应置于()()原语之间。

单选题对于有界缓冲区数量为n的生产者-消费者问题来说,应设置互斥信号量mutex、资源信号量full和empty,它们的初值分别应为()。A0、1、nB1、n、0Cn、1、0D1、0、n

问答题在生产者—消费者问题中,能否将生产者进程的wait(empty)和wait(mutex)语句互换,为什么?

填空题设某一临界区对应的记录型信号最mutex,其初值为1 (即mutex.value=l),当mutex.value=-2时,表示有()个进程在临界区内,有()个进程等待进入临界区。

问答题试从物理概念上说明记录型信号量wait和signal。

填空题利用信号量实现进程的(),应为临界区设置一个信号量mutex,其初值为1,表示该资源尚未使用,临界区应置于()()原语之间。

单选题()用来初始化一个互斥锁。Apthread_mutex_initBpthread_mutex_createCpthread_mutex_beginDpthread_mutex_lock