¿El proceso cambia entre diferentes núcleos?

¿El proceso cambia entre diferentes núcleos?

¿Un proceso cambiará entre diferentes núcleos para aumentar el rendimiento? Si el proceso salta entre núcleos, ¿qué componentes se comparten entre núcleos? ¿Caché L1-L3, registros o memoria?

Respuesta1

Imaginemos una CPU única ocupada con un sistema de 2 núcleos, donde la carga se acerca al 100%.

Un proceso con PID 1234 tiene un solo subproceso (por ejemplo, una aplicación de consola que realiza compresión de audio monoproceso).

Para este tipo de proceso, el sistema hará todo lo posible por ejecutar el subproceso en el mismo núcleo para minimizar las fallas de caché. Sin embargo, si el sistema está realmente ocupado, es posible que otros procesos similares también intenten ejecutarse en los mismos núcleos. En este caso, en principio, su proceso de subproceso único puede ejecutarse primero en el núcleo n.° 1, luego en el núcleo n.° 2, y así sucesivamente.

Respuesta2

¿Process cambiará entre diferentes núcleos para aumentar el rendimiento?

Esto depende de si el proceso es un proceso de subprocesos múltiples o no. El proceso en sí es básicamente un "contenedor" para subprocesos; necesita tener al menos uno para ejecutarse. Cada subproceso puede utilizar un núcleo de CPU, por lo que si su proceso tiene 2 subprocesos (una GUI y un subproceso de trabajo), se ejecutará en 2 núcleos de CPU.

La pregunta "el proceso cambiará entre diferentes núcleos" no es exactamente correcta porque dicho cambio está programado por el sistema operativo (SO), ¡NO por el proceso en sí!

Respuesta3

El cambio de proceso entre CPU afectará el rendimiento, porque el cambio significará almacenar la información del proceso y los registros en la memoria y luego cargarlos en la otra CPU.

Estos comandos de almacenamiento y carga se encuentran entre los comandos más lentos de la CPU, aunque no se notarán si se ejecutan con muy poca frecuencia.

Este proceso es exactamente el mismo que cuando un proceso finaliza su intervalo de tiempo y el sistema operativo lo suspende y luego se reinicia con un nuevo intervalo de tiempo.

información relacionada