Software, Support, Documentation
FreeBSD separates the physical page table topology from the VM system. All hard per-process page tables can be reconstructed on the fly and are usually considered throwaway. Special page tables such as those managing KVM are typically permanently preallocated. These page tables are not throwaway.
FreeBSD associates portions of vm_objects with address ranges in virtual memory through vm_map_t and vm_entry_t structures. Page tables are directly synthesized from the vm_map_t/vm_entry_t/ vm_object_t hierarchy. Remember when I mentioned that physical pages are only directly associated with a vm_object. Well, that isn't quite true. vm_page_t's are also linked into page tables that they are actively associated with. One vm_page_t can be linked into several pmaps, as page tables are called. However, the hierarchical association holds so all references to the same page in the same object reference the same vm_page_t and thus give us buffer cache unification across the board.
Copyright © 1998-2005 Korea FreeBSD Users Group.
All rights reserved. webmaster at kr.FreeBSD.org
$Date: 2001/01/19 01:03:36 $