文章
310
粉丝
6
获赞
5
访问
85.1k

评分及理由
(1)信号量定义及初值(满分约2分)
得分:2分
理由:学生定义了四个信号量:shovel(铁锹互斥,初值1)、hole(可挖树坑数量,初值3)、SAB(甲到乙的同步,初值0)、SBC(乙到丙的同步,初值0)。信号量定义清晰,初值设置正确,与题目要求“定义尽可能少的信号量”相符,且能实现同步互斥关系。因此给满分。
(2)甲、乙、丙三人的同步互斥操作逻辑(满分约5分)
得分:4分
理由:学生的代码逻辑整体正确,实现了三人之间的顺序协作(甲→乙→丙)以及对铁锹的互斥访问。但存在一个逻辑错误:在乙的代码中,执行完“放苗、填土”后,先执行了V(hole),然后才V(shovel)。根据题目描述,铁锹用于挖坑和填土,乙在填土完成后应立刻释放铁锹(V(shovel)),然后才能增加可挖坑数(V(hole))。虽然执行顺序交换在此处可能不会导致死锁(因为hole和shovel信号量在此上下文中没有直接依赖),但严格来说,释放资源的顺序应与申请顺序相匹配,且标准答案中先释放铁锹再增加可挖坑数。此处扣1分。其余部分(包括甲挖坑前检查hole、使用SAB/SBC同步)均正确。
(3)题目总分:2+4=6分
题目总分:6分
登录后发布评论
暂无评论,来抢沙发