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 / 12: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 / 13:59

Tags