桌上有一空盘,只允许放入一个水果。爸爸专向盘中放苹果,妈妈专向盘中放橘子,女儿专等着吃盘中的苹果,儿子专等着吃盘中的橘子。试用P,V原语实现爸爸、妈妈、儿子和女儿间能同步的程序。

admin2012-06-21  46

问题 桌上有一空盘,只允许放入一个水果。爸爸专向盘中放苹果,妈妈专向盘中放橘子,女儿专等着吃盘中的苹果,儿子专等着吃盘中的橘子。试用P,V原语实现爸爸、妈妈、儿子和女儿间能同步的程序。

选项

答案在本题中,应设置3个信号量:empty,apple,orange。其中empty表示盘中是否为空,初始值为1;apple表示盘中是否有苹果,初始值为0;orange表示盘中是否有橘子,初始值为0。爸爸、妈妈、儿子和女儿间的同步描述如下: Father: while(true) { P(empty); 将苹果放入盘中; V(apple); } Mather: while(true) { P(empty); 将橘子放入盘中; V(orange); } Son: while(true) { P(orange); 从盘中取出橘子吃掉; V(empty); } Daughter: while(true) { P(apple); 从盘中取出苹果吃掉; V(empty); }

解析
转载请注明原文地址:https://jikaoti.com/ti/sEajFFFM
0

最新回复(0)