Qual núcleo físico o sistema operacional usa? [fechadas]

2

O sistema operacional precisa estar rodando em um ou mais núcleos físicos de um processador multi-core, certo? É possível identificar quais núcleos físicos estão usando um pedaço de código?

    
por Anil 16.01.2014 / 20:48

2 respostas

6

Na verdade, o sistema operacional (kernel) faz parte de todos os processos que são executados na máquina. Portanto, na verdade, não é como se o sistema operacional estivesse sendo executado em um núcleo enquanto os programas do usuário estivessem sendo executados nos outros núcleos, mas sim os processos do usuário sendo executados em cada núcleo e todas as vezes que precisam interagir com o sistema operacional. chamada de sistema que transfere o controle para o sistema operacional no mesmo núcleo .

Assim, o kernel está rodando em todos os núcleos e a maioria dos sistemas operacionais informará qual porcentagem o núcleo está usando em cada núcleo, o que é uma medida da frequência com que os programas userspace interagem com o kernel e com que frequência o kernel interrompe os processos do espaço do usuário para agendamento, gerenciamento de hardware, etc.

    
por 16.01.2014 / 21:39
1

Isso depende do sistema operacional que você usa. Pelo menos com os que suportam dtrace , você certamente pode medir a carga da CPU do núcleo por núcleo.

mpstat , que é baseado em amostragem, também pode gerar estatísticas detalhadas de carga de CPU por núcleo.

A menos que conjuntos dedicados / ligação de cpu / afinidade ou técnicas similares sejam usadas, a parte do kernel da carga da CPU deve ser balanceada entre todos os núcleos.

    
por 16.01.2014 / 21:29