操作系统进程同步例题(三)汽车过桥2

时间:2025-03-14 14:47:41

PV操作题目分析步骤:

  1. 关系分析。找出题目中描述的各个进程,分析它们之间的同步、互斥关系。
  2. 整理思路。根据各进程的操作流程确定P、V操作的大致顺序。
  3. 设置信号量。并根据题目条件确定信号量初值。(互斥信号量初值一般为1,同步信号量的初始值要看对应资源的初始值是多少)

1、分析

允许单向行驶的十字路口,有由东向西和由南向北的车辆,每次只允许一辆车通过,分为两个进程,为互斥关系,需要互斥信号量mutex

2、伪代码

seamphore mutex = 1; //十字路口的互斥信号量
//从东到西
EastToWest() {
    while(1) {
        P(mutex); //申请通过
        由东向西通过;
        V(mutex); //释放
    }
}
//从南到北
SouthToNorth() {
    while(1) {
        P(mutex); //申请通过
        由南向b通过;
        V(mutex); //释放
    }
}