回 帖 发 新 帖 刷新版面

主题:作业题~~~大家来讨论一下。。谢谢大家来捧场~~~~~~!

我们学到了  并发性:互斥和同步  这一章。
用信号量的一个解决方法,此题是作业题。
拿出来讨论一下。

     桌子上有一空盘,允许存放一个水果。父亲可以在
盘中反苹果,也可以向盘中放橘子。儿子专吃橘子,
女儿专吃苹果。
规定:当盘中空时,一次只能放一个水果供吃者取用。
请wait signal实现父亲,儿子和女儿三个并发进程
的同步。

回复列表 (共2个回复)

沙发

所用信号量empty=1盘子是否为空apple=0盘内有苹果 orange=0盘内有橘子
用操作p()来申请资源,用操作s()来释放资源.
f:
p(empty)
  放水果
if (放的是苹果)
   v(apple);
else
   v(ornge);
s:
p(apple)
   取苹果
v(empty)
d:
p(orange)
   取橘子
v(empty)

板凳

首先谢谢大哥的回答,

不过我题目的要求不是用的这种语言。就是那种操作系统的原语。
老师讲的时候只是讲了要注意的地方,比如说父亲的那盘子是一个缓冲区,一次只能是一个,要避免互斥的话就应该用wait 和signal.

我来回复

您尚未登录,请登录后再回复。点此登录或注册