文章

14

粉丝

0

获赞

0

访问

1.0k

头像
【250518年】408计算机统考真题模拟考试 - 第46题答案笔记
操作系统
发布于2025年5月18日 11:30
阅读数 67

计算机考研408统考历年真题及答案解析

解:

Semaphore mutex1 = 1;      //水井互斥访问
Semaphore mutex2 = 1;       //水缸互斥访问
Semaphore empty = 10;          //水缸剩余容量
Semaphore full = 0;            //水缸当前水量
Semaphore bucket = 3;         //可用水桶数量
void young() { //小和尚
    while(true){
        P(empty);            //检查水缸是否有空位
        P(bucket);          //申请一个水桶
        P(mutex1);       //申请访问水井
        打水;
        V(mutex1);       //释放水井访问
        P(mutex2);        //申请访问水缸
        将水倒入水缸;
        V(mutex2);        //释放水缸访问
        V(full);             //水缸水量+1
        V(bucket);          //归还水桶
    }
}
void old() { //老和尚
    while(true){
        P(full);             //检查水缸是否有水
        P(bucket);          //申请水桶
        P(mutex2);        //申请访问水缸
        从水缸取水;
        V(mutex2);        //释放水缸访问权
        V(empty);            //水缸空位+1
        喝水;
        V(bucket);          //归还水桶
    }
}

评分及理由

(1)得分及理由(满分8分)

学生答案与标准答案基本一致,正确使用了信号量机制解决了水井、水缸的互斥访问问题,以及水缸容量和水桶数量的同步问题。具体分析如下:

  • 正确使用了mutex1和mutex2分别实...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发