TLTR; : no es posible el paralelismo (en el sentido de verdadero ejecución simultánea) en un único núcleo de CPU no hipertrofiado.
Hardware (< - EDIT) paralelismo se puede alcanzar a varios niveles. Ordenadas por la disminución de granularidad:
- multi-anfitrión
- multi-procesador
- multi-núcleo
- multi-hilos ("Hyper-Threading", es decir, "HT") (EDIT: I voluntariedad omitir el caso de compuations vectorizados donde varios ALU puede ser impulsado por el mismo núcleo)
Su pregunta se refiere a la ejecución de dos subprocesos de software en los casos 3. (En caso de que el TC está disponible/desactivado) o 4.
En ambos casos, los procesos en realidad no se ejecutan en paralelo. El usuario tiene una impresión de simultaneidad debido a los conmutadores de contexto extremadamente rápidos realizados en el nivel de la CPU, que tienden a asignar, secuencialmente, el tiempo del núcleo físico (hilo respectivamente) a una u otra subproceso de software
en ambos casos, esas rutinas simplemente no se ejecutan simultáneamente, sino secuencialmente
la prioridad relativa asignada a cada uno de esos 2 rutinas se pueden configurar en varios sistemas operativos por la "prioridad" que le da al proceso, que serán manejadas por el programador del sistema operativo, que a su vez asignará el tiempo de CPU.
HTH.
Para realizar pruebas para comprender mejor este tema, es posible que desee google "afinidad con la CPU". Esto le permitirá ejecutar un proceso de dos subprocesos en un solo núcleo físico de una CPU multinúcleo, y medir el tiempo de cada uno de los subprocesos, al modificar su prioridad, etc. ...
(4) mezcla las dos cosas diferentes. HT es soporte de hardware para permitir el cambio rápido entre dos hilos (de modo que si un hilo está esperando datos de la memoria, el otro puede hacerse cargo). también hay (5) que es un subproceso "simple" en el nivel de software. tanto 4 como 5 no son "verdaderos" hilos donde las operaciones ocurren en paralelo pero (4) se acerca mucho más, ya que algunas operaciones (u operaciones parciales) pueden ocurrir en paralelo con el otro hiper hilo. por ejemplo, la recuperación de memoria para un hiper hilo puede estar ocurriendo mientras el otro se ejecuta. –
@adrew cooke: gracias por refinar la lista. Intencionalmente no incluí (5) en la lista precisamente porque es un paralelismo de "software", por lo que tiene razón (y estoy modificando la publicación inicial): solo estaba enumerando los tipos de paralelismo de "hardware". –
-1: todas las CPU modernas proporcionan paralelismo en el nivel de instrucción. Ver mi respuesta –