文章
179
粉丝
0
获赞
0
访问
7.9k
评分及理由
(1)信号量定义(满分1分)
得分:1分
理由:学生定义了mutex、odd、even、empty四个必要的信号量,含义正确。虽然额外定义了full信号量(标准答案未使用),但根据题目要求"多余的信息错误不扣分",且full信号量的使用在逻辑上是合理的,因此不扣分。
(2)P1进程实现(满分2分)
得分:1分
理由:存在严重逻辑错误。学生将V(odd)和V(even)操作放在了P(empty)和P(mutex)之前,这意味着在数据还未放入缓冲区时就通知消费者,可能导致消费者在数据未就绪时尝试访问。正确的顺序应该是先生产数据,再通知消费者。扣1分。
(3)P2进程实现(满分2分)
得分:1分
理由:存在两处错误:1)使用了P(full)但未在P1中对应使用V(full)的正确顺序;2)countodd()应该在getodd()之后,但学生代码中缺少getodd()操作,直接进行计数。扣1分。
(4)P3进程实现(满分2分)
得分:1分
理由:存在与P2相同的错误:1)同步信号量使用顺序问题;2)缺少geteven()操作,直接进行counteven()。扣1分。
题目总分:1+1+1+1=4分
登录后发布评论
暂无评论,来抢沙发