当前位置:首页 > 测试测量 > 测试测量
[导读]关于信号量的使用,程序自带帮助文件的说明是这样的:信号量(互斥量)是用来保护对共享资源进行访问的一个对象。被访问的共享资源的代码叫作关键临界段。在同一时间,只有一定数量的任务可以访问信号量。信号量以此

关于信号量的使用,程序自带帮助文件的说明是这样的:

信号量(互斥量)是用来保护对共享资源进行访问的一个对象。被访问的共享资源的代码叫作关键临界段。在同一时间,只有一定数量的任务可以访问信号量。信号量以此方式保护对重要部分的访问。通常情况下,一次只有一个任务可以访问被通用信号量保护的临界段。但是,信号量可能允许一个以上任务(预定义值以下)访问重要部分。

如要指定同时访问被通用信号量保护的重要部分的任务数量,连接获取信号量引用VI的大小输入端。该VI获取对现有信号量的引用或新建一个信号量,大小输入端指定同一时间可获取信号量的任务数量。使用获取信号量VI可以获取对一个信号量的访问。如使用“获取信号量引用”VI创建的信号量的大小为1,则一次只有一个任务可访问信号量。所以,必须使用释放信号量VI,释放对信号量的访问。这样,另一个任务才能访问信号量。使用释放信号量引用VI,释放对信号量的引用。

注:只要非空闲的顶层VI引用了某个信号量,信号量就一直在内存中。如顶层VI为空闲,LabVIEW将释放该VI的全部信号量引用,包括顶层VI的子VI中的引用。如LabVIEW释放上一个引用至命名信号量,LabVIEW将销毁信号量。因为只能获取引用至一个未命名信号量的引用,当顶层VI空闲时,LabVIEW将销毁一个未命名信号量。如要在多个顶层VI之间使用信号量,需为信号量命名并从顶层VI调用“获取信号量引用”VI,这样每个VI就有了对信号量的唯一引用。

将这些难懂的语言转化为我自己的语言吧:

信号量大部分是用在这种情形下:多个VI中都使用了某一个子Vi,或者含有一个全局变量(主要的)。这几个VI同时运行的话,势必会互相影响(这一点之前已经说明过),导致程序出错。

这时候就用到了信号量。如图所示:


上面的是总VI,下面的是一个信号量下面的三个subVI的程序框图。

而子VI中都存在所示的程序段,即 config Read 还有另外一个在顺序结构的下一帧,不看也罢

这样,这三个子VI独立运行的时候,都将访问Config REAd ,这样就可能造成调用子程序的混乱。

在此之前,我们调用同一个子VI的时候,都是控制好顺序,但是现在的三个字VI是同时运行的,我们不能够让其一个运行完毕,再运行另外一个,这样也不符合我们程序设计的目的。

于是信号量出现了。

信号量控制 三个字VI的共享资源,不同时被调用。当然也不确定哪一个子VI先访问共享资源,但是不要紧,他们三个还是很和谐的,加入第二个先运行,那么他就会锁定共享资源,说“哥先用”。余下的两个就会说“你先用呗,我也不着急用”。然后排在后面,当它用完之后,就要释放掉资源,他自己不会释放的,所以,我们需要将释放信息量写入到程序中,然后死一个和第三个VI就可以去调用那个共享资源了,当然,还是只有一个可以用。“那哥用了?好不”第一个对第三个说。“用吧,我反正不着急”。

过程大约是这样的,如果我没理解错的话。

主要是为了防止共享资源被 同时访问,避免出错。也就是排斥用法!

先理解到这,再接再厉


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

NI提供的软件包经济省时,不仅帮助开发人员节省时间,还为创客提供了新的机遇

关键字: LabVIEW 自动化测试系统

强大的图形化编程工具使整个测试和测量过程的各个方面实现可视化

关键字: LabVIEW 图形化编程工具

摘要:对于每一型新机试飞,或者是重大的研究性试飞和验证试飞,都必须实施遥测监控。现基于TTS(TextToSpeech)语音合成技术,结合飞行试验遥测监控系统的不足,利用TTS引擎在LabVIEW开发环境下设计并实现了遥...

关键字: 飞行试验遥测监控系统 TTS LabVIEW

在科研以及应用软件领域,LabVIEW和MATLAB作为比较常用的2款工具,相信很多人都用过吧。简单的概括一下,LabVIEW侧重测试测量和数据采集,MATLAB侧重科学计算和数据分析。

关键字: LabVIEW matlab 混合编程

摘要:利用单片机和虚拟仪器LabVIEW在PC端设计了温湿度测量及控制系统,用于温湿度数据监测。该系统上位机为PC端监控界面,下位机为单片机,单片机采集温湿度数据,并将采集到的数据通过串口发送给监控界面进行监测和管理。该...

关键字: DHT11 LabVIEW 单片机

摘要:当前闭环步进电机在自动化设备中的应用越来越广泛,故为了进一步满足闭环步进电机的应用需求,采用LabVIEW上位机+运动控制卡+驱动器模块的控制方案进行了多轴运动系统的设计,通过设计的上位机软件实现闭环步进电机的实时...

关键字: 闭环步进电机 精度测试 LabVIEW

摘要:为满足某扭矩检测试验标准要求,基于LabView设计开发了一款扭矩检测装置,该装置能检测某类零部件的断裂力矩,满足试验标准要求,其他零部件的扭矩也可在该装置上检测。类似的扭矩装置可参考该装置进行设计。

关键字: 伺服电机 LabVIEW PLC

在下述的内容中,小编将会对LabVIEW的相关消息予以报道,如果LabVIEW是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: LabVIEW 测试测量 NI

一直以来,LABVIEW都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来LABVIEW的相关介绍,详细内容请看下文。

关键字: LabVIEW 测试测量 测试仪器

摘要:随着我国智能电网的快速发展,传统采集设备已无法完全满足当前需求。配电台区是营销与生产的交汇点,传统模式下,营销与生产双方需要在台区侧分别安装集中器和配变终端(TTU)两种设备,但仍存在诸多问题。在此背景下,融合了I...

关键字: 能源控制器 信号量 死锁
关闭
关闭