vm_page_startup(),;156行.;vm_page;module;初始化.
183-197行,;计算所有的可用记忆空间,;并挑出最大的;block.;phys_avail;在
一开始;locore.c;的初始阶段就设定.;phys_avail;为可用之;physical
memory;block;list,;由;getmemsize(),;i386/i386/machdep.c,;1419行
,;计算所得.
206行,;vm_page_queue_init(),;104行,;初始;vm_page_queues.
222-248行,;初始;hash;table;buckets(vm_page_buckets),;用以快速
从;object/offset;pair;对应成;vm_page.
vm_page_buckets
vm_page_bucket_count
256-283行,;allocate;vm_page_array,;为每一个可用的;page;设置一
个;vm_page.;phys_avail;为所有可用;mem;block;list,
vm_page_array;大小则由;phys_avail;决定.;所有;block;的
(最大的记忆体位址;-;最小位址)/PAGE_SIZE;即为;vm_page;的数目.
vm_page_array 所有;vm_page;组成的;array.
vm_page_array_size vm_page_array;的长度.
first_page 第一个;vm_page;对应;page;的;physical
page;address;(address/PAGE_SIZE)
291-310行,;把所有的;vm_page;加入;free;queue(in;vm_page_queues).
关於;vm_page_queues;请见专文或者红皮书.
推荐阅读
- 利用 FreeBSD 组建安全的网关
- BSD家族大观 --1. FreeBSD
- FreeBSD 中 Samba Server安装设定
- FreeBSD WEB服务器架设笔记
- 在FREEBSD 5.2中使用Pureftpd + MySQL + Pureftpd_ph
- 把Linux的密码->FreeBSD database
- FreeBSD 7.2 Final
- 如何在 FreeBSD 上使用 CD 刻录机?
- FreeBSD如何跑diskless?
- 51 FreeBSD连载:中文X应用软件