我正在研究CFS中context_switch的实现。
要深入了解context_switch概念,我研究了kernel / sched / core.c文件的context_switch方法实现。
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。
我有以下问题-
如果是Core-1和(process-3和process-4)(process-1和process-2) Core-5的用户希望同时进行context_switch, 在不同的内核中同时执行context_switch?
如果是, (a)单独调用context_switch是否在其本地缓存中维护堆栈/内存?
(b)一个内核上的context_switch是否对其他内核上的context_switch有任何影响?