文章

359

粉丝

0

获赞

2

访问

33.4k

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

Semaphore  mutex=1//甲乙对铁锹的互斥访问

pits=3//只有树坑小于3的时候甲才用挖坑

empty=0//满足种树的树坑数量

water=0//对树进行浇水

甲(){

 while(1)

p(mutex)

p(pits)

挖树坑

v(mutex)

v(empty)

乙(){

p(empty)

放树苗

v(fits)

p(mutex)

填土

v(mutex)

v(water)

丙(){

p(water)

浇水

 


评分及理由

(1)信号量定义得分及理由(满分2分)

得分:2分

理由:学生定义了4个信号量,与标准答案一致。mutex用于铁锹互斥访问,pits对应可挖树坑数量,empty对应可使用的树坑数量,water对应需要浇水的树苗。信号量初值设置正确,命名合理。

(2)甲进程代码得分及理由(满分2分)

得分:1分

理由:学生代码中甲进程先获取铁锹互斥锁再获取树坑信号量,这个顺序与标准答案相反。正确的顺序应该是先检查是否有可挖树坑(pits),再获取铁锹资源(mutex)。虽然这个顺序问题在逻辑上可能不会导致死锁,但不符合资源获取的常规顺序,存在逻辑瑕疵。

(3)乙进程代码得分及理由(满分2分)

得分:1分

理由:乙进程代码存在两个问题:第一,填土操作应该在获取铁锹互斥锁之后进行,但学生将p(mutex)放在了填土操作之前,而放树苗操作没有使用铁锹却放在了p(mutex)之前;第二,信号量名称写错,v(fits)应该是v(pits)。此外,填土操作应该与放树苗一起在铁锹保护下完成。

(4)丙进程代码得分及理由(满分1分)

得分:1分

理由:丙进程代码完全正确,等待浇水信号后执行浇水操作。

题目总分:2+1+1+1=5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发