¿Cómo es una CPU de cuatro núcleos realmente utilizada por Windows?

Dato interesante, su navegador web generalmente tiene un núcleo dedicado en sistemas multinúcleo. Esto se debe a que el uso más común de la mayoría de las computadoras de consumo es el navegador web, por lo que se le brinda un rendimiento óptimo.

Ahora, contrariamente a lo que parece ser la forma obvia de manejar sistemas multicomultor, la carga de trabajo no se distribuye de manera uniforme en el cpus. Ciertos programas están diseñados para utilizar múltiples cpus, pero la mayoría de las veces intenta mantener la mayor parte del trabajo realizado por un procesador, dejando a los demás en un estado inactivo hasta que algo consume el procesador durante un período prolongado de tiempo.

La razón de esto es porque cada una de las CPU tiene su propio caché de nivel 1 y generalmente comparten cachés por encima de ese nivel y todos comparten una memoria. Se vuelve muy complicado hacer un seguimiento de qué CPU está utilizando qué recurso de memoria y dado que los cpus son completamente independientes entre sí, generalmente depende del programa de usuario administrar esto cuando sea necesario. Aún peor, no hay garantía cuando la reescritura ocurriría entre el nivel 1 y el nivel 2 de caché, por lo que una instrucción que se ejecuta en otra CPU probablemente estaría haciendo una operación con datos obsoletos. Cuando una tarea especialmente larga vincula un procesador, el proceso se entrega a otro para mantener las cosas en marcha, pero una vez que el principal vuelve a la tubería, los otros se quedan inactivos o casi inactivos.

Los programas multiproceso no se expanden a través de múltiples núcleos y, de hecho, a menos que el programador haga algo para especificar lo contrario, un solo proceso rara vez se divide en múltiples cpus.

Hasta donde yo sé, no hay optimizaciones específicas en el propio Windows, aparte de eso, la multitud de tareas en segundo plano tienden a dispersarse en múltiples núcleos: en la pantalla de Park Control, generalmente veo 2-3 núcleos ligeramente activos en inactivo, muy es raro que caiga a 1 activo, tan raro que establezco el mínimo en 2 para evitar cualquier sobrecarga al despertar el segundo núcleo.

Para otras cosas, particularmente juegos, un solo programa usará múltiples hilos para manejar diferentes tareas, como el control del jugador, los bots enemigos, el fondo, etc.

Un solo programa sin subprocesos utilizará solo un núcleo y aparecerá como una carga total máxima del 25%.

Es multiprocesamiento simétrico (SMP), sin un núcleo maestro único, aunque establecer la afinidad puede vincular ciertas tareas a un núcleo particular. El planificador asigna tareas a los núcleos según esté disponible, y en versiones anteriores, no diferenciaba entre núcleos y subprocesos de una CPU hipertorreada o las 2 unidades no completamente independientes de la arquitectura Bulldozer de AMD.
En versiones posteriores, el planificador asigna 1 tarea por núcleo (hiperprocesado) o por módulo (AMD), utilizando el segundo subproceso solo cuando ya hay 1 subproceso para cada núcleo / módulo

Descargue el programa en Process Explorer: puede ver cuántos subprocesos usa cada proceso (un proceso a la vez). Firefox usa una gran cantidad de ellos, calc usa solo 4.

la mayoría de las veces podría tener cientos de procesos (más de 90) pero ocupan tiempos de CPU relativamente bajos ya que la CPU está a una velocidad de reloj alta. Pero con muchas tareas intensivas (yo con un montón de pestañas abiertas), todas compiten, con solo 2 núcleos de sobra, no queda mucha CPU, pero con un núcleo cuádruple puedes mantener cargas multitarea ya que nunca hay un ” competencia “para CPU 🙂