7.2. 统一的缓存信息结构体—`vm_object_t`
上一页 | 第 7 章 虚拟内存系统 | 下一页

## 7.2. 统一的缓存信息结构体—`vm_object_t`

FreeBSD实现了统一的“虚拟内存对象”(VM对象)的设计思想。 VM对象可以与各种类型的内存使用方式相结合—直接使用(unbacked)、 交换(swap)、物理设备、文件。 由于文件系统使用相同的VM对象管理核内数据—文件的缓存， 所以这些缓存的结构也是统一的。

VM对象可以被影复制(shadowed)。 它们可以被堆放到其它类别VM对象堆栈的顶端。例如，可以有一个交换VM对象， 放置在文件VM对象堆栈的顶端，以实现MAP_PRIVATE的mmap()操作。 这样的入栈操作也可以用来实现各种各样的共享特性， 包括写入时复制(copy-on-write，用于日志文件系统)，以派生出地址空间。

应当注意，一个`vm_page_t` 结构体在任一个时刻只能与一个VM对象相关联。 VM对象影复本可以实现跨实例的共享相同的页。

上一页 | 上一级 | 下一页
第 7 章 虚拟内存系统 | 起始页 | 7.3. 文件系统输入/输出—`buf`结构体

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

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