湖南株洲网站建设,微信分销平台是什么意思,成都网站建设服务功能,线下推广的渠道和方法LabVIEW使用实时跟踪查看器调试多核应用程序随着多核CPU的推出#xff0c;开发人员现在可以在LabVIEW的帮助下充分利用这项新技术的功能。并行编程在为多核CPU开发应用程序时提出了新的挑战#xff0c;例如同步多个线程对共享内存的并发访问以及处理器关联。LabVIEW可自动处理…LabVIEW使用实时跟踪查看器调试多核应用程序随着多核CPU的推出开发人员现在可以在LabVIEW的帮助下充分利用这项新技术的功能。并行编程在为多核CPU开发应用程序时提出了新的挑战例如同步多个线程对共享内存的并发访问以及处理器关联。LabVIEW可自动处理大多数多线程任务同时使用户能够灵活地将线分配给他们选择的CPU或同一CPU的内核。LabVIEW2014实时模块支持在PharLap ETS目标上具有最多12个内核的CPU。以前即使目标有更多可用内核该模块也仅支持8个CPU内核。如果要开发实时应用程序监视详细CPU使用情况和其他事件的最佳方法是从实时目标捕获执行跟踪。借助实时跟踪查看器可以查看和分析实时任务的执行轨迹包括虚拟仪器VI和操作系统OS线程。实时跟踪查看器由两部分组成检测VI和跟踪查看实用程序检测VI需要围绕要跟踪其执行的代码添加。跟踪查看实用程序用于查看捕获的执行跟踪。在LabVIEW实时模块和LabWindows/CVI实时模块的2013和先前版本中实时跟踪观察器被打包为一个独立的工具包实时执行追踪工具包。访问低级执行信息对于优化和调试实时应用程序至关重要可以轻松识别抖动源例如处理器关联、内存分配、优先级继承或争用条件。由不同优先级的多个线程使用共享资源可能会导致应用程序出现意外行为。表1显示了一些共享资源以及应用程序中可能出现的潜在问题。以下两个屏幕截图表示在嵌入式多核实时目标上运行的程序的执行跟踪。NILabVIEW中的并行编程是使用两个定时循环TL结构实现的。每个TL都分配给不同的CPU。给定TL中的所有代码将在同一CPU上执行。处理器关联将一直保留直到程序完成执行。图1和图2清楚地显示了每个线程的CPU关联性。与给定CPU关联的线程将突出显示而其余线程将灰显。另请注意在不同CPU上运行的线程的并行执行。此执行跟踪显示与CPU0关联的线程。其余线程灰显。图1.此执行跟踪显示与CPU0关联的线程图2.此执行跟踪显示与CPU1关联的线程。共享资源时间关键型线程需要在确定性时间内执行的线程使用共享资源可能会给实时应用程序带来额外的抖动。其中一个共享资源是LabVIEW内存管理器。它负责动态分配内存。当内存管理器拥有正常优先级程序时其余线程包括时间关键线程必须等待共享资源可用。在这种情况下时间关键型线程不可避免地会引入抖动。为了解决此问题线程调度程序临时提升正常优先级的应用程序使其在时间关键型线程中运行以便它可以更快地完成并释放内存管理器。这种现象称为优先级继承或优先级倒置。为了避免这种情况NI建议避免使用共享资源。内存管理器的解决方案是为数组预分配内存。当混合两种优先级调度方案时有时会增强优先级继承-在VI级别和定时循环级别。例如在图3中可以看到一个时间关键型子VI红色图标和一个定时循环争夺相同的内存资源。时间关键型子VI和定时循环之间共享资源的竞争可能导致优先级继承。使用两种不同优先级分配方案的示例。图3.使用两种不同优先级分配方案的示例。图4是另一个程序的跟踪该程序具有正常优先级子VI和共享公共资源内存管理器的时间关键子VI。绿色标志显示动态内存分配橙色标志显示优先级继承。时间关键型线程的执行被中断以便可以提升正常优先级子VI以在时间关键型线程中运行从而更快地释放共享资源。这最终会影响时间关键子VI的确定性。绿色标志显示动态内存分配图4.绿色标志显示动态内存分配访问内存管理器。 需要说明的是上述的例程和文档都是可以下载的双击即可打开其中压缩文件是可以采用粘贴复制的方式拷贝到硬盘上。这不是图片各位小伙伴看到后尝试一下这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目可联系们。附件中的资料这里无法上传可去公司网站搜索下载。