题目内容

资源的静态分配法破坏了死锁必要条件中的( )。

A. 互斥使用
B. 不可抢占
C. 请求与保持
D. 循环等待

查看答案
更多问题

假设系统中有m个同类的互斥资源,当n个进程共享这m个互斥资源时,每个进程的最大需求数是w。以下()情况系统不会产生死锁。(多选)

A. m=4,n=3,w=2
B. m=4,n=2,w=3
C. m=5,n=2,w=3
D. m=5,n=3,w=2

在生产流水线上有三个工序:取件(getter),传送(transfer),加工(processor)。刚开始可以取件,才能通过传送带传送,传送带送到加工的位置才能进行加工,然后才可以开始下一轮的取件。试用信号量的P、V操作实现getter、transfer、processor之间的同步与互斥关系,补全下面代码中的空白。每个空白计1分。 信号量 g_mutex = (空白1);// 指示可取件的信号量,初始值设定 信号量 t_mutex = (空白2);// 指示可传送访的信号量,初始值设定 信号量 p_mutex = (空白3);// 指示可加工的信号量,初始值设定 void getter () { while( true ) { P(g_mutex); 取件工序操作 V((空白4) ) } } void transfer () { while( true ) { P((空白5)); 传送工序操作 V((空白6) ) } } void processor () { while( true ) { P((空白7)); 加工工序操作 V((空白8) ) } } void main() { 创建getter进程 创建transfer进程 创建processor进程 其他处理 }

假设有一座独木桥,同一方向的行人可以连续过桥,而当某一方向有人过桥时,另一方向的行人必须等待;直到某一方向无人过桥时,另一方向的行人才可以过桥。用信号量解决该同步互斥问题,其中初始条件设置和其中一方行人的进程代码如下,补全代码中的空白。(每空计1分) int ACounter = 0; int BCounter = 0; //ACounter和BCounter分别表示从A、B两方向过桥的人数 semaphore bridge = ____(空白1)____; //实现对桥的互斥共享 semaphoreAMutex = BMutex = ____(空白2)____; //对Acounter和BCounter的互斥共享 PA(){ wait(AMutex); if (ACounter == ____(空白3)____) wait (____(空白4)____); ____(空白5)____; signal(____(空白6)____); 使用浴室; wait(AMutex); ACounter--; if(ACounter == 0)signal(bridge); signal(____(空白7)____); } //PB()进程与PA()进程类似,只需将“A”与“B”互换

校园内有一个男女共用的浴室。学校颁布规定:当有一个女生在浴室里,那么其他女生可以进入,但是男生不行,反之亦然。在浴室门上有个滑动标签,标示了浴室当前的三种使用状态之一:1.浴室空;2.有女生在使用;3.有男生在使用。用信号量解决该同步互斥问题,其中初始条件设置和一个女生进程的伪代码如下,补全代码中的空白。int girlCounter = 0; int boyCounter = 0; semaphore empty = ____(空白1)____; //控制浴室的进入 semaphore girlMutex = boyMutex = ____(空白2)____; //对两个counter互斥共享 girl(){ wait(____(空白3)____); girlCouter ++; if (girlCounter == ____(空白4)____) wait (____(空白5)____); signal(girlMutex); 使用浴室; wait(girlMutex); ____(空白6)____; if(girlCounter == 0)signal(empty); signal(____(空白7)____); } //boy()进程与girl()进程类似,只需将“girl”与“boy”字样互换。

答案查题题库