Número de threads do kernel = núcleos?

3

Gostaria de saber se os encadeamentos do kernel do sistema max são determinados por quantos núcleos sua CPU possui. Ou é decidido de outra maneira?

    
por starcorn 17.10.2011 / 14:34

1 resposta

3

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:

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)

    
por 17.10.2011 / 15:59

Tags