桌上有个一次只能放一个水果的盘子,父亲专向盘中放苹果母亲专放橘子,女儿专吃苹果儿子专吃橘子试用pv操作写出他们能正确同步的过程(尽量在今天晚上之前给出答案,明天要交作业)我
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/20 03:34:23
![桌上有个一次只能放一个水果的盘子,父亲专向盘中放苹果母亲专放橘子,女儿专吃苹果儿子专吃橘子试用pv操作写出他们能正确同步的过程(尽量在今天晚上之前给出答案,明天要交作业)我](/uploads/image/z/256399-7-9.jpg?t=%E6%A1%8C%E4%B8%8A%E6%9C%89%E4%B8%AA%E4%B8%80%E6%AC%A1%E5%8F%AA%E8%83%BD%E6%94%BE%E4%B8%80%E4%B8%AA%E6%B0%B4%E6%9E%9C%E7%9A%84%E7%9B%98%E5%AD%90%2C%E7%88%B6%E4%BA%B2%E4%B8%93%E5%90%91%E7%9B%98%E4%B8%AD%E6%94%BE%E8%8B%B9%E6%9E%9C%E6%AF%8D%E4%BA%B2%E4%B8%93%E6%94%BE%E6%A9%98%E5%AD%90%2C%E5%A5%B3%E5%84%BF%E4%B8%93%E5%90%83%E8%8B%B9%E6%9E%9C%E5%84%BF%E5%AD%90%E4%B8%93%E5%90%83%E6%A9%98%E5%AD%90%E8%AF%95%E7%94%A8pv%E6%93%8D%E4%BD%9C%E5%86%99%E5%87%BA%E4%BB%96%E4%BB%AC%E8%83%BD%E6%AD%A3%E7%A1%AE%E5%90%8C%E6%AD%A5%E7%9A%84%E8%BF%87%E7%A8%8B%EF%BC%88%E5%B0%BD%E9%87%8F%E5%9C%A8%E4%BB%8A%E5%A4%A9%E6%99%9A%E4%B8%8A%E4%B9%8B%E5%89%8D%E7%BB%99%E5%87%BA%E7%AD%94%E6%A1%88%2C%E6%98%8E%E5%A4%A9%E8%A6%81%E4%BA%A4%E4%BD%9C%E4%B8%9A%EF%BC%89%E6%88%91)
桌上有个一次只能放一个水果的盘子,父亲专向盘中放苹果母亲专放橘子,女儿专吃苹果儿子专吃橘子试用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);
吃苹果;
}
}