文章

14

粉丝

0

获赞

0

访问

1.3k

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

semaphoer mutex=1;//铁锹的使用
semaphore holes=3; //可挖树坑
samaphore empty=0;//可用树坑
semaphore water=0;//需要浇水的树苗
甲() {
    while (1) {
        p(holes);
        p(mutex);
        挖坑;
        v(mutex);
        v(empty);
    }
}
乙() {
    while (1) {
        p(empty);
        p(mutex);
        入坑并填土;
        v(mutex);
        v(holes);
        v(water);
    }
}
丙() {
    while (1) {
        p(water);
        浇水;
    }
}

 

 


评分及理由

(1)信号量定义部分(满分2分)

得分:2分

理由:学生定义了4个信号量,与标准答案完全一致。虽然信号量名称略有不同(mutexT变为mutex,sk变为holes),但作用和初值都正确,符合题目要求。

(2)甲进程实现(满分2分)

得分:2分

理由:甲进程的逻辑完全正确。先wait(holes)检查可挖树坑数量,再wait(mutex)获取铁锹使用权,挖坑后释放铁锹,signal(empty)通知乙有可用树坑。使用p/v操作与wait/signal等价。

(3)乙进程实现(满分2分)

得分:2分

理由:乙进程的逻辑完全正确。先wait(empty)等待可用树坑,再wait(mutex)获取铁锹使用权,填土后释放铁锹,signal(holes)增加可挖树坑数量,signal(water)通知丙浇水。

(4)丙进程实现(满分1分)

得分:1分

理由:丙进程的逻辑完全正确。只需wait(water)等待需要浇水的树苗,然后浇水,不需要使用铁锹,因此不需要获取mutex信号量。

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

总体评价:学生的作答与标准答案在逻辑上完全一致,只是信号量命名略有不同,但功能和作用完全相同。代码逻辑正确,同步互斥关系处...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发