Si una CPU es de doble núcleo con 4 subprocesos, ¿eso significa que solo puede ejecutar 4 programas (procesos) al mismo tiempo?

En realidad, solo ejecuta dos en cualquier momento. Ejecuta cuatro. Y su sistema operativo empuja ese número a varios miles. Ahora, ¿cómo funciona eso? Depende de distinguir la ejecución: en realidad, ejecución, ejecución y estar activo.

Comencemos realmente bajo. Una CPU de doble núcleo tiene dos núcleos . Los núcleos pueden ejecutar un conjunto de instrucciones a la vez (posiblemente usando SIMD y similares para hacer varias cosas a la vez). Esta instrucción pertenece a un proceso. Entonces, obtienes un proceso ejecutándose por núcleo. Son dos procesos que se ejecutan en un núcleo dual .

Un nivel más arriba, cada núcleo tiene 2 hilos gracias a Hyperthreading / SMT. Una CPU de doble núcleo con SMT tiene cuatro hilos . Cada dos hilos aún comparten un núcleo, por lo que solo ejecutan una instrucción a la vez . Sin embargo, cada hilo contiene un conjunto de instrucciones. Esto proporciona algún beneficio cuando la obtención del siguiente conjunto de instrucciones lleva mucho tiempo. Mientras se ejecuta el subproceso 1, el subproceso 2 obtiene sus siguientes instrucciones. Entonces, se ejecutan dos procesos por núcleo. Son cuatro procesos que se ejecutan en un núcleo dual .

Al más alto nivel, el sistema operativo es un proceso que gestiona procesos. Un programa no se ejecuta en el procesador por sí mismo: el sistema operativo permite que el programa se ejecute. En este sentido, el sistema operativo puede mantener activa una cantidad arbitraria de procesos, solo necesita la memoria para mantenerlos. Sin embargo, si bien todos esos procesos están activos, solo cuatro pueden estar en la CPU y solo dos pueden ejecutarse.

Una analogía:

Piense en un escáner de cuerpo completo en la seguridad del aeropuerto. Solo hay espacio para una persona en el escáner. El escáner es un núcleo de CPU, cada persona un proceso; Se puede escanear una persona a la vez.

La gente tiene que quitarse los zapatos y los cinturones, y vaciar sus bolsillos antes de escanear. Para cada escáner, hay dos áreas de preparación para que las personas hagan esto. Las áreas de preparación son hilos; dos personas pueden prepararse al mismo tiempo .

Hay una cola de espera muuuy larga. Técnicamente, las personas en cola están siendo inspeccionadas, pero se clasifican en escáneres y áreas de preparación solo al final. La cola es la memoria del SO de los procesos activos; tantas personas pueden ser inspeccionadas como hay sala de espera .

Por supuesto no. Un doble núcleo, triple, cuádruple, etc. significa que su CPU tiene una unidad X para procesar los datos almacenados en la RAM. Dual core con 4 hilos es una CPU con 2 núcleos y virtualmente dividida en 4 núcleos por la función Hyper-Threading. Piense en ello como si tuviera 4 manos que pueden operar y procesar datos. Tener 4 manos no significa que solo puede ejecutar 4 programas o 4 tareas, sino que tiene 4 manos para realizar múltiples tareas.

Más núcleos en la misma generación y modelo significa más rendimiento, sin embargo, el aumento del rendimiento depende de la aplicación. Por ejemplo, la mayoría de los juegos antiguos solo pueden utilizar 2 núcleos o incluso 1. Si compara el rendimiento entre 2 núcleos y CPU de 4 núcleos (mismo modelo) en esos juegos, el rendimiento será similar. Otro ejemplo es el renderizado 3D, tome Blender por ejemplo. Es una aplicación que puede utilizar muchos núcleos como usted. Entre el mismo modelo y generación, cuantos más núcleos tenga, más rendimiento obtendrá.

No, puede ejecutar cientos o miles de programas o procesos “al mismo tiempo”.

Los subprocesos de hardware limitarán la cantidad de concurrencia literal que puede lograr. Básicamente, esto solo le importará si está haciendo un gran trabajo de cómputo (realmente pocos usuarios de computadoras lo hacen) , en cuyo caso probablemente quiera algo más poderoso que un doble núcleo de todos modos.