Pregunta En un sistema multinúcleo, ¿cada CPU tendrá su propio kernel de Linux?


Lo que quise decir es que, en un sistema multinúcleo con 'n' número de CPU, ¿cada CPU tendrá su propio kernel de Linux instalado, o todas las CPU tendrán una copia de la misma imagen del kernel?

Otra pregunta con respecto a multinúcleo es el rastreo de kernel. Como el seguimiento funciona en el nivel del kernel, ¿debo realizar el seguimiento de cada CPU por separado o el rastreo del kernel se puede realizar en conjunto para la puesta en común de todas las CPU?


2


origen


Suena como una pregunta de superusuario, ya que no parece estar directamente relacionado con la programación. - Mark Byers
No estoy tan seguro, esta pregunta es bastante fundamental para las tuercas y los pernos de los granos. Me gustaría dejar la pregunta aquí. - stsquad


Respuestas:


Todas las CPU comparten el mismo sistema de memoria y solo hay una copia de Linux cargada. Cada proceso en ejecución tendrá su propia pila, pero esto también se aplica a los sistemas de CPU única.

Strace se implementa a través de ptrace, que creo que funciona en PID individuales, así que creo que esto significa que solo rastreará la ejecución de un único hilo.


7



Por supuesto, se agregan variables por CPU para las cosas que solo son relevantes para ejecutarse en un núcleo. - stsquad


Tendrá una imagen del kernel, con secciones del código ejecutadas a través del número de núcleos / cpu's. Esto variará dependiendo de los switches del núcleo / cómo fue compilado.

En relación con el rastreo de kernel, ¡todavía tendrá un seguimiento!

Recuerde que el mismo kernel singular será ejecutado por múltiples cpus / cores ...

Espero que esto ayude, Atentamente, Tom.


0





Gracias a todos por sus respuestas o comentarios. Investigué un poco y descubrí que ambos son posibles en los sistemas multinúcleo. Un sistema multinúcleo SMP tendrá un único kernel de Linux para todos los núcleos, mientras que, como en un sistema multinúcleo AMP, cada núcleo tendrá su propio kernel. Típicamente, algunas multinúcleas tendrán un par de núcleos para que AMP realice tareas críticas en tiempo real, y el resto será SMP realizando tareas normales y no críticas.

La pregunta que hice fue acerca del rastreo de kernel. Hoy en día, la mayoría de los núcleos vienen con kprobes incorporados que permitirán a los desarrolladores del núcleo obtener información sobre el rendimiento del kernel. Supongo que la respuesta a la primera pregunta también resuelve esta pregunta. En un SMP, se generará un único rastro para un núcleo donde, como en AMP, se generarán tantos rastros como la cantidad de CPU.

AMP significa procesamiento múltiple asimétrico, SMP significa procesamiento múltiple simétrico


0