像调度程序这样的内核组件是在自己专用的 CPU/Core 上执行还是共享?
Do kernel components like the scheduler execute on their own dedicated CPU/Core or do they share?
谁能解释一下 Windows 调度器是如何执行它的代码的。它是从专用 CPU 工作还是与所有其他内核 mode/user 模式进程共享?我在某处读到现代处理器提供架构扩展,提供可以在硬件中交换的几组寄存器see this post。
他们分享。一个典型的系统花费很少的时间 运行 来编写内核代码,以至于将整个内核专用于它是一种荒谬的浪费,而调度程序本身甚至只是其中的一小部分。在确实需要 运行 大量内核代码的情况下,这正是您 想要 在尽可能多的内核之间共享工作的时候。
我不确定具体 Windows,但是一个常见的 OS 设计是 每个 核心在需要决定哪个时执行调度程序接下来应该执行的任务 那个核心。
谁能解释一下 Windows 调度器是如何执行它的代码的。它是从专用 CPU 工作还是与所有其他内核 mode/user 模式进程共享?我在某处读到现代处理器提供架构扩展,提供可以在硬件中交换的几组寄存器see this post。
他们分享。一个典型的系统花费很少的时间 运行 来编写内核代码,以至于将整个内核专用于它是一种荒谬的浪费,而调度程序本身甚至只是其中的一小部分。在确实需要 运行 大量内核代码的情况下,这正是您 想要 在尽可能多的内核之间共享工作的时候。
我不确定具体 Windows,但是一个常见的 OS 设计是 每个 核心在需要决定哪个时执行调度程序接下来应该执行的任务 那个核心。