文章
65
粉丝
0
获赞
0
访问
1.6k

评分及理由
(1)信号量定义得分及理由(满分1分)
得分:1分
理由:学生定义了四个信号量Empty、odd、even、mutex,与标准答案含义一致,信号量初始值正确。
(2)P1进程实现得分及理由(满分2分)
得分:1分
理由:P1进程基本框架正确,有P(empty)和P(mutex)操作,V(mutex)位置正确,通过if判断使用V(odd)或V(even)通知消费者。但存在以下问题:
- 缺少put()操作将数据放入缓冲区
- 在第二次识别结果中,V(odd)/V(even)操作在V(mutex)之前,这是正确的,但第一次识别结果中这些操作在V(mutex)之后,存在逻辑错误
综合考虑两次识别结果,扣1分
(3)P2进程实现得分及理由(满分2分)
得分:2分
理由:P2进程逻辑正确,有P(odd)等待奇数信号,P(mutex)保护临界区,getodd()获取数据,countodd()统计,V(mutex)释放锁,V(empty)通知生产者。第一次识别中的"-getodd++"可能是识别错误,不影响核心逻辑。
(4)P3进程实现得分及理由(满分2分)
得分:2分
理由:P3进程逻辑正确,有P(even)等待偶数信号,P(mutex)保护临界区,geteven()获取数据,counteven()统计,V(mutex)释放锁,V(empty)通知生产者。
题目总分:1+1+2+2=6分
登录后发布评论
暂无评论,来抢沙发