如何在实时Linux中选择线程/进程优先级?

时间:2016-06-03 23:19:23

标签: linux process real-time thread-priority

我正在开发将在Linux上使用PREEMPT_RT补丁运行的实时软件。虽然这可以让我通过使用Linux实时调度程序(SCHED_RRSCHED_FIFO)获得实时性能,但我不确定我应该为我的线程使用哪些优先级值。在我的系统上,当我查看我看到的优先级时(仅显示具有RTPRIO的进程):

$ ps -e -o cmd,pri,rtprio
CMD                         PRI RTPRIO
[sirq-high/0]                89     49
[sirq-timer/0]               89     49
[sirq-net-tx/0]              89     49
[sirq-net-rx/0]              89     49
[sirq-block/0]               89     49
[sirq-block-iopo]            89     49
[sirq-tasklet/0]             89     49
[sirq-sched/0]               89     49
[sirq-hrtimer/0]             89     49
[sirq-rcu/0]                 89     49
[posixcputmr/0]             139     99
[events/0]                   41      1
[irq/17-systemac]            90     50
[irq/19-watchdog]            90     50
[irq/18-eth0]                90     50
[irq/16-serial]              90     50

我有两个问题:

  1. 这些sirqirqposixcputmr任务是什么?内核线程?
  2. 我应该优先运行软件?我应该以比大多数这些系统线程(> 50或甚至99)或更低(< 49)更高的优先级运行吗?

1 个答案:

答案 0 :(得分:1)

  

所有这些sirq,irq,posixcputmr任务是什么?内核线程?

是的,括号中的所有任务都是内核线程。

  

我应该优先运行我的软件?

正常RT的2-69,非常高优先级的应用程序线程的90-98。后者将阻止所有IRQ处理程序,因此尝试尽可能少地执行高优先级。 Source