LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1335|回复: 5

请问如何用C语言编写分水果问题??

[复制链接]
发表于 2006-5-29 09:56:39 | 显示全部楼层 |阅读模式
俺们老师上LINUX实现课,要求我们调用FORK()启动期于并发进程,利用PV操作,实现分水果问题……
PV操作本来就不是很会……
C语言又不是很强……
所以问下各位大人能不能告诉我怎么编写啊?

吃水果问题
•问题描述:桌上有一只盘子,每次只能放一个水果,爸爸专向盘中放苹果,妈妈专向盘中放桔子,儿子专等吃盘里的桔子,女儿专等吃盘里的苹果。只要盘子空,则爸爸或妈妈可向盘中放水果,仅当盘中有自己需要的水果时,儿子或女儿可从中取出,请给出四人之间的同步关系,并用PV操作实现四人正确活动的程序。  

拜托各位了啊~
发表于 2006-5-29 10:39:37 | 显示全部楼层
盘子有一个互斥信号量 empty(看盘子是否为空,为空则1,反之为0)
水果的计数 count(<=1)
苹果的信号量 apple
桔子的信号量 orange

[php]
empty=1;//初始盘子为空
count=0;//水果总数
apple =0;
orage=0;

父亲:

S1: parbegin
         p(empty);
         count:=count+1;
        v(apple);
        do sth else.
    parend.
母亲:

S2:parbegin
        p(empty);
        count:=count+1;
        v(orage);
        do sth else.
    parend.

儿子:
S3:parbegin
       p(orage);
       count:=count-1;
       if(count=0) v(empty);
         do sth else.
       parend.

女儿:
  S4:parbegin
         p(apple);
         count:=count-1;
         if(count=0) v(empty);
          do sth else.
         parend.
[/php]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-31 11:18:42 | 显示全部楼层
php?
可是我们用的是C语言,而且老师要求我们用C语言执行的......
上面的哪个代码我们没有颁发执行~~
回复 支持 反对

使用道具 举报

发表于 2006-5-31 16:27:55 | 显示全部楼层
可以去问钱亚冠老师哦~~ 哈哈 找我也行
回复 支持 反对

使用道具 举报

发表于 2006-5-31 22:35:51 | 显示全部楼层
Post by tomiya
php?
可是我们用的是C语言,而且老师要求我们用C语言执行的......
上面的哪个代码我们没有颁发执行~~

你应该好好看看剑心写的代码,理解其含义;
而不是局限于语言,还嫌它不能运行。
回复 支持 反对

使用道具 举报

发表于 2006-6-2 16:00:22 | 显示全部楼层
能看明白剑心的 在用c实现不就行了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表