Я пытаюсь сделать процесс не превентивным. Я изменил политику планировщика на SCHED_FIFO
и установил в 99. Как только процесс начнется, в отсутствие прерываний ввода-вывода у меня есть уверенность, что процесс не будет вытеснен другим процессом? Rtprio = 99 является наивысшим приоритетом или еще есть какой-то процесс ядра с более высоким приоритетом? И, наконец, как я могу узнать, был ли процесс выгружен или нет во время его выполнения?Процесс, не подверженный превентивным действиям в Linux (2.6.32)
0
A
ответ
0
У этого есть другой процесс, который может выдержать самый высокий процесс rt. Например, процессы, которые создаются с помощью stop_machine()
для горячего удаления CPUS, изменяя текст кода ядра.
Вы можете получить информацию из/proc/$ PID/sched, чтобы определить, был ли процесс выгружен или нет. кота/Proc/$ PID/SCHED
nr_switches : 4197
nr_voluntary_switches : 4140
nr_involuntary_switches : 57
Если nr_switches
изменяется, то процесс был вытеснен