Несколько подобных вопросов были заданы здесь, но я не смог ответить на следующий: когда ядро планирует, что процесс P запускается на процессоре S, как планировщик сигнализирует об этой близости?Спасибо.
Ядро имеет очередь выполнения на процессор.Перемещение задачи из одного ядра в другое включает удаление ее из одной очереди и помещение ее в другое.См. Например, http://lxr.linux.no/#linux+v2.6.37/kernel/sched.c#L5859.
В некоторых случаях ядро привязывает процессор к задаче.
1) когда задача разветвляется 2) когда задание просыпается после сна 2) при переносе задачи
Посмотрите на sched_getaffinity() и pthread_getaffinity_np().
sched_getaffinity()
pthread_getaffinity_np()