文章

16

粉丝

42

获赞

14

访问

4.9k

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

1. 信号量定义及初值
信号量名称 作用 初值 
empty 同步信号量,记录可用于放树苗的空树坑数量(控制乙在甲挖好坑后操作)。 0 
filled 同步信号量,记录已放好树苗等待填土的树坑数量(控制乙放苗后甲、丙的操作)。 0 
shovel 互斥信号量,保证铁锹在“挖坑”和“填土”操作间的互斥使用(甲、乙共用)。 1 
bucket 互斥信号量,保证水桶在浇水操作中被丙独占使用。 1 
count 同步信号量,控制甲挖坑的数量不超过2(树坑数量<3时甲才能挖)。 2 

2. 三人操作的同步互斥描述(伪代码)

甲(挖坑):
while (true) {
    wait(count);       // 检查树坑数是否<3,是则占用1个“挖坑名额”
    wait(shovel);      // 申请铁锹,互斥使用
    挖树坑;            // 临界区操作:使用铁锹挖坑
    signal(shovel);    // 释放铁锹,允许乙使用
    signal(empty);     // 空树坑数量+1,通知乙可以放树苗
}
乙(放树苗+填土):
while (true) {
    wait(empty);       // 等待甲挖好空树坑(empty≥1)
    放树苗入坑;        // 无需工具,直接操作
    wait(shovel);      // 申请铁锹,准备填土
    填土;              ...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发