第5讲 随堂典型问题填空题2

一.填空题(共1题,100.0分)
1
桌上有一只盘子,最多可以容纳m只水果,每次只能放入或取出一个水果。爸爸专向盘子中放苹果(Apple),妈妈专向盘子中放桔子(Orange),两个儿子专等吃盘子中的苹果,两个女儿专等吃盘子中的桔子。用P、V操作来实现爸爸、妈妈、儿子、女儿之间的同步与互斥关系。

解答:设信号量place、apple、orange和mutex分别表示盘子里能放水果的数目、盘子里已放入的苹果数目和盘子里已放入的桔子的数目和对盘子的互斥访问,其初值分别为m、0、0和1,其同步与互斥关系描述如下:

Semaphore place=m,apple=0,orange=0,mutex=1;

main()

{cobegin

father();

mother();

son();

daughter();

coend

}

father()

{while(1){

(【1】);

wait(mutex)

place apple;

signal(mutex);

signal(apple);}

}

mother()

{while(1){

(【2】);

wait(mutex)

place orange;

signal(mutex);

signal(orange);}

}

son()

{while(1){

(【3】);

wait(mutex)

take apple;

signal(mutex);

signal(place);}

}

daughter()

{while(1){

(【4】);

wait(mutex)

take orange;

signal(mutex);

signal(place);}

}

请分别在四个空处填写正确的wait操作或signal操作。

(注意:wait和signal字母需要用小写字母,圆括号使用英文半角输入方式书写,信号量与题目所定义的信号量保持一致。)

比如填上答案为:wait(place),signal(place)

正确答案:

第一空:
wait(place)

第二空:
wait(place)

第三空:
wait(apple)

第四空:
wait(orange)

我的答案: 得分: 100.0分
第一空:
wait(place)

第二空:
wait(place)

第三空:
wait(apple)

第四空:
wait(orange)

批语

答案解析:

答案解析:设信号量place、apple、orange和mutex分别表示盘子里能放水果的数目、盘子里已放入的苹果数目和盘子里已放入的桔子的数目和对盘子的互斥访问,其初值分别为m、0、0和1,其同步与互斥关系描述如下:

Semaphore place=m,apple=0,orange=0,mutex=1;

main()

{cobegin

father();

mother();

son();

daughter();

coend

}

father()

{while(1){

wait(place);

wait(mutex)

place apple;

signal(mutex);

signal(apple);}

}

mother()

{while(1){

wait(place);

wait(mutex)

place orange;

signal(mutex);

signal(orange);}

}

son()

{while(1){

wait(apple);

wait(mutex)

take apple;

signal(mutex);

signal(place);}

}

daughter()

{while(1){

wait(orange);

wait(mutex)

take orange;

signal(mutex);

signal(place);}

}

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值