文章

7

粉丝

0

获赞

0

访问

262

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

计算机考研408统考历年真题及答案解析
semaphore vat_full = 0,  vat_empty = 10, mutex_w = 1, mutex_v = 1, bucket_empty = 3, bucket_full = 0;     // w表示水井,v表示水缸(代码区如果能用tab分隔符就好多了)
child:
while (1) {
    P(bucket_empty);    // 先取空桶
    P(mutex_w);         // 来到井边,看看有没有其他人在取水
    开始盛水;
    V(bucket_full);     // 空桶盛满水,得到一个水桶
    V(mutex_w);         // 离开井边,别占位置
    P(vat_empty);       // 看看水缸是不是满的
    P(mutex_v);         // 不是满的,可以往里面倒水了
    P(bucket_full);     // 倒水,消耗一个水桶
    开始倒水;
    V(bucket_empty);    // 得到了一个空桶
    V(vat_full);        // 水缸里的水变多了
    V(mutex_v);         // 倒完了,赶紧走
}
laodeng:
while (1) {
    P(bucket_empty);    // 渴了,找空桶
    P(vat_full);        // 有水吗?
    P(mutex_v);         // 水缸边没人
    开始盛水;
    V(bucket_full);     // 得到一水桶
    V(vat_empty);       // 缸里的水少了
    V(mutex_v);         // 离开水缸边
    P(bucket_full);     // 喝水前的神秘仪式
    好水喝够,饮饮饮饮;
    V(bucket_empty);    // 喝完了,得到一个空桶
}

 


评分及理由

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

得分:1分

理由:信号量定义正确,包括互斥信号量和同步信号量,与标准答案一致。

(2)小和尚进程(满分3.5分)

...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发