关闭

操作系统 PV理论

发表于:2011-10-26 09:37

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:lsh6688    来源:51Testing软件测试网采编

  PV原理是用来解决操作系统进程之间的同步和互斥的。

  同步:一补环境下的一组进程因相互制约而发送消息,进行互相合作互相等待。使各个进程按照一定的速度执行。

  互斥:一组进程因为共享一个公共资源,必需保证同一时刻只有一个进程在使用临界资源。

  举一个例子就是:

  互斥就是很多人过一个独木桥,同时只能有一个人使用这个桥

  同步就是两个人同时过一个桥,一个人骑车,一个人步行。但是两个人必需同时到达。这两个人同时出发,骑车的人的比较快,必需到一段等一下步行的人。保证他们相互制约着到达。

  信号量:

  代表并发进程可用资源数,小于零表示正在等待资源的进程数。

  P操作:

  将信号量减一,如何信号量(sem)为负数,则调用p操作的进程停止,直到另一个进程对同一信号量做v操作 。

  V操作:

  将信号量加一,如何信号量(sem)大于等于0则在与sem有关的队列中唤醒一个进程,让他执行。

  这里通过一个例子来讲述PV操作不容易理解的地方。

  这里的信号量Sn代表允许顾客人数

  S1代表收银员收费
  S2代表顾客付款

  a:P(Sn)  b1:V(S1) b2:P(S2) c1:P(S1) c2:V(S2)

  分析说明:

  我们不明白的一般都是c1 c2 b1 b2这几个代表什么

  其实可以这么来判断:

  有这几个原则:

  1、互斥的信号量的PV操作在一个进程中出现 这里的Sn是互斥的,所以P(Sn)

  V(Sn)都在顾客进程里面

  2、同步的信号量的PV操作在两个进程之间交替出现,比如S1,S2在顾客和收营员直接交替出现。

  3、个人观点:PV操作难点就是同步的进程直接的操作,这里同步的进程对同一信号量的操作,一定是先P,后V。P操作是使用资源,V操作是释放资源,进程一定是先使用资源,然后再释放资源。

  这里就像是骑车的和步行的人,一开始他们都要走,只是走的过程中会出现彼此等待的情况,这就是说开始为什么是P操作了,因为P操作是使用资源,他们要走,所以使用资源。

  4、P操作使信号量小于零以后,则停止当前进程,等另一个进程唤醒他,也就是给这个信号量加一。

  5、当一个V操作结束后,一般认为,这个进程接下去执行,执行下一个P操作,这里指的是P(S2)操作,然后停止,等待收银员的V操作唤醒他。

  这些是个人看法,欢迎大家指证。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号