操作系统原理,请各位高手解答一下,很急。。。今晚要搞定的!拜托各位~~重赏。

有三个并发进程input,copy和ouput,input进程负责从输入设备读入信息并把信息放入到缓冲区Buffer_1中;copy进程负责把Buffer_1中的内容加工后复制到缓冲区Buffer_2中;output进程负责从Buffer_2中取出信息并送到打印机输出、试用wait、signal操作写出上述3个进程的同步算法。

第1个回答  2012-11-20
请你参考下面这道题吧,类似的,不重写了。
设有三个并发进程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()。你替换一下就行

本回答被提问者采纳
相似回答