多语言展示
当前在线:1565今日阅读:60今日分享:41

PV操作P和V缩写词的来源

研究或学习过操作系统原理的同仁对“PV操作”这个词不会陌生,但是恐怕很多同仁不理解为什么叫“P操作、V操作”。在此给出一个比较合理的解释。
PV的原型

P和V是来源于两个荷兰语词汇,P—— passeren,中文译为"通过";V—— vrijgeven,中文译为"释放"。

PV的由来
1

谈到PV操作绕不开一位著名的计算机大神—— Edsgar Wybe Dijkstra,中文名"埃德斯加·狄克斯特拉",荷兰人,毕业于莱顿大学、剑桥大学。

2

为了在单处理器的情况下确定进程能否占有处理器,狄克斯特拉将每个进程分为“就绪”、“运行”和“阻塞”三个状态。由于在任一时刻最多只有一个进程可以使用处理器,占用着处理器的进程称为“运行”进程。当某进程已具备了使用处理器的条 件,而当前又没有处理器供其使用,则使该进程处于“就绪”状态。当运行进程由于某种原因无法继续运行下去时,就停止其占用处理器,使之进入“阻塞”状态,待造成其退出运行的条件解除,再进入“就绪”状态。而对系统中所有同时运行的进程之间所存在的相互制约的同步和互斥两个关系,狄克斯特拉巧妙地利用火车运行控制系统中的“信号灯”(semaphore)概念加以解决。

3

而对信号量的操作正是P、V操作。X和Y是分别将数据送入缓冲B和从缓冲B读出数据的两个进程,为了让两个进程协调工作,狄克斯特拉设计了一种同步机制叫“PV操作”,P操作和V操作是执行时不被打断的两个操作系统原语(在执行这两个语句时不允许系统发生中断,从而保证语句的原子性执行)。P和V操作都是针对信号量(此处假设信号量S=0)进行的。X 进程执行P(S)时信号量S的值减1,若结果不为负,则X执行完毕,否则X进程暂停以等待Y执行V(S)释放。Y执行V操作V(S)时,S的值加1,若结果等于0,则释放一个因执行P(S)而等待的进程。

推荐信息