文章

161

粉丝

0

获赞

0

访问

32.5k

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


评分及理由

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

学生定义了三个信号量:qiao(互斥使用铁锹,初值1)、water(同步浇水,初值0)、plant(同步放树苗,初值0),并定义了一个整型变量ken(初始为0)来记录树坑数量。与标准答案相比,缺少一个专门控制可挖坑数量(小于3)的信号量,而是用if(ken<3)判断,这在多进程同步中可能因竞争条件导致错误。此外,信号量命名与标准不同但不影响逻辑。扣1分,因为缺少一个关键同步信号量(sk),且用共享变量ken判断条件未加互斥保护,存在逻辑隐患。得1分。

(2)甲进程逻辑(满分约2分)

甲在ken<3时申请铁锹挖坑,挖完后ken++并释放铁锹,然后signal(plant)通知乙。但问题在于:① if(ken<3)没有用信号量或互斥保护,多个甲可能同时进入导致坑数超过3;② 没有像标准答案那样用wait(sk)来限制可挖坑数。逻辑有错误,扣1.5分。得0.5分。

(3)乙进程逻辑(满分约2分)

乙中出现了两个wait(qiao),这会导致死锁(申请两次互斥信号量,但只释放一次)。另外,乙先wait(qiao)再wait(plant),顺序可能导致效率问题但不一定错;乙执行后ken--并signal(water)通知丙,但缺少对可挖坑数的恢复信号(如标准中的signal(sk))。逻辑有严重错误(重复wait同一互斥量),扣2分。得0分。

(4)丙进程逻辑(满分约1分)

丙正确等待water信号后浇水,没有额外操作,与标准一致。得1分。

题目总分:1+0.5+0+1=2.5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发