在操作系统中,P、V操作是进程管理中的难点。这是1968年荷兰人Dijkstra给出的一种解决并发进程间互斥和同步关系的通用方法。
P(S):
① 将信号量S的值减1,即S=S-1;
② 如果S≥0,则该进程继续执行;否则该进程状态置为阻塞状态,进程PCB排入信号量PCB队列末尾
1. P、V操作的意义
定义了信号量及其上的P操作和V操作,来实现并发进程间的同步和互斥,甚至可以用来管理资源的分配。P、V操作因交换的信息量少,属于进程的低级通信。2. 什么是信号量?
信号量(semaphore)是由一个值和一个指针构成的数据结构。值为整型变量,表示信息量的值;指针指向进程控制块(PCB)队列的队头,表示等待该信号量的下一个进程。如下图所示:

信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。注意,信号量的初值不能为负,且其值只能由P、V操作来改变。
3. P、V操作的含义
P、V操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量S进行操作,具体定义如下:P(S):
① 将信号量S的值减1,即S=S-1;
② 如果S≥0,则该进程继续执行;否则该进程状态置为阻塞状态,进程PCB排入信号量PCB队列末尾

本文介绍了进程同步中的P、V操作及其意义,详细阐述了信号量的概念,并通过实例展示了如何利用信号量和P、V操作实现进程的互斥与同步。具体应用包括单个生产者与消费者、多生产者多消费者模型,涉及缓冲区管理与互斥访问控制。
最低0.47元/天 解锁文章
1677





