文章
6
粉丝
93
获赞
0
访问
233
评分及理由
(1)得分及理由(满分5分)
学生作答的伪代码中,P1和P2的生产者进程在生产产品前先执行了P(emptyA)或P(emptyB),这会导致死锁或逻辑错误,因为生产操作应在获取空位信号量之前进行(否则如果空位不足,进程会阻塞在生产之前,但实际生产操作尚未发生,浪费资源)。标准答案中,生产操作在P(emptyA)或P(emptyB)之前。类似地,消费者C1和C2的消费操作应在V(emptyA)或V(emptyB)之后,但学生代码中缺少消费操作(只有取产品,没有消费),这属于逻辑错误。此外,循环条件应为生产或消费3次,但学生使用了while(1),这会导致无限循环,不符合题意。因此,扣分严重。但考虑到识别可能误写(如生产操作位置),且核心同步操作(P/V顺序)基本正确(除了生产/消费动作位置),给予部分分数。得分:2分(扣3分:生产操作位置错误扣1分,缺少消费操作扣1分,循环条件错误扣1分)。
(2)得分及理由(满分2分)
学生未提供第(2)问的答案,因此得0分。
题目总分:2+0=2分
登录后发布评论
暂无评论,来抢沙发