¿Por qué el programador de procesos de Windows asigna tareas a CPU aleatorias?

¿Por qué el programador de procesos de Windows asigna tareas a CPU aleatorias?

Estoy en un procesador C2D de doble núcleo, Windows 7 (aunque este comportamiento es el mismo en todos los sistemas operativos MS que he visto). Cuando ejecuto cualquier tarea con uso intensivo de CPU de un solo subproceso, no se limita a 1 núcleo, sino que ocupa aleatoriamente aproximadamente el 50% del primer núcleo y aproximadamente el 50% del segundo.

¿Por qué hacen eso? ¿No conduce eso a una menor eficiencia de la caché L1?

Sé que puedo establecer la afinidad del proceso, solo me pregunto las razones de tal comportamiento.

Respuesta1

No es aleatorio. Están eligiendo el mejor lugar para dejarlo, no tiene sentido dejarlo en un procesador que actualmente está procesando un proceso pesado...

Realmente no afecta la eficiencia de la caché L1 ya que es MUY probable que los otros procesos ya hayan vaciado la caché L1 de todos los datos útiles. Por eso se habla tanto de cachés L2 y L3 compartidas…

información relacionada