网络工程师知识点:信号量与P/V操作

网络工程师 责任编辑:wyj200706 2013-11-18

添加老师微信

备考咨询

加我微信

摘要:同步:是进程间共同完成一项任务时直接发生相互作用的关系,同步进程间具有合作关系 ,在执行时间上必须按一定的顺序协调进行。

3.1.2【知识点】信号量与P/V操作

同步:是进程间共同完成一项任务时直接发生相互作用的关系,同步进程间具有合作关系 ,在执行时间上必须按一定的顺序协调进行。

互斥:是并发执行的多个进程由于竞争同一资源而产生的相互排斥的关系,互斥进程彼此在逻辑上是完全无关的 ,它们的运行不具有时间次序的特征。

临界资源和临界区:一次仅允许一个进程使用的共享资源,如:打印机、内存单元等。而临界区即指在每个进程中访问临界资源的那段程序,临界区有三个原则:有限进入原则、原则、有限离开原则。

信号量:

一般说来,信号量的值与相应资源的使用情况有关

信号量的值仅由P、V操作改变

P、V操作:

P:申请一个单位资源

V:释放一个单位资源

图3-4  P、V原语操作


用P、V原语实现互斥:

例:打印机分配:互斥信号量mutex(初值为1),Pa为分配进程,Pb为释放进程。

用P、V原语实现简单同步(如下图左)。

 

图3-5  互斥与简单同步

例:供者和用者对单缓冲区的同步:信号量S1→缓冲区空否(初值为1);S2→缓冲区满否(初值为0)(如上图右)。

设上例中缓冲区容量为n,分析信号量的设置与状态变化范围(生产者-消费者问题)。分析:生产者-消费者问题不仅要解决生产者进程与消费者进程的同步关系,还要处理缓冲区的互斥关系,因此需要三个信号量来实现。其中两个用来管理同步;empty信号量说明空闲的缓冲区数量,最先没有生产出产品,因此其初值为缓冲区的容纳产品最大数。Fu信号量说明已占用缓冲区的产品数量,其初值为0。另一个mutex信号量用来管理互斥,以保证同时只有一个进程在写缓冲区内,初值取1。

 

图3-6  生产者-消费者问题

信号量与P/V操作的概念比较抽象,在历年考试中,对于大多数考生而言缺乏对操作系统的系统学习,并没有能够正确地理解信号量的含义,结合考试实践,信号量操作小结如下:

一般来说,一个互斥或一个同步关系可以使用一个信号量来解决,但要注意不要忽略一些隐藏的同步关系。如:在生产/消费者问题中,就有两个同步关系,一是判断是否还有足够空间给生产者存放,还一个是判断是否有足够的产品供消费者使用。

信号量的初值通常表示资源的可用数量。而且对于初值为0的信号量,通常会先做V操作。

在资源使用前,将会使用P操作,在资源用完后,将会作V操作。在互斥关系中,P/V操作是在一个进程中成对出现的;而在同步关系中,P/V操作则是在两个或多个进程中成对出现。

例:设有n个进程使用同一个共享变量,如果最多允许m(m < n)个进程同时进入相关临界区,则信号量的变化范围是      。

A. n,n-1,...,n-mB. m,m-1,...1,0,-1,...m-n

C. m,m-1,...1,0,-1,...m-n-1D. m,m-1,...1,0,-1,...m-n+1

试题分析:

从题义可知,信号量有如下几种状态:

m:没有进程进入临界区,可允许m个进入;

m-1:有一个进程进入临界区,还可允许m-1个进入;

......

0:相同道理,有m个进程进入临界区,不允许任何进入,但暂时没有资源等待;

-1:临界区已满,且有一个进程等待进入;

......

m-n:最坏情况下,临界区已满,且剩下的进程全部等待进入。

返回目录:网工知识点全析及训练第三章操作系统基础知识

编辑推荐:

网工知识点全析及训练第一章:网络工程师指南

网工知识点全析及训练第二章:计算机硬件知识


更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取