文章
296
粉丝
0
获赞
0
访问
21.4k

评分及理由
(1)信号量定义得分及理由(满分1分)
得分:1分
理由:学生正确定义了四个信号量:mutex用于缓冲区互斥(初值1),empty用于空缓冲区计数(初值N),odd用于奇数同步(初值0),even用于偶数同步(初值0)。定义与标准答案完全一致。
(2)P1进程实现得分及理由(满分2分)
得分:1分
理由:学生代码存在一个逻辑错误。在P1进程中,produce()操作放在了P(mutex)保护区内,但题目要求put()操作需要受互斥保护。学生代码缺少了put()操作,且produce()的位置不符合题目要求。不过同步逻辑正确,先P(empty)再P(mutex),最后根据奇偶性V(odd)或V(even)。
(3)P2进程实现得分及理由(满分2分)
得分:2分
理由:P2进程实现完全正确。先P(odd)等待奇数信号,再P(mutex)获取缓冲区互斥,执行getodd(),然后V(mutex)释放缓冲区,V(empty)增加空位,最后countodd()统计。顺序和逻辑都与标准答案一致。
(4)P3进程实现得分及理由(满分2分)
得分:2分
理由:P3进程实现完全正确。先P(even)等待偶数信号,再P(mutex)获取缓冲区互斥,执行geteven(),然后V(mutex)释放缓冲区,V(empty)增加空位,最后counteven()统计。顺序和逻辑都与标准答案一致。
题目总分:1+1+2+2=6分
登录后发布评论
暂无评论,来抢沙发