0

Like in process management and memory management.

Are the scheduler and memory manager implemented as kernel threads that are run on the cpu the moment they are needed? If not, how does the kernel treat them?

Are they like processes, tasks, or some line of code that gets executed when needed?

4

1 回答 1

3

有些是,有些不是。术语“进程管理”和“内存管理”有点宽泛,涵盖了相当多的内核代码。

对于内存管理,调用mmap()只需要更改一些数据结构并且可以由当前线程完成,但如果页面被换出,它将由kswapd内核线程完成。

您可能会认为调度程序是一种特殊情况:由于调度程序负责调度所有线程,因此它本身不是线程并且不会在任何线程上执行(否则它需要自行调度......但是它将如何调度自己,如果它必须首先安排自己才能做到这一点?)。您可能会认为调度程序在必要时直接在每个处理器内核上运行。

于 2013-09-04T18:08:29.287 回答