PV操作原理概述
PV原语的含义
P操作和V操作是不可终端的程序段,成为原语,PV原语及信号量的概念都是由荷兰科学家E.W.Dijkstra提出的。信号量sem是一个整数。Sem大于等于零时代表可供并发进程使用的资源实体数,但sem小于零时则表示正在等待使用临街区的进程数。
P原语操作的动作是:
(1) sem减 1 ;
(2) 若sem减 1 后仍大于等于零,则进程继续执行;
(3) 若sem减 1 后小于零,则进程被阻塞后进入与该信号相对应的队列中,然后转进程调度。
V原语操作的动作是:
(1) sem加 1 ;
(2) 若相加结果大于零,则进程继续执行;
(3) 若相加结果小于等于零,则从该信号的等待队列中唤醒一个等待进程,然后再返回原进程继续执行或转进程调度。
PV操作对于每一个进程来说,都只能进行一次,而且必须成对使用,在PV原语执行期间不允许有中断的发生。