Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果需要在多核处理器机器的多个内核上并行执行,Linux 内核是否会同时执行多个上下文切换?有什么参考吗?
是啊,你说得对。在 SMP 系统上,多个上下文切换同时发生。每个核心都可以独立进行上下文切换。当然,如果需要,还需要 spinlock_* 来保护临界区。
也许你想知道一个核心什么时候决定做上下文切换,有几种情况:
(1) 发生中断;
(2) 出现异常;
(3) 用户进程系统调用;
(4) 在内核空间(不是中断/异常上下文),也有调用schedule()的代码放弃CPU;
(5) ...;