40、深入解析内存页框管理机制

深入解析内存页框管理机制

1. 内存映射概述

在内存管理中,由于线性地址空间有限,小于 128MB 的线性地址空间用于映射高内存,而 PAE 支持高达 64GB RAM 的系统,所以无法同时对整个 RAM 进行寻址。为了更好地利用内存,内核采用了永久内核映射和临时内核映射两种方式。

2. 永久内核映射

永久内核映射允许内核将高内存页框长期映射到内核地址空间。它使用主内核页表中的专用页表, pkmap_page_table 变量存储该页表的地址, LAST_PKMAP 宏给出表项数量。根据 PAE 是否启用,页表包含 512 或 1,024 个表项,因此内核一次最多可访问 2 或 4MB 的高内存。

页表从 PKMAP_BASE 开始映射线性地址, pkmap_count 数组包含 LAST_PKMAP 个计数器,每个对应 pkmap_page_table 页表的一个表项。计数器有三种情况:
| 计数器值 | 含义 |
| — | — |
| 0 | 对应的页表项未映射任何高内存页框,可使用 |
| 1 | 对应的页表项未映射任何高内存页框,但因对应 TLB 项自上次使用后未刷新,不能使用 |
| n(大于 1) | 对应的页表项映射一个高内存页框,被 n - 1 个内核组件使用 |

为跟踪高内存页框和线性地址的关联,内核使用 page_address_htable 哈希表,该表为每

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值