文章
278
粉丝
0
获赞
0
访问
37.2k

评分及理由
(1)信号量定义得分及理由(满分2分)
学生定义了mutex=1(铁锹互斥)、keng=0(坑数量)、empty=3(可挖坑数)、water=0(浇水信号),与标准答案的mutexT=1、sk=3、empty=0、water=0相比,虽然empty和keng的命名和初值与标准答案不同,但empty=3实际对应标准答案的sk=3(控制挖坑数量),keng=0对应标准答案的empty=0(控制填坑同步)。信号量种类和功能完整,逻辑等价。得2分。
(2)甲进程代码得分及理由(满分2分)
甲先P(empty)(相当于P(sk))控制挖坑数量,再P(mutex)拿铁锹,挖坑后V(keng)(相当于V(empty))通知乙。逻辑正确,与标准答案等价。得2分。
(3)乙进程代码得分及理由(满分2分)
乙先P(keng)等待坑,再P(mutex)拿铁锹,但V(mutex)在填土放树苗之前释放了铁锹,而标准答案是在填土完成后释放。这里存在逻辑错误:填土操作需要使用铁锹,提前释放铁锹可能导致甲在乙填土过程中抢走铁锹挖坑,违反互斥。扣1分。其他部分正确,V(water)通知丙浇水,V(empty)(学生未写,但通过empty初值3和甲P(empty)隐含了控制)实际由甲P(empty)和乙未V(empty)导致坑数不恢复,这里标准答案有signal(sk)而学生缺失,属于逻辑错误。再扣1分。得0分。
(4)丙进程代码得分及理由(满分1分)
丙P(water)等待浇水信号,然后拿桶浇水。逻辑正确,水桶互斥在题目中未强调,学生未处理不扣分。得1分。
题目总分:2+2+0+1=5分
登录后发布评论
暂无评论,来抢沙发