文章
280
粉丝
1
获赞
8
访问
50.8k

评分及理由
(1)信号量定义得分及理由(满分2分)
学生定义了4个信号量:full、empty、mutex、tree,与标准答案的sk、empty、mutexT、water功能基本对应,但命名不同。empty初值3正确对应可挖坑数量限制;full初值0正确表示初始无可用坑;mutex初值1正确用于铁锹互斥;tree初值0正确表示需要浇水的树苗数量。信号量定义和初值设置合理,得2分。
(2)甲进程代码得分及理由(满分2分)
甲先P(empty)检查可挖坑数量,再P(mutex)获取铁锹,挖坑后释放铁锹并V(full)通知乙有可用坑。逻辑与标准答案一致,只是信号量命名不同。得2分。
(3)乙进程代码得分及理由(满分2分)
乙先P(full)等待可用坑,再P(mutex)获取铁锹,放树填土后释放铁锹并V(tree)通知丙浇水。逻辑正确,得2分。
(4)丙进程代码得分及理由(满分1分)
丙P(tree)等待需要浇水的树苗,浇水后V(empty)增加可挖坑数量。这里存在逻辑错误:丙浇水后应该通知甲可以继续挖坑,但标准答案中是通过乙的signal(sk)来实现的。学生的方案让丙直接V(empty),虽然功能上能实现同步,但与题目要求的"当树坑数量小于3时甲才可以挖坑"的语义不完全吻合,且改变了正常的执行流程。扣1分,得0分。
题目总分:2+2+2+0=6分
登录后发布评论
暂无评论,来抢沙发