梗概
- 信号量是访问互斥的变量,只能同时由一个进程进行访问
实例
信号量实现互斥:(两个进程的互斥)
int mutex=1;
进程A
非临界区 down(&mutex) 临界区 up(&mutex)
进程B
非临界区 down(&mutex) 临界区 up(&mutex)
mutex值的变化:
1: 无进程进入临界区 0: 一个进程进入临界区 -1: 一个进程进入临界区,一个进程等待 进入临界区(阻塞) -2: 一个进程进入临界区,两个进程等待 进入临界区(阻塞) -(N-1): 一个进程进入临界区,N-1个进程等 待进入临界区(阻塞)