文章
187
粉丝
0
获赞
3
访问
56.3k

评分及理由
(1)信号量定义及初值(满分约2分)
得分:1分
理由:学生定义了5个信号量,比标准答案多定义了水桶信号量(shuitong)。题目要求“定义尽可能少的信号量”,且水桶仅由丙使用,无需互斥信号量(因为丙每次只做一件事,且水桶只有一个,但浇水动作本身不与其他操作冲突,标准答案中未设水桶信号量是合理的)。因此多定义了一个不必要的信号量,扣1分。其余信号量含义与标准答案对应:tieqiao对应mutexT,keng对应empty,full对应sk,water含义相同。初值设置正确。
(2)甲、乙、丙三人的同步互斥逻辑(满分约5分)
得分:3分
理由:
甲的逻辑正确:通过P(full)控制可挖坑数(对应sk),P(tieqiao)互斥使用铁锹,挖坑后V(keng)通知乙有坑可用。
乙的逻辑有错误:乙在“放树苗”后立即V(full)并“填土”,但填土动作未在铁锹互斥保护下,且填土与放树苗顺序颠倒(应先放树苗再填土,且填土需用铁锹)。标准答案中填土在互斥区内。此处逻辑错误扣1分。
丙的逻辑有瑕疵:丙使用了水桶信号量P(shuitong)/V(shuitong),但水桶仅丙一人使用,无需互斥,且浇水动作本身不冲突,多此信号量虽不影响同步,但不符合“尽可能少的信号量”要求,此处不额外扣分(因在定义部分已扣)。但丙的P(water)正确等待浇水信号。
另外,乙的V(water)在填土之后,逻辑正确。
综合乙的逻辑错误,扣2分。
题目总分:1+3=4分
题目总分:4分
登录后发布评论
暂无评论,来抢沙发