操作系统算法问题
若一只盘子一次只能放一个水果~!A只往盘中放苹果~B只往盘中放梨子~C只从盘中取苹果~D只从盘中取梨子~试用P,V操作写出同步算法
下面给你伪代码: 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 其中我设置了一个规则,先放苹果才可以放犁,防完了其中一项必须放另一项,防止饥饿情况发生。
可能更好的算法是先放入苹果然后是放入苹果,然后设置一个周期,如果放入苹果的数量到达某一个值时,让B可以放入犁,同理当放入的犁的数量达到某一个值时让A放入苹果,用取余的算法就可以做到,很简单的,。
答:没有图只能靠分析,可能性较大是红蛛蜘或蚧壳虫,可用一张白纸托在下面,用手拍打叶子,如有掉落在白纸上的小虫且会移动,就应该是红蛛蜘。如无掉落,仍全部附在叶上,就是...详情>>
问:快过年了,盗号的很多大家小心,昨天一女的加我,外地的我给删除了,晚上就显示异地登...
答:如果加一下就能被盗号了也太可怕了啊。详情>>
答:有可能你的系统不是正版的,是正版的才可以下载更新.详情>>