文章
6
粉丝
0
获赞
0
访问
300
semaphore mutex1 = 1,mutex2 = 1;//分别对水井,水缸互斥使用.
semaphore s = 3;//水桶为3个
semaphore full = 0;//水缸已有几桶水
semaphore empty = 10;//水缸还可以倒几桶水
Children(){//小和尚进程
while(1){
P(empty);
P(s);//拿桶
P(mutex1);
去水井里取打水;
V(mutex1);
P(mutex2);
往水缸倒水;
V(mutex2);
V(full);
V(s);
}
}
Elders(){//老和尚进程
口渴了;
P(s);//拿桶
P(full);
P(mutex2);
从水缸里去水;
V(mutex2);
V(empty);
V(s);
}
}
评分及理由
(1)得分及理由(满分8分)
1. 信号量定义正确(mutex1、mutex2、s、full、empty),命名清晰,初始值正确。得1分。
2. 小和尚进程逻辑基本正确:
3. 老和尚进程逻辑基本正确:
扣分点:
题目总分:7分
登录后发布评论
暂无评论,来抢沙发