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对象影复本可以实现跨实例的共享相同的页。

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

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.