荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jjk (Welcome to InstallBBS,Linux!), 信区: Linux
标  题: Kernel Hacking Guide(6)
发信站: 荔园晨风BBS站 (Thu Dec 13 19:52:18 2001), 转信

【 以下文字转载自 jjk 的信箱 】
【 原文由 jjksam@smth.org 所发表 】
发信人: gracewind (和风), 信区: FreeBSD
标  题: Kernel Hacking Guide(6)
发信站: BBS 水木清华站 (Wed Dec 12 09:40:26 2001)

vm/vm_page.c
   vm_page module.

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 請見專文或者紅皮書.

--
             《金陵酒肆留别》

       风吹柳花满店香,吴姬压酒唤客尝。
          金陵子弟来相送,欲行不行各尽觞。
          请君试问东流水,别意与之谁短长。


※ 来源:·BBS 水木清华站 smth.org·[FROM: 210.28.216.9]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店