c语言 pv原语函数,PV操作经典习题

本文探讨了解决大学考试中遇到的经典问题,如进程间同步与互斥的代码解析、利用PV操作解决酒吧物品分配问题,以及如何识别并避免死锁。作者分享了修改后的代码示例,并反思了大学考试中对知识点掌握的重要性以及考试策略的转变。
摘要由CSDN通过智能技术生成

好经典的一些问题

第一题

c54923eaad55

显然这个代码完美的解决了进程间同步与互斥的问题

c54923eaad55

c54923eaad55

所以答案选D

第二题

一间酒吧中有3个音乐爱好者, 一个有随身听, 一个有电池, 一个有音乐磁带。 酒吧老板一次出售这三种物品中的任意两种。 当一名音乐爱好者得到三样东西并且听完之后, 酒吧老板才能再一次出售这三种物品。

使用PV操作解决。

woc我还在想老板怎么解决卖个谁的问题, 没想到这里直接任取两件物品。。 然后符合条件的就卖出去

c54923eaad55

c54923eaad55

c54923eaad55

c54923eaad55

第三题

c54923eaad55

image.png

c54923eaad55

c54923eaad55

第四题

c54923eaad55

c54923eaad55

c54923eaad55

第五题

c54923eaad55

c54923eaad55

第六题

考试的一道题,虽然考前的一张试卷上出现了,但是我却没有看到,有点桑心

三个工人,一个生产车轮,一个生产车架,一个将一个车架与两个车轮组装起来。

原始的题目给的代码如下:

//工人1

生产车架

P(empty)

将车架放入工作台

V(frame)

//工人2

生产车轮

P(empty)

将车轮放入工作台

V(wheel)

//工人三

P(frame)

取一个车架

V(empty)

P(wheel)

P(wheel)

取两个车轮

V(empty)

V(empty)

组装一台车

这段代码十存在死锁问题的,因为如果一个工人连续生产车轮或者车架,直到占满了工作区,这就导致三个工人无法继续工作

所以修改代码如下:

//工人1

生产车架

P(s1)

P(empty)

将车架放入工作台

V(frame)

//工人2

生产车轮

P(s2)

P(empty)

将车轮放入工作台

V(wheel)

//工人三

P(frame)

取一个车架

V(empty)

P(wheel)

P(wheel)

取两个车轮

V(empty)

V(empty)

V(s1)

V(s2)

组装一台车

车架的数量不超过N-1

车轮的数量不超过N-2

也就是s1 = N-1,s2 = N-2

通过这种方式来限制工人的生产数量。

而我考试的时候是对生产数量进行计数,而且只想到了对一个工人进行限制,也不知道这种方式行不行

看天命吧

总结了一下考试的经验:

大学的考试从道理上来讲不算考试,而是叫猜题划重点。

从大一走来,从不理解为什么那么看重划重点确定哪些不考一步步过来,越来越觉得大学的考试很多时候在于你对信息的掌握,虽然很多东西懂了,但是它不考你很难受,很多东西你不懂但是偏偏要考

对于自己的能够掌握到的复习资料,一定要好好地利用。

暂时想到这么多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值