文章

24

粉丝

0

获赞

0

访问

1.5k

头像
2009年计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年10月7日 14:09
阅读数 77


评分及理由

(1)信号量定义得分及理由(满分1分)

得分:0.5分

理由:学生定义了mutex、full、odd、even四个信号量,其中mutex用于互斥是正确的,odd和even用于同步也是正确的。但是将缓冲区容量信号量命名为"full"是不合适的,标准答案使用"empty"表示空单元数量,这里使用"full"容易引起混淆,而且语义上应该是等待空单元而不是满单元。不过考虑到这是语义理解问题,不是核心逻辑错误,扣0.5分。

(2)P1进程实现得分及理由(满分2分)

得分:1分

理由:P1进程存在严重逻辑错误。在第一次识别中,外层有一个if(i%2==0)的判断,这个判断是多余的,会导致奇数无法被正确处理。在第二次识别中,虽然去掉了外层判断,但是P(mutex)和P(full)的顺序错误,应该先P(full)再P(mutex),否则可能产生死锁。另外,缺少对信号量的初始化。由于存在死锁风险这个严重逻辑错误,扣1分。

(3)P2进程实现得分及理由(满分2分)

得分:1分

理由:P2进程同样存在信号量获取顺序错误。应该先P(odd)再P(mutex),否则可能产生死锁。V(full)的位置是正确的。由于存在死锁风险这个严重逻辑错误,扣1分。

(4)P3进程实现得分及理由(满分2分)

得分:1分

理由:P3进程与P2存在相同的问题,应该先P(even)再P(mutex),否则可能产生死锁。V(full)的位置是正确的。由于存在死锁风险这个严重逻辑错误,扣1分。

题目总分:0.5+1+1+1=3.5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发