Процесс без вытеснения в Linux (2.6.32)

Я пытаюсь сделать процесс не выгружаемым. Я изменил политику планировщика на SCHED_FIFO и установить rtprio до 99. Как только начинается процесс, при отсутствии прерываний ввода-вывода, могу ли я быть уверен, что этот процесс не будет прерван другим процессом? Rtprio=99 является наивысшим приоритетом или все еще есть процесс ядра с более высоким приоритетом? И, наконец, как я могу узнать, был ли процесс прерван или нет во время его выполнения?

1 ответ

У него есть другой процесс, который может выгрузить процесс с самым высоким значением RT Пример, процессы, которые создаются stop_machine() для горячего удаления CPUS, изменения текста кода ядра.

Вы можете получить информацию из /proc/$PID/sched, чтобы определить, был ли прерван процесс или нет. cat /proc/$PID/sched

nr_switches                        :                 4197
nr_voluntary_switches              :                 4140
nr_involuntary_switches            :                   57

Если nr_switches изменен, процесс был прерван

Другие вопросы по тегам