什么是PV操作?PV操作的简单理解

729 阅读1分钟

最近在重新学习计算机基础知识,这两天学到了PV操作,看了一些文章才理解其含义,遂记录下来,如有错误欢迎指正。

什么是PV操作?

PV操作主要就是P操作、V操作和信号量。

信号量

理解PV操作先得理解信号量不同值时的含义,信号量的值表示相应资源的使用情况。

  • S > 0时,表示可用的临界资源数;
  • S < 0时,表示正在等待临界资源被阻塞的进程数;
  • S = 0时,表示临界资源正好用完。

P操作

P操作一般写为P(S)P(S)的含义其实就是申请(占用)资源

  1. S-1; (申请一个资源)
  2. 若 S-1 后结果 >=0,则进程继续执行; (还有资源,继续执行)
  3. 若 S-1 后结果 <0,则该进程被阻塞后放入等待该临界资源的等待队列中。 (没有资源了,阻塞放入等待队列)

V操作

V操作一般写为V(S)V(S)的含义其实就是释放资源

  1. S+1; (释放一个资源)
  2. 若 S+1 后结果 >0,则进程继续执行;(没有正在等待资源的进程,继续执行)
  3. 若 S+1 后结果 <=0,则从该信号的等待队列中释放一个等待进程。 (释放一个资源后 S<=0 表示还有进程在等待该资源,于是释放一个等待进程)
    注意:等于0与前面说的信号量等于0时的含义不一样,因为此处是+1后=0,表示S本来是 <0。