内存地址映射与共享

内存管理机制
虚拟地址《=(段管理机制)=》线性地址《=(分页管理机制)=》物理地址

分页管理机制
内存分页管理机制时同过 页目录表和内存页表 组成的二级表进行的,其中页目录表(4B)来寻址一个页表,每个页表项(4B)来寻址一个一个物理内存页,结构如下图。Linux 0.11中页目录表占用一页地址,即最多可以寻址1024个页表,1024 * 1024 * 4K = 4G。所有进程共用一个页目录表,而每个进程有自己的页表项。
在这里插入图片描述

线性地址到物理地址变换图:
在这里插入图片描述

Linux 0.11 内存的管理与分配示意图
默认最多只有16M 内存,其中Linux内核占用了最前端的一部分,下图 end 标示内核结束的位置。随后是高速缓冲区,它的最高内存地址是 4MB。高速缓冲区被显示内存和 ROM BIOS 分成 2段,剩余的内存称为主内存区如下所示:
在这里插入图片描述

多级页表提高了空间效率,但在时间上增加了(增加了访存的次数),为此我们可以引入快表:
在这里插入图片描述
TLB命中时效率会很高,未命中时效率降低
在这里插入图片描述

TLB越大越好,但TLB很贵,通常只有[64, 1024]

相比220个页,64很小,为什么TLB就能起作用?

  • 程序的地址访问存在局部性
  • 空间局部性(Locality in Space)
    在这里插入图片描述
  • 计算机系统设计时应该充分利用这一局部性
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值