软考学习--PV操作一--概念解析
2013-10-17 20:19
253 查看
写博客的原因
PV操作,尽管做了N道题,也听过人家讲课,但是依旧没有懂.一是跟我没有静下心来慢慢分析有关,二是其实自己也不想学这个,反正软考考的也是上午题,最多1,2分.一点都不会,我可以靠蒙,正确率也还好;运气不好,最多也就扣掉1,2分,并且这个还不是年年都考.所以,作为考试,我觉得我不想学它.但是作为攻克一个知识点,我还是蛮想试试的.
由于我写博客的时候会比较认真,以前看不进去的东西,写博客的时候都会认真地看,所以我觉得把PV操作写成一篇博客,要是写完了这篇博客,我还弄不懂PV操作,应该不会吧……要相信自己的人品
--2013/10/10 14:18
PV操作的相关概念
PV操作是操作系统中进程之间通信用到的两种操作,PV操作中的P是荷兰语的Passeren(通过),相当于英文的pass(通过),V是荷兰语的Verhoog(提高,增多),相当于英文中的increment(递增,增大).(翻译出自Google翻译) .也就是P是通过,V是增加.我理解的,他们的通过和增加是针对资源来说的,V是增加资源,P是减少资源.
还有一个信号量的概念,摘自百度百科:
信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。所以图中蓝色的矩形和红色的指针加起来是信号量的数据结构.
对于信号量有值和指针,那信号量的值是什么?
百科理解:
信号量的值与相应资源的使用情况有关。
当它的值大于0时,表示当前可用资源的数量;
当它的值小于0时,其绝对值表示等待使用该资源的进程个数
我的理解:
也就是说,信号量的值>=0,值是多少,表示有多少资源可用.如信号量的值为2,则有2个资源可用.
而信号量的值<0,表示没有任何资源了,而值的绝对值表示有多少个在等待该资源的进程.如信号量为-2,则表示没有资源都被占完了,还有2个进程在等待使用该资源.
下面是PV操作的文字解释,我觉得解释的很好.
百科理解:
一般来说,信号量S>=0时,S表示可用资源的数量。
执行一次P操作意味着请求分配一个单位资源,因此S的值减1;
P(S) S=S-1
当S<0时,表示已经没有可用资源,请求者必须等待别的进程释放该类资源,它才能运行下去。
而执行一个V操作意味着释放一个单位资源,因此S的值加1;
V(S) S=S+1
若S<=0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。
我的理解:
也就是P(S)表示,进程请求分配一个资源给它,所以S减去1.
如果S原来等于2,进程请求分配1个,那么给他1个,还有1个资源.2减1,S=1,1>0,表示有资源,那么该进程就可以分配到一个资源,而且s=1资源还剩1个;
如果S原来等于0,已经只有0个资源,如果进程再请求一个资源,没有资源分配,它只能等着.所以0,P(S)一下,变成-1,-1<0,那么没有资源,该进程必须等着,并且S=-1,表示有一个进程在等着.(终于明白为什么要先P(S),S=S-1一下,再去判断了,有资源就少掉一个资源,没有资源还可以表示等着的进程数)
V(S)表示,一个进程用完了,释放了资源,所以S+1.若S为2,那么释放一个资源,就有3个资源可用了;如果S=-2,表示有2进程在等着,V操作释放了资源,那么等着的其中一个进程就可以获得资源执行了.V(S),S加1变成-1,-1<0,有进程在等着呢,就唤醒一个等待的进程.
总的概念理解:
P就是请求资源,V就是释放资源,信号量的值,大于等于0,表示资源的个数;<0,表示等着资源的进程数.P请求,发现没资源就等着;V释放,发现有进程在等着,就去唤醒一个进程,该干活了.
说完概念,说一下应用,因为参考的资料是这么做的,所以我也这么做.
PV操作,尽管做了N道题,也听过人家讲课,但是依旧没有懂.一是跟我没有静下心来慢慢分析有关,二是其实自己也不想学这个,反正软考考的也是上午题,最多1,2分.一点都不会,我可以靠蒙,正确率也还好;运气不好,最多也就扣掉1,2分,并且这个还不是年年都考.所以,作为考试,我觉得我不想学它.但是作为攻克一个知识点,我还是蛮想试试的.
由于我写博客的时候会比较认真,以前看不进去的东西,写博客的时候都会认真地看,所以我觉得把PV操作写成一篇博客,要是写完了这篇博客,我还弄不懂PV操作,应该不会吧……要相信自己的人品
--2013/10/10 14:18
PV操作的相关概念
PV操作是操作系统中进程之间通信用到的两种操作,PV操作中的P是荷兰语的Passeren(通过),相当于英文的pass(通过),V是荷兰语的Verhoog(提高,增多),相当于英文中的increment(递增,增大).(翻译出自Google翻译) .也就是P是通过,V是增加.我理解的,他们的通过和增加是针对资源来说的,V是增加资源,P是减少资源.
还有一个信号量的概念,摘自百度百科:
信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。所以图中蓝色的矩形和红色的指针加起来是信号量的数据结构.
对于信号量有值和指针,那信号量的值是什么?
百科理解:
信号量的值与相应资源的使用情况有关。
当它的值大于0时,表示当前可用资源的数量;
当它的值小于0时,其绝对值表示等待使用该资源的进程个数
我的理解:
也就是说,信号量的值>=0,值是多少,表示有多少资源可用.如信号量的值为2,则有2个资源可用.
而信号量的值<0,表示没有任何资源了,而值的绝对值表示有多少个在等待该资源的进程.如信号量为-2,则表示没有资源都被占完了,还有2个进程在等待使用该资源.
下面是PV操作的文字解释,我觉得解释的很好.
百科理解:
一般来说,信号量S>=0时,S表示可用资源的数量。
执行一次P操作意味着请求分配一个单位资源,因此S的值减1;
P(S) S=S-1
当S<0时,表示已经没有可用资源,请求者必须等待别的进程释放该类资源,它才能运行下去。
而执行一个V操作意味着释放一个单位资源,因此S的值加1;
V(S) S=S+1
若S<=0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。
我的理解:
也就是P(S)表示,进程请求分配一个资源给它,所以S减去1.
如果S原来等于2,进程请求分配1个,那么给他1个,还有1个资源.2减1,S=1,1>0,表示有资源,那么该进程就可以分配到一个资源,而且s=1资源还剩1个;
如果S原来等于0,已经只有0个资源,如果进程再请求一个资源,没有资源分配,它只能等着.所以0,P(S)一下,变成-1,-1<0,那么没有资源,该进程必须等着,并且S=-1,表示有一个进程在等着.(终于明白为什么要先P(S),S=S-1一下,再去判断了,有资源就少掉一个资源,没有资源还可以表示等着的进程数)
V(S)表示,一个进程用完了,释放了资源,所以S+1.若S为2,那么释放一个资源,就有3个资源可用了;如果S=-2,表示有2进程在等着,V操作释放了资源,那么等着的其中一个进程就可以获得资源执行了.V(S),S加1变成-1,-1<0,有进程在等着呢,就唤醒一个等待的进程.
总的概念理解:
P就是请求资源,V就是释放资源,信号量的值,大于等于0,表示资源的个数;<0,表示等着资源的进程数.P请求,发现没资源就等着;V释放,发现有进程在等着,就去唤醒一个进程,该干活了.
说完概念,说一下应用,因为参考的资料是这么做的,所以我也这么做.
相关文章推荐
- angular4学习指南,环境搭建,基础概念解析(一)
- JAVA反射机制深入学习(一)Java反射概念解析
- 统计及其学习概念解析001
- SharpDevelop解析与学习心得之二------重要概念及核心程序的启动
- 深度学习与硬件GPU,软件框架关系及相关概念解析
- MongoDB基础学习(一) MongoDB概念解析
- 软考学习--PV操作三--真题解析
- XML学习总结-xml概念和dom4j解析技术-(一)
- HEVC代码学习19:MV、MVD、MVP概念解析
- Marklogic学习 由浅入深(5)-- Marklogic概念解析
- 【Alljoyn】Alljoyn学习笔记五 AllJoyn开源技术基础概念解析
- java学习——java基础(一)之概念解析
- JAVA反射机制深入学习(一)Java反射概念解析
- php 调试工具及学习PHP垃圾回收机制了解引用计数器的概念
- JSON解析----个人学习笔记
- Spring概念学习--面向切面AOP
- 《Android设计模式与源码解析》学习记录一
- 深度学习25个基本概念
- Android基础学习总结(十三)——利用jsoup解析html实现网络爬虫
- [学习小结]数组名与数组首元素地址解析