视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
基于LabVIEW测试系统的多线程编程模拟
2025-09-25 14:13:06 责编:小OO
文档
第28卷 第2期2007年06月内蒙古农业大学学报

Journal of I nner Mongolia Agricultural University

Vol.28 No.2

Jun.2007

基于Lab V I E W测试系统的多线程编程模拟3

郝 磊1, 麻硕士13, 裴喜春2, 崔红梅1

(1.内蒙古农业大学机电工程学院,呼和浩特 010018;

2.内蒙古农业大学计算机与信息工程学院,呼和浩特 010018)

摘要: 本文介绍了多线程编程的相关概念以及Lab V I E W进行多线程编程的相关技术、方法。对测试任务进行分解,利用队列技术,进行多线程编程。结果表明,与单线程编程相比,这种技术可以有效缩短测试任务的运行时间。

关键词: 队列; Lab V I E W; 多线程; 测试系统; 模拟

中图分类号: T N911.6   文献标识码: A   文章编号:1009-3575(2007)02-0150-04

S I M ULATI O N O F MULTI THREAD PRO GRA MM I N G O F

TEST SYSTE M BASED ON LABV I E W

HAO Lei1, MA Shuo-shi13, PE I Xi-chun1, CU I Hong-mei1

(1.College of M echanical and Electrical Engineering,InnerM ongolia A gricultural U niversity,Huhhot 010018,China;

2.College of Co m puter Science and Infor m ation M anage m ent,InnerM ongolia A gricultural U niversity,Huhhot 010018,China)

Ab s tra c t: The concep t of the multithread p r ogra mm ing,the pertinent technol ogy and the s oluti on realized in Lab V I E W were dis2 cussed.First,disasse mble the whole test task int o several step s.Second,realize it by app lying the Queue technol ogy.A s is shown fr om the result of the computer si m ulati on,it can effectively reduce the runti m e of the test task by e mp l oying multithread p r ogramm ing technol ogy comparing with e mp l oying the single thread technol ogy.

Key wo rd s: Queue; labV I E W; multithread; test syste m; si m ulati on

引言

在用Lab V I E W对测试系统进行编程时,程序的执行顺序是严格按照测试系统的数据流向进行的。如图1所示的1个测试系统程序框图,数据依次进入各个小模块,后面的模块必须等到前面的模块执行完后才能开始执行。特别是在有I/O操作时,如数据采集和存储模块,它对应的那个模块用时就比较长。这样当这个模块在运行时,其他模块的等待时间就比较长,将严重影响整个测试系统的实时性。基于W in2 dows的多任务操作系统,将不同的模块分给不同的线程,利用多线程技术,可以解决这类问题。

图1 单线程测试系统示意图

Fig.1Single-thread D iagra m of Test Syste m 1 相关概念[1]

111 多任务

多任务是指在同一台计算机的同一时刻运行多个程序。

112 进程

进程是指程序的1次运行过程,或者说是程序在1个数据集合上的运行过程,是系统进行资源分配的1个单位。在W indows操作系统中,进程就是指1个EXE文件的1次运行过程。

113 线程

线程是指由进程派生出来的1组代码(指令组)的运行过程。1个进程可以产生多个线程,线程共享进程所拥有的全部系统资源。

3收稿日期: 2006-12-20

作者简介: 郝磊(1981-),男,硕士研究生,主要从事机械性能测试与控制方面的研究.

3通讯作者 114 优先级

当1个线程被创建时,系统就会给它设定1个优先级。系统按照线程的优先级别决定它能否优先得到CP U分配给它的时间片。

2 Lab V I E W中的多线程

Lab V I E W软件本身对线程做了很好的支持, Lab V I E W在支持多线程的系统上运行时,用户可以根据任务需求自行创建和撤销线程。同时,将V I分为6个不同的优先级,它们从低到高依次是:Back2 gr ound p ri ority,Nor mal p ri ority,Above Nor mal p ri ori2 ty,H igh p ri ority,Ti m e-Critical p ri ority,Subr outine p ri ority。Lab V I E W为了使各种操作相互分开,又设置了6个执行系统来处理不同优先级的V I,即:U ser interface,Standard,I nstrument I/O,Data acquisiti on, O ther1和O ther2。LabV I E W为每个执行系统分配1个线程池和1个与之相关联的任务队列,如果队列中任务的优先级相同,那么就为每个线程分配1个时间片,排在队列前面的先得到时间片,如果用完所得的时间片后还没有执行完任务就退到队列的末尾,等到下一次轮到时间片继续执行,执行完后退出队列。如果优先级不同,那么优先级高的线程可以优先得到CP U时间片,不受队列的[2]。

另外在Lab V I E W中,还有1个Reentrant execu2 ti on选项,在没有被钩选时,当1个SubV I同时被多个V I调用时,后面调用的V I必须等到该Sub V I执行完以后才能调用;当钩选时,Lab V I E W则为每1个V I分配1套环境变量,各个调用可以同时进行而互不干扰[2]。

3 Lab V I E W多线程编程方法

Lab V I E W是基于数据流的编程语言,所以在Lab V I E W中进行线程的创建、撤销是非常方便的,它隐含了操作系统在进行线程操作的一些基本步骤。在LabV I E W中数据流的起点就是1个任务的开始,所以在程序中每一条数据流,就代表1个线程。只要程序中使用了的数据流,Lab V I E W就会给他分配1个线程。

在程序设计上,可以利用局部变量、全局变量和移位寄存器实现多线程编程,但由于各线程的执行过程相对,如没有1个很好的机制去控制,造成执行混乱,所以Lab V I E W还提供了Notificati on(通告)、Queue(队列)、Se maphore(信号量)、Rendezv ous (集合)和Occurrence(事件)5种多线程编程技术。[1]针对图1的测试系统,我们选用队列技术进行多线程编程模拟,进而与单线程运行效果进行比对。4 测试系统的单线程和多线程程序模拟

411 测试系统程序模块分解

根据测试任务,先分解模块,模块分解的原则是尽可能使分解后的模块间有强内聚度和松耦合度。根据这个原则,一般把测试系统的程序分成如图1所示的采集、显示1、分析、显示2和存储的几个模块。其中采集模块用来处理采集数据和数据的传送;显示1模块的作用是将采集传送过来的数据实时的显示在前面板上;分析的作用是分析显示在前面板上的数据;显示2的作用是把分析后的数据显示在前面板上,可以对处理的效果有个比较;存储的模块是将分析后的数据存储到硬盘或其他存储介质上。

412 模型设计

单线程的模型如图1,模块分别为采集、显示1、分析处理、显示2和存储模块,数据将按照模块出现的前后,依次进入,只分配1个线程。

多线程进行编程模型如图2,模块的分解与单线程的一样,利用队列技术,为每个模块分配1个线程,分别设置数据采集线程、显示线程1、分析线程、显示线程2、存储线程,以及采集数据队列、显示数据队列1、分析数据队列和显示数据队列2

图2 多线程测试系统示意图

Fig.2Multithread D iagram of Test Syste m

模型说明:

采集线程负责数据采集和将采集到的数据放入采集队列;显示线程1负责将采集队列的数据取出并显示在前面板上,同时将数据放入显示队列1里;分析线程负责将显示队列1的数据取出并分析,分

151

第2期            郝 磊等: 基于Lab V I E W测试系统的多线程编程模拟

析后的数据放入分析队列里;显示线程2负责将分析队列的数据取出并显示在前面板上,同时将数据放入显示队列2中;存储线程负责从显示队列2中取出数据并保存。线程之间在队列的控制下相对运行。

413 模拟程序设计与实现413.1 程序设置

413.1.1 假设采集需要时间80m s,显示50m s,分析

处理90m s,存储120m s 。

413.1.2 采集和存储V I 的优先级设置为高于正常,显示V I 设置成可重入,其它所有用户子V I 的执行系统和优先级都按默认设置。413.1.3 连续运行

20次,每次传递正弦函数产生

的128个点的数组。

413.1.4 将采集队列,显示队列1,分析队列的队列大小设置为1,

显示队列2的设置为默认即无限大小。

413.1.5 在5个线程中,任一线程中如果队列中没有数据,则无限等待,直到队列中有数据或释放该队列。413.2 程序实现 为了能对比单线程和多线程的程序运行时间,在程序中加上了计算程序运行时间的程序。413.2.1 单线程的程序见图3413.2.2 线程的程序见图4413.2.3 运行结果分析

图3 单线程测试系统模拟程序

Fig .3Si m ulati on Pr ogra m of Single -thread Test Syste m

图4 多线程测试系统模拟程序

Fig .4Si m ulati on Pr ogra m of M ultithread Test Syste m

251内蒙古农业大学学报            2007年

进一步分析可知,为了提高程序的实效性,将前3个队列的大小设置成1(队列里只能存放1个数据),也就是说显示和处理的数据就是刚采集的,这样就保证了显示和分析的数据并发执行;最后1个线程是存储线程,没有实时的要求,所以最后1个队列的大小设置成无限大。在多线程的程序中,运行时间基本是由线程中用时最大的那个模块决定;而在单线程的程序中,运行的时间是由所有模块运行时间的总和决定。

5 结论

对于1,根据其任务功能恰当的分解成几个的模块,利用队列技术的多线程程序设计方法,恰当设置各个模块的优先级,可有效的缩短程序执行时间,提高测试系统的时效性。

参 考 文 献:

[1] 杨乐平.Lab V I E W高级程序设计〔M〕.北京:清华大学

出版社,2003,4,118-226.

[2] 廖双龙.用Lab V I E W进行并行多任务编程〔M〕.国外

电子测量技术,2000,(5):38-40.

[3] 汤子瀛.计算机操作系统〔M〕.西安:西安电子科技大

学出版社,1996,12,35-60.

[4] 雷振山.Lab V I E W7Exp ress使用技术教程〔M〕.北

京:中国铁道出版社,2004,4,177-181.

[5] U sing Lab V I E W t o Create Multithreaded V Is forMaxi m u m

Perfor mance and Reliability.

htt p://scholar.google.com/scholar?hl=zh-CN&lr=

&ne wwindow=1&q=cache:P DfTqy A0dRwJ:zone.ni.

com/devzone%255Cconcep td.nsf/web main/

D2E196C7416F373A862568690074C759/%24File/

AN114.pdf+Lab V I E W+multithread

(上接第101页)

稳定西北边疆少数民族地区的经济发展,保持社会繁荣稳定,保证人民安居乐业,为建设社会主义新农村打下坚实的基础。

4 结论

腰坝滩自开发以来,在建设和发展绿洲过程中大致经历了建设初期、发展、稳定和生态农业发展4个阶段。通过逐步改变落后的生产方式和观念,引进先进技术与思想,加快产业结构调整步伐,最终选择了走高效生态农业的道路,尝试并取得显著效果,使得绿洲初具规模。产业结构调整取得初步效果,农牧业比重日趋合理,农牧民收入不断提高。从2001年开始发展生态农业,人均年收入2672元,到2004年增长为3263元。生态效益和社会效益也表现出喜人成效,发展绿洲生态农业对保护和恢复植被,治理沙化土地,改善区域生态环境发挥了重要作用。

在今后绿洲发展与建设中,要继续坚持走生态农业的道路,将日光节能温棚作为主导产业发展和培育,并采取枣粮间作、节水灌溉、舍饲养殖等措施,积极发展绿色食品生产。同时,结合发展农区养殖业,将产品进行转化后进入市场,提高生产效益。在进一步提高农牧民生活水平的同时,达到保护环境的目的,走可持续发展的道路。

参 考 文 献:

[1] 李文华.生态农业—中国可持续农业的理论与实践

〔M〕.北京:化学工业出版社,2003.777-781.

[2] 刘普幸、孙小舟.干旱区生态农业与人地关系协调

〔J〕.干旱区资源与环境,2004,18(1):7-10.

[3] 李英能.对我国北方地区几种节水灌溉工程技术模式

的探讨〔J〕.节水灌溉,1999,6:1-5.

[4] 史俊通、海江波、李世清.西北地区生态农业建设的思

考〔J〕.干旱地区农业研究,2001,19(1):102-107. [5] 卢兵友.生态农业建设中的水资源生命周期及系统功

能响应〔J〕.自然资源学报,2001,16(5):488-492. [6] 马松尧、.西北地区生态农业体系建设途径探讨

〔J〕.中国沙漠,2004,24(2):191-195.

[7] W ang J ijun,L iu Guobin,Xie Yongsheng,et al.Research

on the Devel opmentModel of Ecol ogical Agriculture in Lo2

ess H illy-Gully Regi on of Northern Shanxi,China〔J〕.

Ecol ogical Economy,2005,Vol.1,No.2:93-99. [8] 黄进勇、王兆骞.中国生态农业模式管理信息及决策

支持系统的建立〔J〕.应用生态学报,2003,14(4):525

-529.

[9] 张壬午.生态农业产业化探析〔J〕.中国生态农业学报,

2004,12(1):14-15.

351

第2期            郝 磊等: 基于Lab V I E W测试系统的多线程编程模拟下载本文

显示全文
专题