linux下的存储管理----原创 转载请通知我!!!

      Linux内核采用页式存储管理,采用三次映射机制实现从线性地址到物理地址的映射。采用这种方式的主要原因是考虑到对不同CPU的实现,方便以后的扩展。i386平台中,采用的是段页式的方法对存储空间进行管理。具体对于这种结构,Linux内核通过在系统配置过程中的选择,编译的时候选择pgtable-2level.h。这个文件主要用于分配PGDPMDPT的范围。在这个文件中,将PGD的起始位置和PMD的起始位置都设置成了bit22,也就是说PMD位段的长度就为0。这样就把Linux逻辑上的三层映射模型落实到i386结构物理上的二层映射。

     i38632位的线性地址将内存物理空间映射到4G的虚拟空间。其中从0XC00000000XFFFFFFFF1G空间为所用进程所共享的内核空间,每个进程都有自己的3G用户空间。

具体的映射过程为:

CR3寄存器中取得当前页面目录的地址,以dir作为下标,找到指向相应页面表的指针。

page为下标结合当前页面表的指针,找到相应的页表项。

把这个页表项加上线性地址的最低12位,就得到了最终的物理内存地址。

 

 

 

具体的映射过程为:

CR3寄存器中取得当前页面目录的地址,以dir作为下标,找到指向相应页面表的指针。

page为下标结合当前页面表的指针,找到相应的页表项。

把这个页表项加上线性地址的最低12位,就得到了最终的物理内存地址。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值