
操作系统原理,请各位高手解答一下,很急。。。今晚要搞定的!拜托各位~~重赏。
有三个并发进程input,copy和ouput,input进程负责从输入设备读入信息并把信息放入到缓冲区Buffer_1中;copy进程负责把Buffer_1中的内容加工...
有三个并发进程input,copy和ouput,input进程负责从输入设备读入信息并把信息放入到缓冲区Buffer_1中;copy进程负责把Buffer_1中的内容加工后复制到缓冲区Buffer_2中;output进程负责从Buffer_2中取出信息并送到打印机输出、试用wait、signal操作写出上述3个进程的同步算法。
展开
1个回答
展开全部
请你参考下面这道题吧,类似的,不重写了。
设有三个并发进程Re、Ma、Pt,它们共享同一缓冲区。进程Re负责从输入设备读信息,每读一个记录后,就把它存放在缓冲区中;进程Ma在缓冲区中加工读入的记录;进程Pt把加工后的记录打印输出。读入的记录经加工输出后,缓冲区又可放入下一个记录。用PV操作写出它们能正确执行的并发程序。
Re、Ma、Pt为同步关系
设置信号量e:缓冲区为空,f1:缓冲区中有未加工的记录,f2:缓冲区中有已加工好的记录
int e=1;
int f1=0,f2=0;
main()
{Re();
\\ Ma();
\\ Pt();/*Re()、Ma()、Pt()为并发进程*/
}
Re()
{P(e);
读一条记录放入缓冲区;
V(f1);
}
Ma()
{P(f1);
加工缓冲区中记录;
V(f2);
}
Pt()
{P(f2);
输出缓冲区中加工好的记录;
V(e);
}
设有三个并发进程Re、Ma、Pt,它们共享同一缓冲区。进程Re负责从输入设备读信息,每读一个记录后,就把它存放在缓冲区中;进程Ma在缓冲区中加工读入的记录;进程Pt把加工后的记录打印输出。读入的记录经加工输出后,缓冲区又可放入下一个记录。用PV操作写出它们能正确执行的并发程序。
Re、Ma、Pt为同步关系
设置信号量e:缓冲区为空,f1:缓冲区中有未加工的记录,f2:缓冲区中有已加工好的记录
int e=1;
int f1=0,f2=0;
main()
{Re();
\\ Ma();
\\ Pt();/*Re()、Ma()、Pt()为并发进程*/
}
Re()
{P(e);
读一条记录放入缓冲区;
V(f1);
}
Ma()
{P(f1);
加工缓冲区中记录;
V(f2);
}
Pt()
{P(f2);
输出缓冲区中加工好的记录;
V(e);
}
追问
请问能否用我的题目来解答一下啊?谢谢~~
追答
Re就是你题目中的input,Ma是copy,Pt是output。P()操作就是你题目中的wait()操作,V()操作是signal()。你替换一下就行
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |