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

评分及理由
(1)得分及理由(满分7分)
学生答案定义了5个信号量:empty-keng(初值3,控制可挖坑数量)、full-keng(初值0,表示已挖未种坑数)、tree(初值0,表示已种未浇水树数)、Qiu(初值1,铁锹互斥)、tong(初值1,水桶互斥)。
与标准答案对比:
- 信号量设计思路正确,均能实现同步互斥要求。
- empty-keng 对应标准答案的 sk,full-keng 对应 empty,tree 对应 water,Qiu 对应 mutexT,tong 是额外为水桶定义的互斥信号量。
- 题目要求“定义尽可能少的信号量”,标准答案未为水桶单独设信号量,因为浇水不与其他操作冲突(铁锹用于挖坑和填土,水桶只用于浇水,且丙单独浇水,无需互斥)。学生为水桶设互斥信号量虽无逻辑错误,但未满足“尽可能少”的要求,属于冗余。
- 学生答案中乙的流程为:P(full-keng) -> P(Qiu) -> 放树填土 -> V(Qiu) -> V(empty-keng) -> V(tree)。其中 V(empty-keng) 使可挖坑数+1,符合“树坑数量小于3时甲可挖”的约束(通过empty-keng初值3和P(empty-keng)实现)。
- 丙的流程中 P(tree) 和 P(tong) 顺序可能导致死锁风险较低(因为tree由乙释放,tong初始可用),但若丙先拿到tong再等tree,可能浪费水桶资源,不过题目未严格要求顺序,且主要同步逻辑正确。
扣分点:
- 信号量数量未尽可能少(多定义了一个水桶互斥信号量),扣1分。
- 其他部分逻辑正确,同步关系完整。
得分:6分(满分7分)。
题目总分:6分
登录后发布评论
暂无评论,来抢沙发