PV操作是操作系统中一个很重要的内容,小编今天就来给大家就pv操作做一个详细的解析。
首先P代表操作,V代表释放
P操作使S=S-1,若S<0,进程暂停执行,放入信号量的等待队列。
V操作使S=S+1,若S<=0,唤醒等待队列中的一个进程。
注:此时提到了一个新的概念,信号量,
信号量是一种特殊的整型变量,根据控制对象的不同被赋予不同的值。
信号量分为两类:
(1)公共信号量。实现进程间的互斥,初值为1或资源的数目
(2)私用信号量。实现进程间的同步,初值为0或某个正整数。
进程同步和进程互斥:
进程同步:进程同步是指多个进程可以并发执行,每个进程以各自独立的,不可预知的速度向前推进,但是需要在某些点上协调相互合作进程间的工作。
如上图所示,进程1,2,3,4,每个进程都有自己的运行节奏,在之中就存在了进程同步,进程1和进程2就形成了同步,这并非要求进程1和进程2的运行节奏都保持一致,完全同步,而是因为要想进程3得到运行,必须要进程1和进程2合作才能进行,故而产生了进程同步。
进程互斥:系统中多个进程因争用临界资源而互斥执行。
【注:在多道程序系统环境中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用,称为临界资源(Critical Resource),例如打印机,共享变量和表格】