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