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 请见专文或者红皮书.
- qykernel.exe是什么进程
- 最新4.09版本的一些改进
- 关于4.03版的一些看法
- 4.09版本 6600C盘文件大揭密
- 魅族Flyme 8.1 One Mind 4.0系统内容与新功能介绍
- 理想 L 系列 OTA V4.4.0 更新内容曝光:新增哨兵模式测试版、Apple Watch手表车控
- Kernel API Functions 内核API函数
- 3220 v4.08 使用详细评测
- Red Flag Linux 4.0 红旗Linux桌面版 4.0光盘启动安装过程图解(图)
- 图 U盘及硬盘安装、配置、中文化 Puppy linux 4.00
