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

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

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

如要指定同时访问被通用信号量保护的重要部分的任务数量,连接获取信号量引用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就可以去调用那个共享资源了,当然,还是只有一个可以用。“那哥用了?好不”第一个对第三个说。“用吧,我反正不着急”。

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

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

先理解到这,再接再厉


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

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