文章

397

粉丝

40

获赞

2

访问

88.2k

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

semaphore mutex_t = 1;//铁锹
semaphore empty = 3;//还可以挖多少个坑
semaphore a_done = 0;//有多少个坑需要放树苗
semaphore b_done = 0;//需要浇水的坑数量

CoBegin{
P_1(){
while(1){
p(empty);
p(mutex_t);
挖坑;
v(mutex_t);
v(a_done);
}
}

P_2(){
while(1){
p(a_done);
p(mutex_t);
放树苗;
填土;
v(mutex_t);
v(b_done);
v(empty);
}
}

P_3(){
while(1){
p(b_done);
浇水;
}
}

}Coend

评分及理由

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

得分:2分。理由:学生定义了四个信号量,其中mutex_t用于铁锹互斥(初值1),empty用于控制可挖坑数量(初值3),a_done表示需要放树苗的坑数量(初值0),b_done表示需要浇水的坑数量(初值0)。这些信号量的定义和初值设置与标准答案等效(标准答案中sk相当于empty,empty相当于a_done,water相当于b_done),且覆盖了所有同步互斥需求,因此得满分。

(2)甲(P_1)的同步操作(满分2分)

得分:2分。理由:甲先等待empty(即可挖坑数量),然后获取铁锹互斥锁,挖坑后释放互斥锁,并通知a_done(表示坑已挖好)。该逻辑与标准答案一致,且正确实现了同步互斥关系。

(3)乙(P_2)的同步操作(满分2分)

得分:2分。理由:乙先等待a_done(表示有坑可操作),然后获取铁锹互斥锁,执行放树苗和填土操作后释放互斥锁,并通知b_done(表示需要浇水)和empty(增加可挖坑数量)。该逻辑与标准答案等效(标准答案中乙还通知了sk,但sk与empty作用相同),且正确实现了同步互斥关系。

(4)丙(P_3)的同步操作(满分1分)

得分:1分。理由:丙等待b_done(表示有树苗需要浇水),然后执行浇水操作。该逻辑与标准答案一致,且无需互斥操作(水桶未定义互斥,但题目中水桶只有一个,但学生未处理水桶互斥,但标准答案也未处理,因此不扣分)。

题目总分:...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发