LabVIEW NI Linux Real-Time深层解析

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: LabVIEW NI Linux Real-Time深层解析

LabVIEW NI Linux Real-Time深层解析


NI LabVIEW Real-Time模块支持NI Linux Real-Time操作系统,在选定的NI硬件上提供。本文介绍了具体的新特性和高级功能,可让您为应用充分利用NI Linux Real-Time。


Linux Shell支持


NI Linux Real-Time操作系统提供了全面的Linux shell支持,因此您可以执行复杂的管理任务来更轻松地管理Real-Time终端。访问shell需要具有终端客户端。如果您使用的是Windows 7或更高版本,则可使用免费的热门客户端PuTTY,具体可访问:PuTTY:免费的Telnet/SSH客户端。


除了终端客户端,您还必须在运行NI Linux Real-Time操作系统的Real-Time终端上选中“启用SSH服务器(sshd)”(Enable Secure Shell Server(sshd))选项。您可以使用NI Measurement & Automation Explorer (MAX)或基于Web的配置和监测界面(见图1和图2)。为了安全起见,强烈建议更改admin帐户的默认密码。您可通过基于Web的配置和监测界面更改密码。如果要通过SSH登录到Linux shell,您可使用admin用户名以及配置好的密码来获得根访问权限;如果没有配置密码,则默认为空。您可通过基于Web的配置和监测界面创建新用户。这些用户也可以通过SSH登录,但没有根访问权限。


图1.可在Measurement and Automation Explorer上Real-Time终端的“系统设置”(System Settings)选项卡内找到“启用SSH服务器(sshd)”(Enable Secure Shell Server(sshd))选项。访问运行NI Linux Real-Time的Real-Time终端之前必须选中该选项。


图2.还可以通过Real-Time终端基于Web的配置和监测界面找到“启用SSH服务器(sshd)”(Enable Secure Shell Server (sshd))选项。访问运行NI Linux Real-Time的Real-Time终端之前必须选中该选项。


文件传输和文件路径


从LabVIEW 2013开始,所有NI Real-Time终端均支持WebDAV文件传输。WebDAV是一个基于HTTP的行业标准协议,应用于Dropbox等热门应用,您可用它轻松、安全地传输包含敏感信息的文件。WebDAV是运行NI LinuxReal-Time的Real-Time终端的默认文件传输机制。


与基于VxWorks和Phar Lap的较旧设备不同,NI Linux Real-Time终端默认状态下不安装FTP服务器。如需FTP支持以保持应用程序的向后兼容性,您可以通过MAX安装传统的FTP服务器,但其安全性较低。访问如何利用NI Linux Real-Time终端使用FTP,详细了解NI Linux Real-Time的FTP支持。如果WebDAV不适用于特定应用,NI Linux Real-Time终端还可通过SSH支持SFTP功能。


此外,NI Linux Real-Time的文件路径与现有Real-Time终端和Windows存在几点重要的区别。


编程式系统访问


LabVIEW Real-Time模块可支持NI Linux Real-Time终端上的System Exec VI。NI Linux Real-Time终端上的System Exec VI提供Linux命令行的访问权限,使您可以通过编程方式管理NI Linux Real-Time操作系统,并直接通过LabVIEW Real-Time应用程序与终端上运行的其他程序交互。


除了System Exec VI,NI Linux Real-Time终端也可支持调用库函数节点。调用库函数节点可帮助您更轻松地将外部C/C++代码与LabVIEW Real-Time应用程序集成,并为在NI Linux Real-Time终端上安装并运行的其他程序提供的C API创建LabVIEW包装器。


NI Linux Real-Time终端支持System Exec VI和调用库函数节点 NI Linux Real-Time终端支持System Exec VI和调用库函数节点


图3.NI Linux Real-Time终端支持System Exec VI和调用库函数节点。您可以通过LabVIEW Real-Time应用程序与NI Linux Real-Time操作系统和其他程序无缝交互。


访问Linux生态系统


运行NI Linux Real-Time的终端可极大受益于Linux提供的庞大IP生态系统。要安装、管理和利用该生态系统,需要使用NI Linux Real-Time上提供的Package Manager:opkg。如需详细了解opkg,请访问OPKGPackage Manager。


