桌上有一空盘,可放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子;儿子专等吃盘中的桔子;女儿专等吃盘中的苹果。规定一次只能放一只水果,试写出爸爸、儿子、女儿正确同步的程序。
桌上有一空盘,可放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子;儿子专等吃盘中的桔子;女儿专等吃盘中的苹果。规定一次只能放一只水果,试写出爸爸、儿子、女儿正确同步的程序。
参考答案和解析
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);吃掉拿出来的苹果}}
相关考题:
交叉遗传的特点包括 () A、男性的 X 染色体传给女儿,儿子的 X 染色体由妈妈传来B、男性的 X 染色体传给儿子C、儿子的 X 染色体由爸爸传来D、女儿的 X 染色体由妈妈和爸爸传来E、以上都不对
●桌上有一个空盒,盒内只允许放一个水果。爸爸专向盒内放苹果,妈妈专向盒内放桔子,儿子等着吃盒中的水果(苹果或桔子)。若盒内已有水果,放者必须等待,若盒内没有水果,吃者必须等待。用PV操作来协调3人的关系。请回答下列问题:①应设置的信号量及其初值为SP和1。②在3组工作流程的虚线位置填上适当的PV操作,实现3人正确的活动。爸:准备P(SP)向盒内放苹果(15)妈:准备(16)向盒内放桔子(17)儿:(18)拿盒中的水果(苹果或桔子)(19)吃水果(苹果或桔子)(15) ~(19) A.P(SP)B.P(SG)C.V(SG)D.V(SP)
桌子上有一只盘子,每次只能放入一只水果,父亲专向盘子中放苹果,母亲专向盘子中放桔子,一个儿子专等吃桔子,一个女儿专等吃苹果。只要盘子中空,则父亲或母亲可向盘子中放一只水果,仅当盘子中有自己需要的水果时,儿子或女儿可从盘子中取出。将父亲、母亲、儿子、女儿看做四个进程,用PV操作进行管理使这四个进程能正确地并发执行。
有苹果,桔子各一筐,苹果有240个,桔子有313个,把这两筐水果平均分给一些小朋友,已知苹果分到最后余2个,桔子分到最后还余7个,求最多有多少个小朋友参加分水果?A.14B.17C.28D.34
有三筐水果,一筐装的全是苹果,第二筐装的全是橘子,第三筐是橘子与苹果混在一起。筐上的标签都是骗人的,(比如,如果标签写的是橘子,那么可以肯定筐里不会只有橘子,可能还有苹果)你的任务是拿出其中一筐,从里面只拿一只水果,然后正确写出三筐水果的标签。
有苹果、草莓、香蕉、桔子四种水果,甲、乙、丙、丁四个人每人领一种,甲:“我领到了苹果”,乙:“我领到了桔子”,丙:“甲说谎,他领到了香蕉”,丁:“我领到了草莓”如果只有两个人说的是真话,则一定可以推出的是()A. 乙领到的是桔子B. 丁领到的是草莓C. 丙领到的不是香蕉D. 甲领到的不是苹果
小瑗和爸爸一起包饺子,爸爸包的饺子是小瑗的两倍。爸爸的饺子放在四个盘子里,小瑗的饺子放在两个盘子里。六个盘子中的饺子数依次为15、19、20、21、22、23。那么小瑗的饺子在________。A.第2盘与第4盘B.第3盘与第4盘C.第2盘与第3盘D.第1盘与第6盘
在国际货物买卖交易磋商中,关于发盘与接受的规定,下列()是正确的。A、发盘只能由卖方作出,接受只能由买方作出B、发盘只能由买方作出,接受只能由卖方作出C、发盘或接受既可以由卖方作出,也可以由买方作出D、发盘必须在询盘后作出
单选题在国际货物买卖交易磋商中,关于发盘与接受的规定,下列()是正确的。A发盘只能由卖方作出,接受只能由买方作出B发盘只能由买方作出,接受只能由卖方作出C发盘或接受既可以由卖方作出,也可以由买方作出D发盘必须在询盘后作出
单选题女:你发现没有?经理最近特别高兴。男:当然了,他现在做爸爸了。女:他的孩子是儿子还是女儿?男:是个女儿,非常可爱,长得很像他。问:经理最近为什么高兴?A爸爸来了B儿子像他C有了女儿