Questão Em um sistema multicore, cada cpu terá seu próprio kernel linux?


O que eu quis dizer foi que, em um sistema multicore com 'n' número de cpu's, cada cpu terá seu próprio kernel linux instalado, ou todos os cpu terão uma cópia da mesma imagem do kernel?

Outra questão sobre o multicore é o rastreio do kernel. Como o rastreamento funciona no nível do kernel, devo executar o rastreio para cada cpu separadamente ou o rastreio do kernel pode ser executado como um todo para todas as cpu juntas?


2


origem


Parece uma pergunta de superusuário, pois não parece estar diretamente relacionada à programação. - Mark Byers
Não tenho tanta certeza, essa questão é fundamental para as porcas e parafusos dos kernels. Eu ficaria preocupado em manter a questão aqui. - stsquad


Respostas:


Todas as CPUs compartilham o mesmo sistema de memória e há apenas uma cópia do Linux carregado. Cada processo em execução terá sua própria pilha, mas isso também é verdade em sistemas de CPU única.

O Strace é implementado via ptrace, que acredito que funciona em PIDs individuais, então acho que isso significa que ele só rastreará a execução de um único thread.


7



Há, é claro, a adição de variáveis ​​por cpu para coisas que são relevantes apenas para rodar em um núcleo. - stsquad


Você terá uma imagem do kernel, com seções do código executadas através do número de núcleos / cpu's. Isso irá variar dependendo dos switches do kernel / como ele foi compilado.

Em relação ao rastreio do kernel, você ainda terá um rastreio!

Lembre-se que o mesmo kernel singular será executado por vários processadores / núcleos ...

Espero que isto ajude, Cumprimentos, Tom


0





Obrigado a todos por suas respostas. Eu mesmo fiz uma pequena pesquisa e descobri que ambos são possíveis em sistemas multicore. Um sistema multicore SMP terá um único kernel linux para todos os núcleos, onde, como em um sistema multicore AMP, cada núcleo terá seu próprio kernel. Normalmente, alguns multicores terão alguns núcleos para o AMP realizando tarefas críticas em tempo real, e o restante será o SMP executando tarefas não críticas e normais.

A pergunta, eu perguntei é sobre o rastreamento do kernel. Atualmente, a maioria dos kernels vem com kprobes embutidos que permitirão aos desenvolvedores do kernel obter informações sobre o desempenho do kernel. Eu acho que a resposta para a primeira questão também resolve essa questão. Em um SMP, um único rastreio para um kernel será gerado onde, como em AMP, tantos rastreios quanto o número de CPUs serão gerados.

AMP significa Asymmetric Multi Processing, SMP significa Symmetric Multi Processing


0