文章

202

粉丝

0

获赞

0

访问

53.1k

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


评分及理由

(1)信号量定义及初值(满分约2分)

得分:1分

理由:学生定义了三个信号量:shovel(初值1,互斥铁锹)、water(初值0,同步乙丙)、hole(初值3,控制挖坑数量)。与标准答案相比,缺少了用于同步甲、乙之间“可使用的树坑数量”的信号量(标准答案中的empty)。hole信号量虽然初值为3,但其作用在代码逻辑中与标准答案的sk类似,但缺少empty会导致甲挖坑后乙无法及时获知有坑可用(乙的启动依赖于shovel的释放,而非坑的可用性),这是一个逻辑缺陷。因此扣1分。

(2)甲进程的同步互斥逻辑(满分约2分)

得分:1分

理由:甲进程中,先wait(hole)(相当于控制挖坑数量不超过3),再wait(shovel)获取铁锹,然后挖坑,最后signal(shovel)释放铁锹。但缺少signal(empty)来通知乙有坑可用,导致乙无法被正确唤醒(乙的启动条件只有wait(shovel))。这是一个同步逻辑错误,扣1分。

(3)乙进程的同步互斥逻辑(满分约2分)

得分:1分

理由:乙进程中,直接wait(shovel)获取铁锹,然后放树、填土,之后signal(shovel)释放铁锹,再signal(water)通知丙浇水,signal(hole)允许甲继续挖坑。但乙缺少等待“有坑可用”的同步信号量(即标准答案中的empty),导致乙可能在甲挖坑之前就试图填土(实际上乙需要等待甲挖好坑)。同时,乙释放hole的位置正确(填土后),但缺少对empty的等待使得同步关系不完整。扣1分。

(4)丙进程的同步互斥逻辑(满分约1分)

得分:1分

理由:丙进程正确等待water信号量后浇水,逻辑正确,不扣分。

题目总分:1+1+1+1=4分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发