文章
7
粉丝
0
获赞
0
访问
141
sem shovel=1; //铲子互斥
sem lock_hole;//树坑变量锁
sem lock_watered_hole;//未浇水变量锁
int critical_hole_count=0;//树坑数量
int un_wartered_hole=0;//记录已填土,没浇水的洞
void a(){
while(true){
wait(lock_hole);
if(critical_hole_count < 3){
wait(shovel);
while(++critical_hole_count<3);
signal(shovel);
signal(lock_hole);
}else{
signal(lock_hole);
}
}}
void b(){
while(true){
wait(lock_hole);
if(critical_hole_count >0){
wait(lock_watered_hole);
while(critical_hole_count > 0){
//plant
wait(shovel);
//fill
signal(shovel);
critical_hole_count--;
un_watered_hole++;
}
signal(lock_watered_hole);
signal(lock_hole);
}else{
signal(lock_hole)
}
}
}
void c(){
wait(lock_watered_hole){
if(un_watered_hole>0){
while(--un_watered_hole>0);//water
}
signal(lock_watered_hole)
}
}
评分及理由
(1)得分及理由(满分7分)
得分:4分
理由:
登录后发布评论
暂无评论,来抢沙发