进程的同步与互斥

PV操作
1.1 P 操作定义
S:=S-1,若 S>=0,则执行P操作的进程继续执行;若 S<0,则置该进程为阻塞状态(因为无可用资源),并将其插入 阻塞队列Q
执行P操作的进程将进入等待队列
1.2.V 操作定义
S:=S+1,若 S>0,则执行V操作的进程继续执行;若 S≤0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续。
执行V操作的进程将从阻塞队列中唤醒一个进程
临界资源:多个进程需要共享使用的资源,如打印机。
临界区:各个进程访问临界资源的那一段代码。
信号量:在 PV 操作中的一种变量。
PV 操作存在的意义,就是实现不同进程之间的同步和互斥

举例说明使用 PV 操作的进程
生产者的进程 A:生产一个产品 ⇒ 执行 P(1:信号量大于0继续操作) 操作 ⇒ 将产品放到缓冲区 ⇒ 执行 V(0:阻塞状态唤醒一个进程,并将其插入就绪队列) 操作。
消费者的进程 B:消费一个产品 ⇒ 执行 P(0:该进程为阻塞状态因为无可用资源,并将其插入阻塞队列) 操作 ⇒从缓冲区中取出产品 ⇒ 执行 V(1:进程继续执行) 操作。