题目
[主观题]
桌上有一只盘子,每次只能放入一只水果。爸爸专向盘子中放苹果(apple),妈妈专向盘子中放桔子(orange),一个儿子专等吃盘子中的桔子,一个女儿专等吃盘子里的苹果。使用Hoare管程求解该问题。
答案
semaphore empty=2; //定义empty对应盘子的剩余放水果的位置个数初值为2 semaphore apple=0; //定义信号量apple对应盘子里的苹果数量初值为0 semaphore orange=0; //定义信号量orange对于盘子里的橘子数量初值为0 semaphore mutex=1: //定义信号量mutex来保护盘子被互斥地访问 father(){ //爸爸进程 while(1){ P(empty); P(mutex); 在盘子里放一个苹果 V(mutex); V(apple); } } mother(){ //妈妈进程 while(1){ P(empty); P(mutex); 在盘子里放一个橘子 V(mutex); V(orange); } } son(){ //用这段程序产生两个儿子进程 while(1){ P(orange); P(mutex); 从盘子里拿一个橘子 V(mutex); V(empty); 吃掉拿出来的橘子 } } daughter(){ //用这段程序产生两个女儿进程 while(1){ P(apple); P(mutex); 从盘子里拿出一个苹果 V(mutex); V(empty); 吃掉拿出来的苹果 } } semaphoreempty=2;//定义empty对应盘子的剩余放水果的位置个数,初值为2semaphoreapple=0;//定义信号量apple对应盘子里的苹果数量,初值为0semaphoreorange=0;//定义信号量orange对于盘子里的橘子数量,初值为0semaphoremutex=1://定义信号量mutex来保护盘子被互斥地访问father(){//爸爸进程while(1){P(empty);P(mutex);在盘子里放一个苹果V(mutex);V(apple);}}mother(){//妈妈进程while(1){P(empty);P(mutex);在盘子里放一个橘子V(mutex);V(orange);}}son(){//用这段程序产生两个儿子进程while(1){P(orange);P(mutex);从盘子里拿一个橘子V(mutex);V(empty);吃掉拿出来的橘子}}daughter(){//用这段程序产生两个女儿进程while(1){P(apple);P(mutex);从盘子里拿出一个苹果V(mutex);V(empty);吃掉拿出来的苹果}}
更多“桌上有一只盘子,每次只能放入一只水果。爸爸专向盘子中放苹果(apple),妈妈专向盘子中放桔子(orange),一个儿子专等吃盘子中的桔子,一个女儿专等吃盘子里的苹果。使用Hoare管程求解该问题。”相关的问题
第1题
桌上有一只盘子,每次只能放入一只水果。爸爸专向盘子中放苹果(apple),妈妈专向盘子中放桔子(orange),一个儿子专等吃盘子中的桔子,一个女儿专等吃盘子里的苹果。使用Hoare管程求解该问题。
点击查看答案
第2题
桌上有一个空的水果盘,且盘中一次只能放一个水果。爸爸专向盘中放苹果,妈妈专向盘中放桔子,一个儿子专等吃盘子中的桔子,一个女儿专等吃盘子中的苹果。固定每次当盘子空时爸爸或妈妈可向盘中放一个水果,仅当盘中有自己需要的水果时,儿子或女儿可从中取出。请用PV操作实现爸爸、妈妈、儿子和女儿四个进程的同步。
点击查看答案
第3题
计算分析题2(15分)桌上有个能盛得下五个水果的空盘。爸爸不停地向盘中放苹果或桔子,儿子不停地从盘中取出桔子享用,女儿不停地从盘中取出苹果享用。规定三人不能同时从盘中取放水果。试用P 、 V原语实现爸爸、儿子、女儿三个并发进程的同步。
点击查看答案
第4题
桌上有一个空盘,允许存放一个水果。爸爸可以向盘中放苹果,也可以向盘中放橘子,儿子专等吃盘中的橘子,女儿专等吃盘中的苹果。规定当盘空时一次放一个水果供吃者取用,请用P,V原语实现爸爸、儿子、女儿三个并发进程的同步。
点击查看答案
第5题
使用石英玻璃盘子盛牛排到微波炉中加热,加热过程中只有牛排被烧熟而盘子始终不烫,原因是()。
A.盘子的磁导率大
B.盘子的电导率大
C.盘子的相对介电常数大
D.盘子的极化损耗小
点击查看答案
第6题
使用专用盘子盛食物到微波炉中加热,加热过程中只有食物加热而盘子未烧毁,原因在于()
A.盘子的磁导率大
B.盘子的介电常数大
C.盘子的电导率大
D.电磁波在盘子中的集肤深度大
点击查看答案
第7题
使用专用盘子盛食物到微波炉中加热,加热过程中只有食物加热而盘子未烧毁,原因在于
A.盘子的介电常数大
B.盘子的磁导率大
C.电磁波在盘子中的集肤深度大
D.盘子的电导率大
点击查看答案
第8题
盘子数为4的汉诺塔问题需要移动盘子的次数为 ()
点击查看答案
第9题
盘子数为4的汉诺塔问题需要移动盘子的次数为 ()
点击查看答案
第10题
盘子数为4的汉诺塔问题需要移动盘子的次数为 ()
点击查看答案