文章

7

粉丝

0

获赞

0

访问

264

头像
2025 年 5 月第 1 次 408 月考试卷 - 第46题回答
操作系统
发布于2025年6月23日 08:28
阅读数 49

semaphore empty_Gang = 10, full_Gang = 0, mutex_Jing = 1, num_Bucket = 3, mutex_Gang = 1; // 分别表示水缸的剩余可装水量,缸中现有水量,井的互斥锁,三个桶的互斥与同步信号量,缸的互斥量

Process Little(){    //小和尚

while(1) {

 P(empty_Gang); P(num_bucket); // 先对缸中是否可以入水以及是否有空桶进行确认,都可以则进行

P(mutex_Jing);    //对井进行占用,互斥访问

取水;

V(mutes_Jing);   //释放对井的互斥访问

P(mutex_Gang);    //对缸的互斥访问

倒水;

V(full_Gang);V(mutex_Gang); V(num_bucket);

}

}

 

Process Old(){    //老和尚

P(full_Gang); P(num_bucket);    //想喝水先进行等待占用,均有资源后再进行

P(mutex_Gang);    //得到缸的使用权

喝水;

V(empty_Gang); V(num_bucket); P(mutex_Gang);//释放

 

}


评分及理由

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

1. 信号量定义正确(1分):学生正确定义了所有必要的信号量,包括empty_Gang、full_Gang、mutex_Jing、num_Bucket和mutex_Gang,与标准答案一致。

2. 小和尚进程逻辑基本正确(3分):学生的小和尚进程逻辑基本正确,包括对empty_Gang和num_bucket的P操作,以及对mutex_Jing和mutex_Gang的P/V操作。但存在以下问题:

  • 信号量名称拼写错误:mutes_Jing应为mutex_Jing(扣0.5分)。
  • V(full_Gang)和V(mutex_Gang)...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发