Não, você pode definir os encadeamentos máximos do kernel para números muito altos.
Observe que a palavra "threads" é usada para muitas coisas diferentes:
-
A maioria dos programadores a utiliza para se referir a threads independentes de execução no sentido de encadeamentos POSIX. Esta é uma maneira de organizar programas e não depende do suporte de hardware. Veja Número máximo de threads por processo no Linux?
-
A Intel a usa para se referir à tecnologia "Hyperthreading". Veja Por que meu Intel i7 -920 exibir 8 núcleos em vez de 4 núcleos? e O que significa "thread" como relacionado a CPUs?
Pode ser que o uso do Intels cause confusão.
Atualize os tópicos do kernel
Aqui estão alguns tópicos do kernel Linux em execução no CoLinux no Vista no AMD Athlon 64 X2 dual-core.
$ 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 é o código do segmento.
(Consulte man ps
: "-L Mostrar threads , possivelmente com colunas LWP e NLWP"… "ID de LWP LWP (processo leve ou thread ) de o lwp sendo reportado (alias spid, tid ) ")
O kthreadd é o daemon de thread do kernel, acredito que é responsável por todos os outros threads do kernel. Note que eu não estou mostrando daemons como klogd que não executam no ring 0 (até onde eu sei).
Número de threads do kernel! = número de núcleos de CPU. (ref title of question)
Kernel threads consist of a set of registers, a stack, and a few corresponding kernel data structures.
…
The purported advantage of kernel threads over processes is faster creation and context switching compared with processes.
…
Kernel threads are considered “lightweight,” and one would expect the number of threads to only be limited by address space and processor time
…
In particular, operating system kernels tend to see kernel threads as a special kind of process rather than a unique entity. For example, in the Solaris kernel threads are called “light weight processes” (LWP’s). Linux actually creates kernel threads using a special variation of fork called “clone,” and until recently gave each thread a separate process ID. Because of this heritage, in practice kernel threads tend to be closer in memory and time cost to processes than user-level threads,
( Múltiplos Fluxos de Controle em Programas Paralelos Migratórios 2006)