文章

7

粉丝

80

获赞

0

访问

67

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

为了描述三人植树过程的同步互斥关系,定义以下信号量并说明其作用及初值,再通过 wait() 和 signal() 操作实现流程:

 

信号量定义及初值

 

1.  mutex_shovel (互斥信号量)

- 作用:控制铁锹的互斥使用(甲挖坑、乙填土时需独占铁锹)。

- 初值: 1 (初始铁锹可用)。

2.  mutex_bucket (互斥信号量)

- 作用:控制水桶的互斥使用(丙浇水时需独占水桶)。

- 初值: 1 (初始水桶可用)。

3.  hole_available (同步信号量)

- 作用:表示可挖的树坑数量(最多3个),确保树坑数不超过3。

- 初值: 3 (初始可挖3个坑)。

4.  hole_ready (同步信号量)

- 作用:甲挖好坑后通知乙可以放树苗和填土。

- 初值: 0 (初始无坑可用)。

5.  plant_ready (同步信号量)

​乙(放树苗、填土)的流程:

 

c

while (1) {  

    wait(hole_ready); // 等待甲挖好坑  

    wait(mutex_shovel); // 申请铁锹  

    放树苗并填土;  

    signal(mutex_shovel); // 释放铁锹  

    signal(plant_ready); // 通知丙树苗已种好  

}  

&nbs...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发