页框page

博客探讨了Linux内核如何以页框为单位管理物理内存。每个页框都有一个对应的page结构,这些结构并不存放在它们描述的页框内,而是集中存储在vmemmap区域。文章还讨论了物理地址空间中的空洞问题,以及内核如何有效地管理有效区域,避免为无效区域的页框创建page结构。
摘要由CSDN通过智能技术生成

物理内存被划分成固定大小的块,称为页框

  • 内核以页框为基本单位管理物理内存。
  • 内核为每个页框都建立了一个page结构,使用struct page结构体描述一个页框。

page采用了元数据与数据分离的方案

  • page结构并不存放在其所描述的页框内
  • 专门从内存中分配了若干空间,存储所有页框的page结构
  • 从线性地址空间角度,所有page结构都依页框号依次存放在vmemmap开始的地方
  • 在2.6的内核版本中,所有的page结构被放在mem_map数组中

下图是Linux内核线性地址空间布局

这里写图片描述

我们的page结构数组就是存放在线性地址的virtual memory map区,且第一个page结构的起始地址就是0xFFFFEA0000000000。

#define vmemmap \
((struct page *)VMEMMAP_START)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值