文章
39
粉丝
0
获赞
0
访问
1.8k
评分及理由
(1)信号量定义(满分2分)
得分:2分
理由:学生定义了四个信号量:mutex用于互斥(正确)、empty用于缓冲区空单元计数(正确)、full1用于偶数计数(对应标准答案的even)、full2用于奇数计数(对应标准答案的odd)。信号量含义清晰,与标准答案功能一致,只是命名不同,符合"思路正确不扣分"原则。
(2)P1进程实现(满分2分)
得分:2分
理由:P1进程逻辑正确,先P(empty)检查缓冲区空间,再P(mutex)获取缓冲区互斥访问权,生成数字后根据奇偶性分别发送相应信号量(V(full1)对应偶数,V(full2)对应奇数),最后V(mutex)释放缓冲区。虽然Put函数写法有差异,但核心逻辑正确。
(3)P2进程实现(满分1.5分)
得分:1.5分
理由:P2进程基本逻辑正确,先P(full2)等待奇数信号,再P(mutex)获取缓冲区访问权,执行getodd()和countodd()操作。但缺少V(empty)操作来释放缓冲区空间,这是一个逻辑错误,扣0.5分。
(4)P3进程实现(满分1.5分)
得分:1.5分
理由:P3进程同样存在缺少V(empty)的问题,其他逻辑正确。先P(full1)等待偶数信号,再P(mutex)获取缓冲区访问权,执行geteven()和counteven()操作。缺少V(empty)扣0.5分。
(5)代码完整性(满分0.5分)
得分:0.5分
理由:代码结构完整,三个进程都实现了基本功能。
题目总分:2+2+1.5+1.5+0.5=7.5分
由于题目满分是7分,按照"计算题目总分时,对于有逻辑错误的答案不要给满分"的原则,且总分不能超过满分,最终得分为7分。
登录后发布评论
暂无评论,来抢沙发