Я изучаю реализацию context_switch в CFS.
Чтобы глубже понять концепцию context_switch, я рассмотрел реализацию метода context_switch файла kernel / sched / core.c.
context_switch(struct rq *rq, struct task_struct *prev,
struct task_struct *next)
Итак, функция context_switch () вызывается всякий раз, когда возникает необходимость в context_switch между двумя процессами.
У меня есть система Intel Core i7 с 8 ядрами, на которой установлены Debian 8 и Ubuntu-16.04, ядро 3.16.x и3.18.x.
У меня есть следующие вопросы -
If (process-1 и process-2) Core-1 и (process-3 и process-4)) Core-5 захочет одновременно context_switch, будет ли context_switch выполняться одновременно в разных ядрах?
Если да, (a) Сохраняет ли отдельный вызов context_switch стек / память в своем локальном кэше?
(b) Влияет ли context_switch на одном ядре на context_switch на других ядрах?