有四个进程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操作描述四个进程存取消息的情况。
展开
2个回答
展开全部
解:信号量初值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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |