【发布时间】:2013-05-19 13:49:49
【问题描述】:
在Linux操作系统中,启用页表后,内核只会将属于内核空间的PTE映射一次,而不再重新映射它们?此操作与用户空间中的 PTE 相反,每次进程切换发生时都需要重新映射?
所以,我想知道内核和用户空间中 PTE 管理的区别。
此问题是以下问题的扩展部分: Page table in Linux kernel space during boot
问候,
唐乐
【问题讨论】:
-
Linux self-map for page directory,Linux Virtual memory,Kernel Doc on MM,PIC for SO。对于某些条目,进程之间的用户空间映射可能保持不变;特别是共享库。如果是这种情况,VIVT 缓存对于这些区域可以保持未刷新。
-
非常感谢天真的噪音 :)
-
如果你理解这些链接,每个任务都有不同的
PGD,但PTE值可能在进程之间共享,因此每个进程可以映射相同的大块内存;仅更新 顶级 目录(x86 上的 CR3,每个 CL)。
标签: linux-kernel