4

Интересно, определяются ли потоки ядра системы max max тем, сколько ядер у вашего процессора. Или это решено по-другому?

1 ответ1

4

Нет, вы можете установить максимальное количество потоков в ядре.

Обратите внимание, что слово "потоки" используется для разных вещей:

Возможно, использование Intel вызывает путаницу.


Обновление веток ядра

Вот некоторые потоки ядра Linux, работающие в CoLinux под Vista на двухъядерном процессоре AMD Athlon 64 X2.

$ ps -eLf
UID        PID  PPID   LWP  C NLWP STIME TTY          TIME CMD
root         1     0     1  0    1 17:24 ?        00:00:00 init [2]
root         2     0     2  0    1 17:24 ?        00:00:00 [kthreadd]
root         3     2     3  0    1 17:24 ?        00:00:00 [ksoftirqd/0]
root         4     2     4  0    1 17:24 ?        00:00:00 [events/0]
root         5     2     5  0    1 17:24 ?        00:00:00 [khelper]
root        21     2    21  0    1 17:24 ?        00:00:00 [kblockd/0]
root        22     2    22  0    1 17:24 ?        00:00:00 [kseriod]
root        41     2    41  0    1 17:24 ?        00:00:00 [pdflush]
root        42     2    42  0    1 17:24 ?        00:00:00 [pdflush]
root        43     2    43  0    1 17:24 ?        00:00:00 [kswapd0]
root        44     2    44  0    1 17:24 ?        00:00:00 [aio/0]
root       727     2   727  0    1 17:24 ?        00:00:00 [kjournald]

LWP - это идентификатор потока.

(См. man ps: «-L Показывать потоки, возможно, со столбцами LWP и NLWP»… «LWP lwp (легкий процесс или поток) ID сообщаемого lwp. (Псевдоним spid, tid)»)

kthreadd - это демон потоков ядра, я полагаю, что он отвечает за все остальные потоки ядра. Примечание. Я не показываю демонов типа klogd, которые не выполняются в кольце 0 (насколько я знаю).

Количество потоков ядра!= количество ядер процессора. (ссылка на название вопроса)


Потоки ядра состоят из набора регистров, стека и нескольких соответствующих структур данных ядра.

...

Предполагаемое преимущество потоков ядра перед процессами заключается в более быстром создании и переключении контекста по сравнению с процессами.

...

Потоки ядра считаются «легкими», и можно ожидать, что количество потоков будет ограничено только адресным пространством и временем процессора

...

В частности, ядра операционной системы склонны рассматривать потоки ядра как особый тип процесса, а не как уникальную сущность. Например, в ядре Solaris потоки называются «легковесными процессами» (LWP ). Linux фактически создает потоки ядра, используя специальный вариант fork, называемый «клон», и до недавнего времени каждому потоку присваивался отдельный идентификатор процесса. Из-за этого наследия на практике потоки ядра имеют тенденцию быть ближе к памяти и затратам времени к процессам, чем потоки уровня пользователя,

(Многократные потоки управления в параллельных программах с миграцией, 2006 г.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .