文章
75
粉丝
78
获赞
0
访问
4.0k

评分及理由
(1)信号量定义及初值(满分约2分)
学生定义了“铁锹=1”和“树苗=0”两个信号量,以及一个整型变量hole=0。标准答案需要四个信号量:互斥使用铁锹、控制可挖坑数、表示可用坑数、表示需要浇水。学生答案中缺少对“可挖坑数≤3”的明确信号量控制(仅用hole变量判断,但未保证同步),也缺少“可用坑数”和“需要浇水”的独立信号量,导致后续流程同步关系混乱。但“铁锹=1”正确表示了互斥,“树苗=0”初值合理。扣1分。
得分:1分
(2)甲挖坑流程(满分约2分)
学生代码中,甲在hole<3时挖坑,并用P(铁锹)保护挖坑操作,基本符合互斥要求。但signal(树苗)的时机错误:挖坑后不应直接signal(树苗),而应通知乙可以放树苗(即增加可用坑数)。此外,hole++操作未受保护(虽然放在临界区内,但整体同步逻辑错乱)。因核心同步逻辑错误,扣1.5分。
得分:0.5分
(3)乙放树苗与填土、丙浇水流程(满分约3分)
学生将乙和丙的分工混淆:乙本应“放树苗并填土”,丙“浇水”,但学生代码中乙包含了填土和浇水(第二次识别中乙有填土,丙只有浇水,但信号量等待混乱),且乙中signal(铁锹)使用不当。丙仅等待树苗信号然后浇水,未体现与填土后的同步。整个流程未正确实现“挖坑→放树苗填土→浇水”的顺序同步,且信号量“树苗”被混用于多个同步条件,导致逻辑严重错误。扣2.5分。
得分:0.5分
题目总分:1+0.5+0.5=2分
登录后发布评论
暂无评论,来抢沙发