7.4. 映射页表—`vm_map_t, vm_entry_t`
上一页 | 第 7 章 虚拟内存系统 | 下一页

## 7.4. 映射页表—`vm_map_t, vm_entry_t`

FreeBSD将物理页表结构从VM系统中分离了出来。各进程的所有页表可以脱离进程 (on the fly)重建，并且通常被认为是一次性的。特殊的页表，如内核虚拟内存(KVM)， 常常是被永久性预分配的；这些页表不是一次性的。

FreeBSD通过`vm_map_t`和`vm_entry_t` 结构将虚拟内存中`vm_objects`的各地址范围部分关联起来。 页表被直接的从 `vm_map_t`/`vm_entry_t`/`vm_object_t` 中有层次的合成出来。这里需要重申一下，我曾提到的“物理页仅直接与 `vm_object`相关联”并不很正确。`vm_page_t` 也被会被链接到正在与之相关联的页表中。当页表被调用时， 一个`vm_page_t`结构体可以被链接到几个pmaps。 然而，由于有了层次的关联，因此在对象中所有对同一页的引用会引用同一 `vm_page_t`结构体，这样就实现了跨区域(board)的缓存的统一。

上一页 | 上一级 | 下一页
7.3. 文件系统输入/输出—`buf`结构体 | 起始页 | 7.5. KVM存储映射

本文档和其它文档可从这里下载： ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题，请先阅读 文档，如不能解决再联系 <questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.