作业帮 > 综合 > 作业

用信号量工具解题ab间有车,同方向的车可进ab段,另一方向的车在ab外等;ab间无车,到达a或b的车可进ab段,但不能同

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/23 23:23:34
用信号量工具解题
ab间有车,同方向的车可进ab段,另一方向的车在ab外等;ab间无车,到达a或b的车可进ab段,但不能同时进;ab段行驶的车出ab段且暂无车进ab段,让另一方向等待的车进ab段.请用信号量工具,对ab段实现正确的管理
sem_init(mutex,1)
int num_atob=num_btoa=0;
atob()
{
begin:
P(mutex);
if(num_btoa==0){
num_atob++;
V(mutex);
}
else{
V(mutex);
goto begin;
}
run();
P(mutex);
num_atob--;
V(mutex);
}
btoa()
{
begin:
P(mutex);
if(num_atob==0){
num_btoa++;
V(mutex);
}
else{
V(mutex);
goto begin;
}
run();
P(mutex);
num_btoa--;
V(mutex);
}