4

我有一个关于 Linux 中的交换任务(空闲任务)的查询。我有一个具有 16 个 CPU 内核的系统。使用taskstats,我可以确定交换器任务正在核心0上运行。我的印象是,当该CPU没有其他可运行的任务时,每个CPU核心都需要一个交换器任务来运行。如果它是真的,那么为什么交换器任务显示只在 cpu0 上运行,如果它是错误的,那么当没有可运行的任务时,其余的 cpu 内核会做什么?

期待您的帮助。谢谢。

4

1 回答 1

2

正如您所说,空闲任务作业是在没有其他可运行的情况下运行,因此 CPU 不会用完指令。

这意味着在具有单核的系统上,空闲进程确保 CPU 始终有事可做,因此它不会停止。

在多 CPU/核心系统上也是如此,但是一些 CPU 允许系统将一些核心置于空闲模式以节省电力。在这种情况下,您只需要使用空闲进程保持单个内核处于活动状态,因为当内核切换到该内核时,它可以按需唤醒更多内核。

请注意,以上是整个事实的简化版本。只要相信内核做正确的事,它通常知道自己在做什么,并且只想要最适合你的:-)

于 2013-10-03T08:42:50.417 回答