文章

246

粉丝

40

获赞

2

访问

12.6k

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

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对应sk(可挖坑数量,初值3),mutex_t对应mutexT(铁锹互斥,初值1),a_done对应empty(坑可用数量,初值0),b_done对应water(需要浇水的树苗,初值0)。信号量作用清晰,初值正确。

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

得分:2分

理由:甲先等待mutex_k(可挖坑数量),再等待mutex_t(铁锹互斥),挖坑后释放铁锹,再signal(a_done)(表示坑可用)。顺序正确,与标准答案一致。

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

得分:2分

理由:乙先等待a_done(坑可用),再等待mutex_t(铁锹互斥),操作后释放铁锹,然后signal(mutex_k)(增加可挖坑数量)和signal(b_done)(通知浇水)。顺序正确,与标准答案一致。

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

得分:1分

理由:丙等待b_done(需要浇水的树苗)后浇水,操作正确,与标准答案一致。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发