NI Linux Real-Time终端除了可帮助您更轻松地将C/C++代码与System Exec VI和调用库函数节点相集成之外,还支持您使用Linux生态系统的代码、复用内部代码,以及使用基于Eclipse的工具开发、部署和调试C/C++代码。如需详细了解NI Linux Real-Time的C/C++开发工具(Eclipse版),请查阅构建NI Linux Real-Time的C/C++应用程序。


高级实时性能


全新NI Linux Real-Time采用与当前Real-Time终端相似的实时调度器来处理时间紧迫的代码调度,通过完全公平调度器(CFS)来处理所有非关键代码调度。目前的Real-Time终端配备专用的RTOS,仅依赖一个实时调度器来管理时间关键型任务和优先级较低的系统任务。NI Linux Real-Time的CFS可更高效率地调度优先级较低的任务,从而提高性能。如需详细了解CFS,请访问Linux 2.6完全公平调度器内部解析。


除了调度器改变之外,您还应当注意到NI Linux Real-Time在支持多核方便也发生了变化,因为所有支持这个新RTOS的NI嵌入式硬件设备都是多核架构。对于多核支持来说,遵循最佳编程实践,避免以100%的内核占用率在处理器内核上运行时间关键型循环非常重要。这是因为多核NI Linux Real-Time系统中的每个内核均需要一定的时间来运行操作系统维护/开销功能,以免严重影响系统的性能。为了避免这种性能下降,应确保时间关键型循环允许CPU每运行10秒钟可有10毫秒的休眠时间来进行开销处理。


同样值得注意的是,如果连续关联任务可以在处理器内核间并行运行,那么在运行NI Linux Real-Time的多核系统上,处理时间关键型任务和系统任务都可能会出现性能下降。这是因为在不同处理器内核上同时运行的连续关联任务之间,信息不能有效地进行通信。为了避免这样的性能损失,请遵循LabVIEW Real-Time编程最佳实践,将时间关键型代码和系统任务分配给不同的处理器内核。您可以通过将处理器内核设置为仅处理时间关键型功能来实现这种分配,也可以指定用于定时循环或定时顺序结构的处理器内核,如图4所示。查看配置定时结构设置,了解更多使用LabVIEW Real-Time优化多核系统的最佳实践。


图4.在LabVIEW Real-Time中使用定时循环结构分配处理器亲和度的方法有2种:(1)双击定时循环结构,在弹出的配置对话框中设置处理器或(2)将一个值直接连线到结构左侧的节点上。


与所有系统升级一样,建议在迁移到基于的NI Linux Real-Time终端后重新验证应用程序,因为个别功能的性能可能会有所提升或降低,从而影响应用程序满足所有系统需求的能力。尤其是,基于Linux的Real-Time终端的内存分配可能会对抖动产生较大的影响。


需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。

相关文章
|
22天前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
34 11
|
1月前
|
存储 运维 安全
深入解析操作系统控制台:阿里云Alibaba Cloud Linux(Alinux)的运维利器
本文将详细介绍阿里云的Alibaba Cloud Linux操作系统控制台的功能和优势。
68 6
|
3月前
|
缓存 并行计算 Linux
深入解析Linux操作系统的内核优化策略
本文旨在探讨Linux操作系统内核的优化策略,包括内核参数调整、内存管理、CPU调度以及文件系统性能提升等方面。通过对这些关键领域的分析,我们可以理解如何有效地提高Linux系统的性能和稳定性,从而为用户提供更加流畅和高效的计算体验。
99 17
|
3月前
|
安全 Java
Java中WAIT和NOTIFY方法调用时机的深层解析
在Java多线程编程中,`wait()`和`notify()`方法的正确使用对于线程间的协调至关重要。这两个方法必须在同步块或同步方法中调用,这一规定的深层原因是什么呢?本文将深入探讨这一机制。
62 5
|
3月前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
98 4
|
3月前
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####
|
4月前
|
弹性计算 网络协议 Ubuntu
如何在阿里云国际版Linux云服务器中自定义配置DNS
如何在阿里云国际版Linux云服务器中自定义配置DNS
|
4月前
|
存储 搜索推荐 算法
【排序算法(二)】——冒泡排序、快速排序和归并排序—>深层解析
【排序算法(二)】——冒泡排序、快速排序和归并排序—>深层解析
|
机器学习/深度学习 存储 Ubuntu
Linux全面解析讲解
Linux全面解析讲解
204 0
Linux全面解析讲解
|
8天前
|
Linux
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
50 23
Linux系统之whereis命令的基本使用