进程同步指的是进程之间存在一定的时序关系。比如A进程可能有B进程运行所需资源(该资源为A,B临界区),那么我们就要求A,B进程同歩(必须A先全部运行完,再开始运行B)。但是中断机制可能打破这一同步(A未运行完就因中断退出临界区,B进入临界区),同时造成进程互斥(在临界区内的B因为在临界区外的A而阻塞)。因此我们必须找到一种方法,能保证发生A,B同步。
信号同步机制(P,V)
s为信号量,进程想进临界区,要先进行P操作;想出临界区,要先进行V操作
PV机制实例
图片发自简书App
记得,P()为信号量--,信号量<0时进程被阻塞。V()为信号量++,信号量<=0时进程被唤醒。