【发布时间】:2013-09-08 08:36:36
【问题描述】:
类似于进程管理和内存管理。
scheduler 和 memory manager 是否作为内核线程在需要时在 cpu 上运行?如果不是,内核如何处理它们?
它们是像进程、任务还是在需要时执行的某些代码行?
【问题讨论】:
标签: multithreading linux-kernel operating-system
类似于进程管理和内存管理。
scheduler 和 memory manager 是否作为内核线程在需要时在 cpu 上运行?如果不是,内核如何处理它们?
它们是像进程、任务还是在需要时执行的某些代码行?
【问题讨论】:
标签: multithreading linux-kernel operating-system
有些是,有些不是。 “进程管理”和“内存管理”这两个术语有点宽泛,涵盖了相当多的内核代码。
对于内存管理,对mmap() 的调用只需要更改一些数据结构,并且可以由当前线程完成,但如果页面被换出,它将由kswapd 完成,这是一个内核线程。
您可能会认为调度程序是一种特殊情况:由于调度程序负责调度所有线程,因此它本身不是线程并且不会在任何线程上执行(否则它需要自行调度......安排自己,如果它必须先安排自己才能做到这一点?)。您可能会认为调度程序在必要时直接在每个处理器内核上运行。
【讨论】: