文章
117
粉丝
38
获赞
0
访问
22.1k

评分及理由
(1)信号量定义及初值(满分约2分)
得分:2分
理由:学生定义了四个信号量,与标准答案完全对应(尽管命名不同):tieqiao(对应mutexT,互斥使用铁锹,初值1)、wakeng(对应sk,控制可挖坑数,初值3)、keng(对应empty,表示可用坑数,初值0)、jiaoshui(对应water,表示待浇水树苗数,初值0)。信号量作用说明清晰,初值正确。因此该部分得满分。
(2)甲进程的同步互斥实现(满分约2分)
得分:2分
理由:甲进程的逻辑与标准答案一致。先wait(wakeng)确保坑数小于3才可挖,再wait(tieqiao)获取铁锹,挖坑后释放铁锹并signal(keng)通知乙有坑可用。逻辑正确无误。
(3)乙进程的同步互斥实现(满分约2分)
得分:1分
理由:乙进程的整体框架正确,但存在一处逻辑错误。在第二次识别结果中,乙进程在“放树苗”后立即signal(wakeng),这不符合题意。根据题目,乙的步骤是“放树苗入坑并填土”,填土需要使用铁锹,且填土完成后才应释放一个可挖坑名额(即signal(wakeng))。标准答案中,signal(sk)是在填土并释放铁锹之后执行的。学生答案中signal(wakeng)提前到填土之前,会导致甲可能在乙填土完成前就又开始挖坑,虽然由于铁锹互斥可能不会产生严重错误,但逻辑顺序与题目描述的流程不符,属于逻辑错误。扣1分。其余部分(wait(keng)、获取释放铁锹、signal(jiaoshui))正确。
(4)丙进程的同步互斥实现(满分约1分)
得分:1分
理由:丙进程的逻辑正确。wait(jiaoshui)等待浇水信号,浇水后循环。在第二次识别结果中完全正确。第一次识别结果中丙的代码有误(浇水后V(jiaoshui)),但根据“两次识别只要一次正确则不扣分”的原则,此处不扣分。
题目总分:2+2+1+1=6分
登录后发布评论
暂无评论,来抢沙发