文章
160
粉丝
0
获赞
0
访问
72.1k

评分及理由
(1)信号量定义得分及理由(满分1分)
得分:0.5分
理由:学生定义了四个信号量(odd、even、mutex、empty),但odd和even的含义描述不准确(说成"已统计个数"而不是控制同步),empty的含义描述也不准确(说成"未统计整数个数"而不是缓冲区空单元数)。mutex定义正确。由于三个信号量含义描述存在错误,扣0.5分。
(2)P1进程代码得分及理由(满分2分)
得分:0分
理由:存在严重逻辑错误:①P(mutex)和P(empty)顺序颠倒,可能导致死锁;②在生成数字前就申请了empty信号量,逻辑不合理;③没有判断数字奇偶性就同时V(odd)和V(even),这会错误地唤醒P2和P3。这些是严重的同步逻辑错误。
(3)P2进程代码得分及理由(满分2分)
得分:1分
理由:基本框架正确,但存在逻辑错误:countodd()应该在释放互斥锁之后执行,学生将其放在互斥区内,虽然不影响结果但不符合最佳实践。扣1分。
(4)P3进程代码得分及理由(满分2分)
得分:1分
理由:与P2相同的问题,counteven()应该放在释放互斥锁之后。另外V(empty)注释说"通知P1放一个偶数"表述不准确。扣1分。
题目总分:0.5+0+1+1=2.5分
登录后发布评论
暂无评论,来抢沙发