PV操作经典习题

好经典的一些问题

第一题

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

所以答案选D

第二题

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

使用PV操作解决。

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

第三题

image.png

第四题

第五题

第六题

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

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

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

//工人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

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

看天命吧

总结了一下考试的经验:
大学的考试从道理上来讲不算考试,而是叫猜题划重点。
从大一走来,从不理解为什么那么看重划重点确定哪些不考一步步过来,越来越觉得大学的考试很多时候在于你对信息的掌握,虽然很多东西懂了,但是它不考你很难受,很多东西你不懂但是偏偏要考

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

暂时想到这么多

你可能感兴趣的:(PV操作经典习题)