Потоки ядра Linux - планировщик - PullRequest
4 голосов
/ 12 марта 2010

Является ли планировщик ядра Linux частью процесса инициализации? Насколько я понимаю, это часть потоков ядра, внутренне управляемых и не видимых пользователю ни top, ни ps. Пожалуйста, исправьте мое понимание.

Можно ли просматривать стандартные потоки ядра через любой отладчик ядра, чтобы увидеть, как стандартные потоки занимают активность процессора?

-Kartlee

Ответы [ 2 ]

6 голосов
/ 12 марта 2010

Потоки ядра можно увидеть через "top" и "ps" и их можно различить по нулевому размеру виртуальной машины (у них нет пространства пользователя, поэтому нет карты памяти пространства пользователя).

Они созданы kernel_thread (или его друзьями). Некоторые средства создают один поток на процессор и привязывают его к процессору, поэтому вы видите такие вещи, как aio / 0 aio / 1 в списке PS.

Кроме того, некоторая работа выполняется с помощью нескольких отложенных механизмов выполнения и связывается с другими задачами, обычно называемыми «событиями / 0» (по одному на процессор). Время, проведенное «по-настоящему» в прерываниях, нигде не учитывается (оно просто расходуется за счет той задачи, которая была в этот момент на этом процессоре).

1 голос
/ 09 октября 2017

1) Является ли планировщик ядра Linux частью процесса инициализации?

-> нет, планировщик - это подсистема, процесс инициализации - это просто процесс, но особенный и запланированный планировщиком.

2) Насколько я понимаю, это часть потоков ядра, внутренне управляемых и не видимых пользователю ни top, ни ps. Пожалуйста, исправьте мое понимание.

-> Это своего рода поток ядра, который обычно не показывается пользователю.

3) Можно ли просматривать стандартные потоки ядра через любой отладчик ядра, чтобы увидеть, как стандартные потоки занимают активность процессора?

-> да!

...