文章
933
粉丝
0
获赞
2
访问
190.6k

评分及理由
(1)信号量定义得分及理由(满分2分)
得分:1分
理由:学生定义了四个信号量,但存在以下问题:
- empty初值应为1000(缓冲区容量),第一次识别写为"low"明显错误,第二次识别写为100,与题目要求的1000不符
- mutex1定义正确(控制连续取产品)
- mutex2/mutex定义正确(缓冲区互斥)
- full定义正确
由于empty初值错误,扣1分
(2)生产者进程得分及理由(满分1分)
得分:0.5分
理由:生产者进程基本框架正确,但存在逻辑错误:
- 缺少产品生产步骤
- 对mutex1的使用错误,应该用mutex2/mutex保护缓冲区,而不是mutex1
由于核心互斥逻辑错误,扣0.5分
(3)消费者进程得分及理由(满分5分)
得分:2分
理由:消费者进程存在多个逻辑错误:
- 使用mutex1控制连续取产品,思路基本正确(+1分)
- for循环内使用V(full)应该是V(empty),这是严重逻辑错误(-1分)
- 连续取产品数量:第一次识别写k(未指定),第二次写5,与题目要求的10不符(-1分)
- 缺少产品消费步骤(-1分)
- 整体同步逻辑基本正确,但细节错误较多
题目总分:1+0.5+2=3.5分
登录后发布评论
暂无评论,来抢沙发