桌上有个一次只能放一个水果的盘子,父亲专向盘中放苹果母亲专放橘子,女儿专吃苹果儿子专吃橘子试用pv操作写出他们能正确同步的过程(尽量在今天晚上之前给出答案,明天要交作业)我

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/02 23:21:43

桌上有个一次只能放一个水果的盘子,父亲专向盘中放苹果母亲专放橘子,女儿专吃苹果儿子专吃橘子试用pv操作写出他们能正确同步的过程(尽量在今天晚上之前给出答案,明天要交作业)我
桌上有个一次只能放一个水果的盘子,父亲专向盘中放苹果母亲专放橘子,女儿专吃苹果儿子专吃橘子
试用pv操作写出他们能正确同步的过程
(尽量在今天晚上之前给出答案,明天要交作业)
我怕各位大人来不及,延迟一下时间,明天中午之前,希望各位大人答详细点哈!还有,问题在悬赏分下面.

桌上有个一次只能放一个水果的盘子,父亲专向盘中放苹果母亲专放橘子,女儿专吃苹果儿子专吃橘子试用pv操作写出他们能正确同步的过程(尽量在今天晚上之前给出答案,明天要交作业)我
我认为应该这样做:有母亲介入的举一反三一下就可
分析在本题中,爸爸、儿子、女儿共用一个盘子,盘中一次只能放一个水果.当盘子为空时,爸爸可将一个水果放入果盘中.若放入果盘中的是桔子,则允许儿子吃,女儿必须等待;若放入果盘中的是苹果,则允许女儿吃,儿子必须等待.本题实际上是生产者-消费者问题的一种变形.这里,生产者放入缓冲区的产品有两类,消费者也有两类,每类消费者只消费其中固定的一类产品.
在本题中,应设置三个信号量S、So、Sa,信号量S表示盘子是否为空,其初值为l;信号量So表示盘中是否有桔子,其初值为0;信号量Sa表示盘中是否有苹果,其初值为0.同步描述如下:
int S=1;
int Sa=0;
int So=0;
main()
{
cobegin
father(); /*父亲进程*/
son(); /*儿子进程*/
daughter(); /*女儿进程*/
coend
}
father()
{
while(1)
{
P(S);
将水果放入盘中;
if(放入的是桔子)V(So);
else V(Sa);
}
}
son()
{
while(1)
{
P(So);
从盘中取出桔子;
V(S);
吃桔子;
}
}
daughter()
{
while(1)
{
P(Sa);
从盘中取出苹果;
V(S);
吃苹果;
}
}

桌上有个一次只能放一个水果的盘子,父亲专向盘中放苹果母亲专放橘子,女儿专吃苹果儿子专吃橘子试用pv操作写出他们能正确同步的过程(尽量在今天晚上之前给出答案,明天要交作业)我 用wait、signal操作实现爸爸、儿子、女儿3个并发进程的同步桌上有一个空盘子,只允许放一个水果.爸爸可以向盘中放苹果,也可以向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果. 有3个苹果两个盘子,每个盘子只能放一个苹果,怎么样把3个苹果放进2个盘子里? 有3个苹果放在2个盘子里,一个盘子只能放一个苹果,怎么放呢?别吃掉哦, 每张方桌上放有12个盘子,每张圆桌上放有13个盘子,若共有盘子109个,则圆桌有 个,方桌有 个(空内填答案) 有2个盘子,3个苹果,1个盘子里面只能放一个苹果,问怎么放?谁答对送你30分! 把21个苹果放在5个盘子里,那么,必有一个盘子里至少有()个水果. 测一测你的智商有多高?我有三个苹果,要放在两个盘子里,但是,一个盘子只能放一个,请问还有一个苹果放哪? 每张方桌上放有12个盘子,每张圆桌上放有13个盘子,若共有盘子109个,则圆桌和方桌共有( )张. 桌子上有一只盘子,最多可容纳两个水果,每次只能放入或取出一个水果.爸爸专向盘子中放苹果(apple),妈妈专向盘子中N放橘子(orange),儿子专等吃盘子中的橘子,女儿专等吃盘子中的苹果.请 有三个盘子第一个盘子有五个水果第二个盘子一个水果第三个盘子三个水果如果把第三个盘里水果吃掉还剩几个水果解答需两次运算列式 有25个鸡蛋,把它放入6个盘子,每个盘子只能放偶数个.你能办到吗? 两个相同白球放在6个相同盘子里,一个盘子只能放一个,考虑对称效果,有几种放法 有3种不同的水果放在两个不同的盘子里,要求每个盘子只放一种水果,问有几种不同放 有10个鸡蛋,放在3个盘子里面,每个盘子只能放单数,不能放双数,该怎么放 有48个苹果,把它放在7个盘子里,每个盘子里只能放奇数个,怎么放? 将8个苹果放在3个盘子里,每个盘子里都至少放一个,有多少种不同的方法 香蕉、梨子、苹果,每个盘子里只能放一种水果 一共有几种不同的方法?