文章

397

粉丝

40

获赞

2

访问

88.2k

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

coBegin{
semaphore mutex_k = 3;//还剩可以挖几个坑
semaphore mutex_t = 1;//铁锹
semaphore a_done = 0;//有多少个坑需要填土
semaphore b_done = 0;//有多少颗树需要浇水 


p_1(){
while(1){
wait(mutex_k);
wait(mutex_t);
挖坑;
signal(mutex_t)
signal(a_done);
}
}


p_2(){
while(1){
wait(a_done);
wait(mutex_t);
放入树苗;
填土;
signal(mutex_t);
signal(mutex_k)
signal(b_done);

}
}

p_3(){
while(1){
wait(b_done);
浇水;
}

}


}CoEnd

 


评分及理由

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

得分:2分

理由:学生定义了四个信号量:mutex_k(初值3,表示可挖坑数量)、mutex_t(初值1,表示铁锹互斥)、a_done(初值0,表示需要填土的坑数)、b_done(初值0,表示需要浇水的树数)。这些信号量的作用和初值与标准答案一致(mutex_k对应sk,mutex_t对应mutexT,a_done对应empty,b_done对应water)。定义正确且完整。

(2)甲(p_1)的同步互斥操作(满分2分)

得分:2分

理由:甲先wait(mutex_k)检查可挖坑数,再wait(mutex_t)获取铁锹,挖坑后释放铁锹并signal(a_done)通知乙。逻辑与标准答案完全一致,无错误。

(3)乙(p_2)的同步互斥操作(满分2分)

得分:2分

理由:乙先wait(a_done)等待有坑需填土,再wait(mutex_t)获取铁锹,执行放树苗和填土后释放铁锹,然后signal(mutex_k)增加可挖坑数(对应标准答案的signal(sk)),并signal(b_done)通知丙浇水。逻辑正确,与标准答案等效。

(4)丙(p_3)的同步互斥操作(满分1分)

得分:1分

理由:丙等待b_done信号后浇水,无需互斥操作(...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发