有四个进程P1、P2、P3和P4共享一个缓冲区,进程P1向缓冲区中存入消息,进程P2、P3和P4从缓冲区中取消息

有四个进程P1、P2、P3和P4共享一个缓冲区,进程P1向缓冲区中存入消息,进程P2、P3和P4从缓冲区中取消息,要求发送者必须等三个进程都取过本条消息后才能发送下一条消... 有四个进程P1、P2、P3和P4共享一个缓冲区,进程P1向缓冲区中存入消息,进程P2、P3和P4从缓冲区中取消息,要求发送者必须等三个进程都取过本条消息后才能发送下一条消息。缓冲区内每次只能容纳一个消息,用P、V操作描述四个进程存取消息的情况。 展开
 我来答
573062184
2010-11-08
知道答主
回答量:7
采纳率:0%
帮助的人:9万
展开全部
解:信号量初值S1=1,S2=0,S3=0,S4=0,MUTEX=1;
int Count=0;
repeat repeat repeat repeat
P(S1) P(S2) P(S3) P(S4)
Send message get message get message get message
P(MUTEX) P(MUTEX) P(MUTEX) P(MUTEX)
Count=0 Count=Count+1 Count=Count+1 Count=Count+1
V(S2) if(Count=3) if(Count=3) if(Count=3)
V(S3) V(S1) V(S1) V(S1)
V(S4) V(MUTEX) V(MUTEX) V(MUTEX)
until false until false until false until false
jieyanjiesejie
2010-11-07 · 超过18用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:51.1万
展开全部
fork出来P1,P2,P3,P4 初始化互斥信号量 对每个进程使用信号量wait 一个进程执行完 signal 再执行相对的进程 总之 只有一个进程又可执行的原子变量可使用便行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式