`
yuanlanjun
  • 浏览: 1181217 次
文章分类
社区版块
存档分类
最新评论

精解PV操作之信号量

 
阅读更多

今天,我们来学习一下PV操作的信号量

我们知道任何事物的诞生都有它的生活原型,PV操作也不例外,那么PV操作来自哪里呢?正是来自于我们日常的交通工具——火车!

我们都知道去年7.23动车事故让一个名词火了一把,那就是闭塞系统。所谓闭塞系统,本文简单说一下它的功能,它就是保证在一段时间内,一条铁轨的某一段距离内,只能有一辆火车在开动。而为了保证闭塞系统的实现,这里面就用到了信号灯,这个信号灯就是通过火车倾轧铁轨的时候来开启和关闭的。而操作系统中PV所用到的“信号量”正是源于此。好了知道了信号量的来源,我们再来深化一下这个概念,信号量就是标识和限定PV操作中资源状态的一个变量。

我们知道PV操作一般涉及两种信号量,即同步信号量和互斥信号量

要了解“同步信号量”的概念,我们可以通过一个简单的实例来说明,例如:有一队士兵在徒步行军的过程中,每个士兵之间一般会有间距,而这个间距的范围是多少呢?我们可以想象一下,这个间距必须是合理的,不能太大,也不能太小,否则就会出现碰撞和掉队。那么我们如何来控制这个间距呢?这时我们就可以用两个变量来标识,分别是最大间距和最小间距。也就是说我们用两个变量来保证间距,而这个时候的变量就是所谓的“同步信号量”,因为是同时起作用的。

了解“同步信号量”之后我们再来讲一下“互斥信号量”,同样,我们也举个例子:比如还是那一队士兵,在行进的过程中需要经过一个桥,但是这个桥的承重只能保证一个士兵通过,两个人以上就会导致桥的塌陷,这个时候我们也可以用一个变量来标识正在通过的士兵,很显然这个正在通过的士兵是一个而不是一个集合,那么士兵之间在过桥的时间和顺序上就是互斥的,而这个标识正在通过的士兵就就是所谓的“互斥信号量”。

理解了信号量的概念之后相信,对于PV操作,读者一定会有一个新的认识,那就是PV操作不过是一个合理的时候来更改信号量而已。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics