LabVIEW与多线.ppt
《LabVIEW与多线.ppt》由会员分享,可在线阅读,更多相关《LabVIEW与多线.ppt(74页珍藏版)》请在三一办公上搜索。
1、LabVIEW与多线程,Intelligent Electronics InstituteHuazhong University of Science&Technology,2,目录,多线程技术LabVIEW多线程环境LabVIEW多线程程序设计LabVIEW线程通信与同步提示与建议习题,3,3.1多线程技术,基本概念程序是指一个静态的指令序列;进程为执行程序指令的线程而保留的一系列资源的集合;线程是操作系统用来调度执行的最小单位。,程序,进程,线程,3.1多线程技术,多线程在运行一个多线程的程序时,为了运行所有的线程,操作系统为每个独立线程安排一些CPU时间,每个线程在使用完时间片后交出控制
2、权,系统再将CPU时间片分配给下一个线程。由于每个时间片足够短,这样就造成一种假象:好像这些线程在同时运行。(a)从用户角度看多线程(b)从系统角度看多线程应用多线程技术的目的就是尽可能地利用CPU时间。,4,3.1多线程技术,多处理器多处理器是指在一台计算机中有两个以上的处理器,每个处理器可以同时执行不同的线程。在多处理器的作用下,多个线程可以同时执行,从而以更少的时间完成更多的任务。,5,3.1多线程技术,线程调度无论进程还是线程都是操作系统中进行CPU任务调度的程序单元;CPU调度一个进程时必定发生一个进程上下文切换;CPU调度一个进程内的多个线程时则可以避免上下文切换的发生;采用多线程
3、可以减少因上下文切换导致的CPU时间开销。,6,3.1多线程技术,在多进程操作系统中,当创建一个进程时系统同时就为进程创建了一个主线程,由这个主线程生成额外的子线程,然后这些线程又可以生成更多的子线程,所有的线程共同构成了一个进程的线程集。,7,3.1多线程技术,线程优先级线程被调度的先后顺序是依据线程的优先级来完成的;当一个线程被创建时,操作系统将分配给线程一个优先级;在调度周期的开始,系统从线程的就绪队列中选择拥有最高优先级的线程来执行。,8,3.1多线程技术,影响线程调度的其它因素线程调度除了依据线程优先级以外,还受系统调度策略和算法等因素的影响;调度算法的优劣直接影响到CPU运行的效率
4、和性能,不佳的调度算法不仅可能降低系统的反应时间,而且可能导致某些线程或进程长时间得不到调度;目前操作系统一般采用抢占式调度。,9,3.1多线程技术,抢占式调度抢占式调度是指当一个线程或进程所分配的时间片过期或有更高优先级的线程或进程出现时,如果调度进程还需要进行上下文的切换,操作系统将暂停其在CPU上继续执行,调度另外的线程或进程到CPU上执行。抢占式调度阻止了任何线程长期占用处理器的情况发生;最短任务优先调度策略偏向于预估完成时间最短的线程,有利于迅速减少系统中线程数量,提高处理器的吞吐量。,10,3.1多线程技术,线程通信如果线程间的通信发生在一个进程中,可以通过从堆栈片段传递值的方式来
5、完成;如果一个进程中的线程同另一个进程中的线程进行通信,则不能以线程通信的方式来处理,而必须以进程间通信来对待,采取如环境变量、命名管道、共享内存等技术手段来解决;在多数情况下,线程通信的代价要小于进程通信的代价。,11,3.1多线程技术,线程同步线程同步一般分为数据同步、设备同步和任务同步3种情况。数据同步用于保证并发线程以一种安全的模式访问内存块;设备同步用于多个线程访问单一设备时对实时操作和优先权的严格控制,阻止线程破坏设备的状态;任务同步用于加强线程间逻辑关系上的前置条件和后置条件。,12,3.2LabVIEW多线程环境,支持多线程模式的程序设计语言用函数直接创建多线程:在Visual
6、 C+语言中,提供了封装在Win32 API中的 CreateThread、ExitThread等函数方法的CWinThread类,为创建多线程应用程序提供了基本框架;从执行系统和数据流控制两个层次实现多线程程序设计:LabVIEW开发环境。,13,3.2LabVIEW多线程环境,LabVIEW执行系统类似于Java虚拟机,是特有的中间执行平台。LabVIEW程序框图编译生成的,并不是操作系统平台上的可执行程序代码,而是一种特有的程序组织代码,这种代码必须通过LabVIEW的执行系统来实现在操作系统上的运行;在创建LabVIEW发布的可执行程序时,对于没有LabVIEW执行系统环境的计算机需要
7、在发布组件选项中包含LabVIEW运行引擎(Run-Time Engine)。,14,3.2LabVIEW多线程环境,执行子系统(6个)用户界面(user interface)、标准(standard)、仪器I/O(instrument I/O)、数据采集(data acquisition)、其他1(other 1)、其他2(other 2)。在“文件VI属性执行”面板中可以对执行子系统进行更改。,15,注意:“与调用方相同”(same as caller)不是一个子系统,它表示其执行子系统与调用该子VI的程序的执行子系统相同,3.2LabVIEW多线程环境,子系统分工对执行系统进行细分的最初
8、目的在于将不同用途的VI严格分配到不同的执行子系统中,各个执行子系统具体分工如下:用户界面子系统:主要用于屏幕画图,以及键盘、鼠标输入等,这个子系统也用于特定类型的VI执行。标准子系统:如果需要为用户界面保持专用运行时间,应当为VI指定这个子系统。仪器I/O子系统:该子系统主要用于完成与VXI系统、GPIB系统、串行仪器或网络之间的通信。数据采集子系统:该子系统主要用于数据采集。其他子系统1:当程序中的任务需要自己的线程时使用。其他子系统2:当程序中的任务需要自己的线程时使用。,16,3.2LabVIEW多线程环境,用户界面子系统用户界面子系统是LabVIEW系统运行时必须加载的,而其他几个执
9、行子系统则是可选的;用户界面子系统实际上是一个单线程系统,只有一个用户界面线程执行各种任务;在LabVIEW中所有与用户界面相关的操作都由用户界面子系统负责,其他执行子系统不负责管理用户界面。,17,3.2LabVIEW多线程环境,线程数量设置无法通过编写程序来实现对LabVIEW执行系统中线程变化的控制,但作为辅助工具,LabVIEW提供了一个线程配置程序threadconfig.vi,它位于LabVIEW安装目录vi.lib utilitiessysinfo.llb中;一般情况下,不需要修改LabVIEW系统环境的默认线程数量设置。当LabVIEW系统运行在一个专用计算机上,可以根据计算机
10、的硬件配置情况适当增加线程的数量。而在一个非专用计算机上增加LabVIEW系统中线程的数量,则可能影响其他程序的运行,甚至可能由于线程过多导致计算机整体性能的下降。,18,3.2LabVIEW多线程环境,线程配置程序threadconfig.vi 线程配置程序界面 线程配置对话框,19,3.2LabVIEW多线程环境,VI优先级LabVIEW程序优先级的设置方法可以分为程序控制和系统控制两种。程序控制方法是指用户通过在程序框图中使用等待函数来控制程序内部并行任务的执行顺序;系统控制方法是通过在VI属性中选择相应的VI执行优先级别来控制VI的执行顺序。,20,任务1,优先级高,任务2,优先级低,
11、3.2LabVIEW多线程环境,注意VI的优先级问题考虑修改VI的优先级设置时要慎重小心,一般情况下,用户创建VI的默认为普通优先级,应尽量避免修改VI的优先级,只有那些特殊的VI才被指定为非普通的优先级;在当一个VI确有必要使用非普通的优先级时,应当遵循这条原则:不要让高优先级的VI持续运行;VI优先级是隐含的,只能通过查询VI属性才能了解。,21,3.2LabVIEW多线程环境,子程序优先级子程序优先级并不是一个真正的优先级,它并不标识VI的相对优先级别,仅用来标识一类特殊的LabVIEW程序,具有该优先级的VI不会被加入到执行子系统的运行队列中。鲜明的特征:VI的用户界面不能更新,只能调
12、用子程序优先级的子VI,不能调试等;子程序优先级的VI可以调用其他子程序优先级的VI,不能调用其他优先级的VI。,22,3.2LabVIEW多线程环境,子程序优先级当选择了子程序优先级后,以下几个选项就不能选择了:打开时运行(Run when opened);调用时挂起(Suspend when called);运行时自动处理菜单(Auto handling of menus at launch);允许调试(Allow debugging);调用时清除显示控件(Clear indicators when called)。,23,3.2LabVIEW多线程环境,子程序优先级VI示例“字符串”选项
13、板下的“删除空白”(Trim Whitespace.vi),24,3.2LabVIEW多线程环境,多线程程序的优势多线程技术在LabVIEW程序中充分发挥了重要的作用,具有以下几点优势:更高效地使用CPU;更好的系统可靠性;更优化的多处理器性能。,25,3.3LabVIEW多线程程序设计,线程优化示例1:要求:监控重物的速度变化过程,绘制S-t(距离时间)曲线、V-t(速度时间)曲线、V-S(速度距离)曲线并显示所有数据。初始程序分3步执行,26,第一帧:得到S-t数据,3.3LabVIEW多线程程序设计,线程优化,27,第二帧:得到V-t数据,3.3LabVIEW多线程程序设计,线程优化,2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LabVIEW

链接地址:https://www.31ppt.com/p-5436912.html