校园内有一个男女共用的浴室。学校颁布规定:当有一个女生在浴室里,那么其他女生可以进入,但是男生不行,反之亦然。在浴室门上有个滑动标签,标示了浴室当前的三种使用状态之一: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”字样互换。
查看答案
桌上有一只盘子,最多可容纳2个水果,每次只能放入或取出1个水果。爸爸专向盘中放苹果,妈妈专向盘中放橘子;一个儿子专等吃盘子中的橘子,一个女儿专等吃盘中的苹果。试用信号量的P、V操作实现爸爸、妈妈、儿子、女儿之间的同步与互斥关系,补全下面代码中的空白。每个空白计1分。 Semaphore sEmpty = ____; Semaphore sApple = ____; Semaphore sOrange =____; Semaphore sMutex =____; void father() { while(true) { P(____); P(____); 向盘中放苹果 V(sMutex) V(sApple) } } void mother() { while(true) { P(sEmpty); P(sMutex); 向盘中放橘子 V(sMutex) V(____) } } void son( ) { while(true) { P(sOrange); P(sMutex); 从盘中取橘子 V(sMutex); V(sEmpty); 吃橘子 } } void daughter( ) { while(true) { P(____); P(sMutex); 从盘中取苹果 V(sMutex); V(sEmpty); 吃苹果 } }
P、V操作是操作系统中系统调用指令。( )
A. 对
B. 错
多个进程可以对应于同一个程序,且一个进程也可以执行多个程序。( )
A. 对
B. 错
进程存在的唯一标志是它是否有进程号。( )
A. 对
B. 错