每隔20ms左右,Windows要查看当前存在的
所有线程内核对象。在这些对象中,
只有某些对象被视为可以调度的对象。Windows选择可调度的线程内核对象中的一个,将它加载到 CPU的寄存器中,它的值是
上次保存在线程的环境中的值(见:
线程的一些性质)。这项操作称为上下文转换。
系统只调度可以调度的线程,但是实际情况是,系统中的大多数线程是不可调度的线程。例如,有些线程对象的暂停计数大于 1。这意味着该线程已经暂停运行,不应该给它安排任何 CPU时间。
本文详细解析了Windows系统如何每隔20ms左右检查所有线程内核对象,选择可调度对象进行上下文转换,以及系统调度机制如何区分可调度与不可调度线程的过程。
系统只调度可以调度的线程,但是实际情况是,系统中的大多数线程是不可调度的线程。例如,有些线程对象的暂停计数大于 1。这意味着该线程已经暂停运行,不应该给它安排任何 CPU时间。
1450
818

被折叠的 条评论
为什么被折叠?