setgqwetwe
幼苗
共回答了16个问题采纳率:87.5% 举报
semaphore s;//设置一个信号量s,s的格式为s[r] //s[r]=0,0为盘子为空,且AB都没有过操作 //s[r]=A,1则盘子中A前一次放入过苹果,s[r]=B,1 //则盘子中前一次B放入过犁,s[r]=A,0则表示盘子为空,可以放入 //犁,s[r]=B,0则表示盘子为空,可以放入苹果 //当一个进程执行完后,在后面的3个周期里不得再执行本进程 Process A begin if(s[r]==0,0||s[r]==B,0)//当判断盘子为空或者可以放入苹 //果 P(s); 放入苹果; V(s);//s[r]=A,1 end Porcess B begin if(s[r]==A,0) P(s); 放入犁; V(s);//s[r]=B,1 end Porcess C begin if(s[r]==A,1) P(s); 取出苹果; V(s);//s[r]=A,0 end Porcess C begin if(s[r]==B,1) P(s); 取出犁; V(s);//s[r]=B,0 end
1年前
1