文章
119
粉丝
1
获赞
100
访问
28.7k

评分及理由
(1)信号量定义得分及理由(满分1分)
得分:0.5分
理由:学生定义了odd和even信号量用于同步,但没有定义互斥信号量mutex,也没有使用empty信号量而是使用了full信号量。虽然full可以起到empty类似的作用(控制缓冲区空位),但缺少互斥信号量会导致缓冲区访问的互斥性无法保证,这是一个重要的逻辑错误。由于信号量定义不完整,扣0.5分。
(2)P1进程实现得分及理由(满分2分)
得分:1分
理由:P1进程正确使用了full信号量控制缓冲区空间,正确生成了数据并根据奇偶性发出相应信号。但缺少对缓冲区的互斥访问保护(P(mutex)和V(mutex)),也没有实际的put操作将数据放入缓冲区,这是严重的逻辑错误。扣1分。
(3)P2/P3进程实现得分及理由(满分4分)
得分:2分
理由:P2和P3进程正确使用了odd/even信号量进行同步,正确释放了full信号量,并调用了相应的统计函数。但同样缺少对缓冲区的互斥访问保护,getodd()和geteven()操作没有在互斥保护下进行,这是严重的逻辑错误。每个进程扣1分,共扣2分。
题目总分:0.5+1+2=3.5分
登录后发布评论
暂无评论,来抢沙发