文章

7

粉丝

0

获赞

0

访问

141

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

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分

理由:

  • 学生使用了信号量来控制铁锹的互斥访问(shovel=1),这是正确的,符合标准答案中的mutex...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发