信号量机制和PV操作

Posted

tags:

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

参考技术A 进程管理中,对临界资源需要互斥访问。其中对实现对临界区互斥访问有软件和硬件方法。

是一个变量,一个信号量对应一种资源,只能被两种PV两种原语操作,以此实现进程互斥,进程同步。(PV源于荷兰语proberen和verhogen分别是尝试试用和增加的意思)
补充:原语是一种特殊的程序段,不可被中断。原语是由关中断/开中断指令来实现的。
wait() //进入区
访问临界资源 //临界区
signal() //退出区
然后对于整型信号量种的pv操作原语wait和signal分别实现逻辑是:

对于记录型信号量:

一个信号量对应一种资源
信号量的值=这种资源的剩余数量(若为负,说明此时有进程在等待这种资源)

一前一后的操作
同步量信号S,初始为0
在前操作之后执行V
在后操作之后执行P 口诀:前v后p

如上pv操作

本质上是多级同步问题

缓冲区的这种临界资源只能互斥访问
p尝试消耗
v 增加

所以实现互斥的p操作一定要在实现同步的P操作之后。
v操作不会导致进程阻塞,因此两个v操作顺序可以交换。

一个生产者 生产多类产品

缓冲区不会消耗掉

封装思想

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

(王道408考研操作系统)第二章进程管理-第三节4:信号量机制(整型记录型信号量和PV操作)

信号量和PV操作

操作系统王道考研 p20-21 信号量机制用信号量机制实现进程互斥同步前驱关系(内含PV操作,十分重要)

PV操作

linux下的信号量PV操作进阶之路

理解同步的PV操作