如何在Linux中运行实时应用程序?

如何在Linux中运行实时应用程序?

为了在我的 Debian Jessie 上运行 LinuxCNC,我做了:

  • 使用 apt-get/aptitude 通过 Jessie 向后移植安装内核 4.9 RT。
  • 重新启动我的计算机并检查uname -a包含PREEMPT RT
  • 通过添加存储库并使用来安装 LinuxCNCapt-get

之后,启动 linuxCNC 向导(通过正常点击菜单)进行抖动测试。我目前的结果非常糟糕,大约140us。

我想知道有没有要启用的 PREEMPTION 配置,或者具体方法运行一个应用程序以获得更精确的实时性?

还有,我怎么能检查进程是否实时运行

注:我的电脑是intel E6600

答案1

我想知道是否有任何 PREEMPTION 配置可以启用,或者运行应用程序以获得更精确的实时性的特定方式?

请参阅以下内容:

http://wiki.linuxcnc.org/cgi-bin/wiki.pl?延迟测试

链接至此:

https://forum.linuxcnc.org/18-computer/25927-reducing-latency-on-multicore-pc-s-success?limitstart=0

(来自上面的页面:)

Linux相关的改变:

  • 编辑 /etc/default/grub 并添加内核选项:“isolcpus=1 acpi_irq_nobalance noirqbalance”(之后调用 update-grub)
  • 确保没有安装“irqbalance”软件,如果有则删除(Ubuntu 软件中心 -> 已安装的软件 -> 搜索 irqbalance -> 删除)
  • 将 upstart 脚本“irq-affinity.conf”添加到 /etc/init(请参阅附件,它将把 irq 处理移至第一个核心)
  • 将 sh 脚本 set-irq-affinity 和 watchirqs 添加到 /usr/local/sbin (首先允许手动设置关联掩码,第二个打开一个控制台窗口,实时显示如何将 irq 调度到不同的内核 -> 所有数字 irq但 0 应该由 cpu0 处理)

不过,您可能必须为 Système D 调整脚本......

快速测试一下:您还可以使用 提高优先级nice -n <x>,其中<x>是所需的优先级。

另外,我如何检查该进程是否实时运行?

看这个问题:Linux 中的实时进程调度

相关内容