¿Cómo controlar en qué núcleo se ejecuta un proceso?

Puedo entender cómo se puede escribir un programa que use múltiples procesos o hilos: bifurcar () un nuevo proceso y usar IPC, o crear múltiples hilos y usar ese tipo de mecanismos de comunicación.

También entiendo el cambio de contexto. Es decir, con solo una vez que la CPU, el sistema operativo programa el tiempo para cada proceso (y hay toneladas de algoritmos de programación disponibles) y, por lo tanto, logramos ejecutar múltiples procesos simultáneamente.

Y ahora que tenemos procesadores de múltiples núcleos (o computadoras con múltiples procesadores), podríamos tener dos procesos ejecutándose simultáneamente en dos núcleos separados.

Mi pregunta es sobre el último escenario: ¿cómo controla el núcleo en qué núcleo se ejecuta un proceso? ¿Qué llamadas al sistema (en Linux o incluso en Windows) programan un proceso en un núcleo específico?

La razón por la que pregunto: estoy trabajando en un proyecto para la escuela donde vamos a explorar un tema reciente en informática, y elegí arquitecturas de núcleos múltiples. Parece que hay mucho material sobre cómo programar en ese tipo de entorno (cómo observar el punto muerto o las condiciones de carrera), pero no mucho sobre el control de los núcleos individuales. Me encantaría poder escribir algunos programas de demostración y presentar algunas instrucciones de ensamblaje o código C en el sentido de "Mira, estoy ejecutando un bucle infinito en el segundo núcleo, mira el pico en la utilización de la CPU para ese núcleo específico ".

¿Algún ejemplo de código? ¿O tutoriales?

edit: Para aclarar, muchas personas han dicho que este es el propósito del sistema operativo y que uno debe dejar que el sistema operativo se encargue de esto. ¡Estoy completamente de acuerdo! Pero lo que estoy preguntando (o tratando de tener una idea) es qué hace realmente el sistema operativo para hacer esto. No es el algoritmo de programación, pero más "una vez que se elige un núcleo, ¿qué instrucciones se deben ejecutar para que ese núcleo comience a buscar instrucciones?"

Respuestas a la pregunta(9)

Su respuesta a la pregunta