计算机操作系统

假定系统有三个并发进程read,move和print共享缓冲器B1和B2。进程read负责从输入设备上读信息,每读出一个记录后把它存放到缓冲器B1中。进程move从缓冲器... 假定系统有三个并发进程read, move和print共享缓冲器B1和B2。进程read负责从输入设备上读信息,每读出一个记录后把它存放到缓冲器B1中。进程move从缓冲器B1中取出一记录,加工后存入缓冲器B2。进程print将B2中的记录取出打印输出。缓冲器B1和B2每次只能存放一个记录。要求三个进程协调完成任务,使打印出来的与读入的记录的个数,次序完全一样。
请用PV操作,写出它们的并发程序。
展开
 我来答
九宵雲外
推荐于2018-03-19
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
empty1表示缓冲区B1是否为空full1表示缓冲区B1是否未满
empty2表示缓冲区B2是否为空full2表示缓冲区B2是否未满
int empty 1=1 full1=0 empty2=1 full2=0
parbegin
read
{p(empty1) ;
读入B1
V(full1)
}
MOVE
{
p(full1);取出
V(empty1);释放B1
P(empty2);放入B2
V(full2);
}
PTINENT
{
P(full2);取出打印
V(empty2);释放B2
}
parend
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式