进程如何“选择”运行哪个核心?

Col*_*ice 3 cpu windows-7 troubleshooting

程序如何“选择”在哪个内核上运行?我的理解是操作系统决定了在哪个内核上处理哪个程序。

适用示例

Firefox 突然且猖獗地在最远的最后一个内核(i7 930 超线程)上运行 CPU 使用率。所有其他内核几乎都无需使用。

我不确定为什么会不必要地选择最后一个核心。我很好奇它是如何被挑出来的。通常前两个核心处理程序处理的首当其冲。

小智 5

你会是正确的。该应用程序将在操作系统碰巧选择的任何核心上运行。您可以将应用程序的“关联性”设置为特定核心,告诉操作系统仅在该核心上运行应用程序。根据我的理解,这不是一个好主意,但显然它存在是有原因的;所以有时可能需要调整。

在 Windows 中,您可以使用任务管理器:

Right click on the process, and choose "**Set Affinity**". 
Run Code Online (Sandbox Code Playgroud)

至于它的技术方面:

维基百科关于调度的文章