文章
578
粉丝
0
获赞
2
访问
44.5k
评分及理由
(1)信号量定义得分及理由(满分2分)
得分:1分
理由:学生定义了4个信号量,但存在以下问题:
1. "tree"信号量初值为0,用于甲与丙的同步,但实际应该是甲与乙的同步(挖坑完成后通知乙)
2. "treee"信号量初值为0,用于乙与丙的同步,这个思路正确
3. "tieqiu"信号量初值应为1(代表铁锹可用),但学生设为0,这是严重错误
4. "mutex"信号量定义正确
5. 缺少控制甲挖坑数量的信号量(树坑数量小于3时才能挖坑)
扣1分,主要因为铁锹信号量初值错误。
(2)甲进程代码得分及理由(满分2分)
得分:0.5分
理由:存在多处逻辑错误:
1. 缺少循环结构,不符合持续植树的场景
2. 使用if条件判断COUNT<=3,但没有相应的信号量控制
3. P(tieqiu)操作在COUNT判断之后,逻辑顺序不合理
4. 挖坑后V(tree)通知,但应该是通知乙进程而非丙进程
5. 缺少对挖坑数量的限制机制
扣1.5分,逻辑错误较多。
(3)乙进程代码得分及理由(满分1.5分)
得分:0.5分
理由:
1. P(tree)等待甲的通知,但甲通知的是tree信号量,这个同步关系基本正确
2. 缺少使用铁锹进行填土的操作
3. 缺少对铁锹的互斥访问
4. V(treee)通知丙进程,这个同步关系正确
扣1分,主要缺少铁锹的使用和填土操作。
(4)丙进程代码得分及理由(满分1.5分)
得分:0.5分
理由:
1. P(treee)等待乙的通知,同步关系正确
2. 填土操作应该在乙进程中,丙只负责浇水
3. 丙不需要使用铁锹,但学生代码中有P(tieqiu)操作
4. 丙不需要修改COUNT变量
5. 浇水操作正确
扣1分,主要因为角色分工混乱。
题目总分:1+0.5+0.5+0.5=2.5分
登录后发布评论
暂无评论,来抢沙发