文章
32
粉丝
0
获赞
0
访问
18.9k

评分及理由
(1)信号量定义得分及理由(满分2分)
学生定义了4个信号量:mutex=1(铁锹互斥)、K=0(坑的数量)、empty=3(可挖坑数量)、over=0(填土完成标志)。与标准答案相比:
- mutex功能正确(1分)
- empty初值正确但功能表述不完整(0.5分)
- K对应标准答案的empty,但初值应为0(0.5分)
- over对应标准答案的water,功能正确(0.5分)
缺少sk信号量(对应empty的逆向控制),但empty和K的组合能实现类似功能。扣0.5分。
得分:1+0.5+0.5+0.5-0.5=2分
(2)甲进程代码得分及理由(满分2分)
代码逻辑:P(empty)→P(mutex)→挖坑→V(mutex)→V(K)
- 通过empty控制挖坑数量正确(1分)
- 对铁锹的互斥使用正确(0.5分)
- 缺少对树坑数量的限制(当树坑数量小于3时才可挖),但empty=3已隐含此限制(0.5分)
得分:2分
(3)乙进程代码得分及理由(满分2分)
代码逻辑:P(K)→放树苗→P(mutex)→填土→V(mutex)→V(empty)→V(over)
- 等待有坑的逻辑正确(0.5分)
- 放树苗操作未加互斥不是问题(0分)
- 填土时对铁锹的互斥正确(0.5分)
- 释放empty信号量正确(0.5分)
- 通知浇水正确(0.5分)
但放树苗和填土应该作为一个原子操作,中间插入其他操作可能导致问题,扣0.5分。
得分:0.5+0.5+0.5+0.5-0.5=1.5分
(4)丙进程代码得分及理由(满分1分)
代码逻辑:P(over)→浇水
完全正确,等待填土完成信号后浇水。
得分:1分
题目总分:2+2+1.5+1=6.5分
登录后发布评论
暂无评论,来抢沙发