文章

135

粉丝

93

获赞

1

访问

39.7k

头像
2025年(408)计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年12月15日 16:27
阅读数 146


评分及理由

(1)信号量定义部分(满分约2分)

得分:2分

理由:学生定义了四个信号量,与标准答案对应关系为:Tq 对应 mutexT(铁锹互斥),Emptykeng 对应 sk(可挖坑数,初值3),full keng 对应 empty(可用树坑数,初值0),Shu 对应 water(待浇水树苗,初值0)。信号量命名虽不同,但含义与初值均正确,符合题目要求“定义尽可能少的信号量”。

(2)甲进程代码(满分约2分)

得分:2分

理由:甲进程逻辑正确。先 wait(Emptykeng) 确保坑数小于3才可挖坑,再 wait(Tq) 获取铁锹,挖坑后释放铁锹并 signal(full keng) 通知乙有坑可用。与标准答案完全一致。

(3)乙进程代码(满分约2分)

得分:1分

理由:存在逻辑错误。错误1:在 wait(full keng) 之前执行了“放树苗”操作,这不符合题目步骤顺序(应先有坑才能放树苗)。错误2:填土后 signal(full keng) 是错误的,此处应 signal(Emptykeng) 或类似含义的信号量以允许甲继续挖坑(因为乙填土后完成一个坑,相当于释放了一个可挖坑的资源)。标准答案中乙是 signal(sk)。学生代码中 signal(full keng) 会导致 full keng 计数错误增加,破坏同步。但 signal(Shu) 通知丙浇水是正确的。因此扣除1分。

(4)丙进程代码(满分约1分)

得分:0.5分

理由:存在逻辑不严谨。丙进程中“拿水桶”操作未用信号量保护,但题目中水桶只有一个,且未明确要求互斥,通常可忽略。主要错误在于浇水后 signal(Shu) 是不必要的,因为 Shu 信号量用于表示需要浇水的树苗数量,浇水后不应增加该计数。这会导致 Shu 计数错误,可能使丙重复等待或无法正确同步。但考虑到水桶资源可能隐含互斥,且学生可能意图释放水桶,此处扣0.5分。

题目总分:2+2+1+0.5=5.5分

根据题目总分7分,按比例折算为:5.5 / 7 ≈ 0.7857,考虑到各部分分值权重,综合给分:

最终得分:5分(四舍五入取整)

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发