2016-06-03 4 views
3

Я разрабатываю программное обеспечение реального времени, которое будет работать в Linux с патчем PREEMPT_RT. Хотя это позволит мне получить производительность в реальном времени с использованием планировщиков реального времени Linux (SCHED_RR или SCHED_FIFO), я не уверен, какие значения приоритетов я должен использовать для своих потоков. В моей системе, когда я смотрю на приоритеты я вижу (только демонстрирующая процессы с RTPRIO):Как выбрать нить/приоритет процесса в режиме реального времени Linux?

$ 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. Что все эти sirq, irq, posixcputmr задачи? Ядровые потоки?
  2. В каком порядке следует запускать мое программное обеспечение? Должен ли я работать с более высоким приоритетом, чем большинство этих системных потоков (> 50 или даже 99) или ниже (< 49)?

ответ

1

Что все эта sirq, IRQ, posixcputmr задача? Ядровые потоки?

Да, все задачи в скобках - это потоки ядра.

В каком порядке следует запускать мое программное обеспечение?

От 2-69 для нормального RT и 90-98 для ваших приложений с очень высоким приоритетом. Последний заблокирует все обработчики IRQ, поэтому постарайтесь сделать как можно меньше с высоким приоритетом. Source

+0

Perfect. Спасибо за ссылку! – dinkelk

Смежные вопросы