【发布时间】:2014-12-17 04:31:16
【问题描述】:
Linux 内核开发中提到的一些要点(作者 Robert 爱)关于 mm_struct 和内核线程的书是:
“内核线程没有进程地址空间,因此没有 有一个关联的内存描述符。因此,内核的 mm 域 线程的进程描述符为 NULL。 "
"因为内核线程在用户空间中没有任何页面,所以它们没有 真的值得拥有自己的内存描述符和页表(页表是 本章后面讨论)。尽管如此,内核线程需要一些 数据,例如页表,甚至访问内核内存。”
"内核线程没有地址空间,mm为NULL。因此,当 一个内核线程被调度,内核注意到 mm 为 NULL 并保持 加载了前一个进程的地址空间。然后内核更新 内核线程的进程描述符的 active_mm 字段来引用 前一个进程的内存描述符。然后内核线程可以使用 根据需要前一个进程的页表。”
现在我的查询是: 1.首先提到内核线程在用户中没有任何页面 空间,因此他们不值得内存描述符和页表和 下一行它说它需要一些数据,例如页表来访问 内核内存。它在这里指的是什么页表?每个过程都有它的 自己的页表,用于将虚拟地址映射到物理地址,为什么内核 线程需要那个?
内核线程如何使用页表?
【问题讨论】:
标签: linux linux-kernel