PV操作

Posted 一路追寻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PV操作相关的知识,希望对你有一定的参考价值。

三态模型

进程通常分为就绪、运行和阻塞三种工作状态。

三种状态在某些条件下可以转换,具体转换关系如下:

 

进程三个状态之间的转换是通过PV操作和信号量来控制的,其中信号量起到了很重要的作用。

 

信号量

信号量是最早出现的用来解决进程同步与互斥问题的机制。

信号量(Saphore)由一个值和一个指针组成,指针指向等待该信号量的进程,信号量的值表示相应资源的使用情况。

信号量 S>=0 时,S 表示可用资源的数量,执行一次P操作意味着请求分配一个资源,因此 S 的值减 1 ;

信号量 S<0 时,表示已经没有可用资源,S 的绝对值表示当前等待该资源的进程数,请求者必须等待其他进程释放该类资源才能继续运行,而执行一个V操作意味着释放一个资源,因此 S 的值加 1 ;

若 S<0 ,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。

注意,信号量的值只能通过PV操作来改变。

 

两类问题

在说明这两类问题之前首先解释一些相关的概念:

PV操作:一种实现进程互斥与同步的有效方法,包含P操作与V操作。

P操作:使 S=S-1 ,若 S>=0 ,则该进程继续执行,否则排入等待队列。

V操作:使 S=S+1 ,若 S>0 ,唤醒等待队列中的一个进程。

临界资源:同一时刻只允许一个进程访问的资源,与上面所说的 S 有关联。

 

参考:

[1] https://blog.csdn.net/strikedragon/article/details/82791450

[2] https://blog.csdn.net/wuxy720/article/details/78936912

[3] https://baike.baidu.com/item/PV%E6%93%8D%E4%BD%9C/122128?fr=aladdin

以上是关于PV操作的主要内容,如果未能解决你的问题,请参考以下文章

关于PV操作和信号量临界值的一些理解

关于PV操作和信号量临界值的一些理解

信号量机制和PV操作

操作系统-进程PV操作——读者写者问题

进程间通信&死锁&信号量及PV原语

进程管理——PV操作