操作系统系列学习——多级页表与快表


前言

一个本硕双非的小菜鸡,备战24年秋招,计划学习操作系统并完成6.0S81,加油!
本文总结自B站【哈工大】操作系统 李治军(全32讲)
老师课程讲的非常好,感谢
【哈工大】操作系统 李治军(全32讲)

多级页表与快表

在这里插入图片描述
在这里插入图片描述多级页表和块表,以及前面的分页机制合起来成为一套比较完善的内存访问机制

为了提高内存利用率,页应该小,页小了,页表项就多了,页表就大了;(页是4K,每个段最多浪费4K)

CPU执行指令关键花的时间就在于通过总线访问内存,这个速度是慢的
在这里插入图片描述
页号必须要连续,这样才可以立即定位到页表项
在这里插入图片描述
用多级页表既实现连续,又让页表占的内存变少

页目录表(章)+页表(节)

多级页表优点:

多级页表既保证了页表表项的连续性,使得查找起来非常快(时间复杂度O(1));
又保证了内存中存储的页表少了,减少了内存浪费,提高了内存使用率;

多级页表缺点

多级页表增加了访存速度,特别64位系统(因为64位系统的多级页表有5,6级);

多级页表,每增加一级,访存次数就会加1; 所以 64位系统的多级页表访存次数约为5,6次;
多级页表的级数越多,访存越多,效率越低(级数越多,类比书的多层目录),这会造成指令执行效率低;
在这里插入图片描述
快表:

  • 也叫TLB,TLB是一组相联快速存储,是寄存器;
  • TLB,即Translation lookaside buffer,又称为翻译后备缓冲区寄存器;
  • 通过TLB可以快速找到最近使用的逻辑页映射的物理页号;

基于快表的地址翻译步骤

步骤1: 根据逻辑地址的页号,查询一次TLB寄存器就可以得到页框号(物理页号);
步骤2: 若快表TLB不存在页框号(未命中),则查询多级页表,并把查询结果送入TLB存储作为缓冲用于后续地址翻译;
小结:快表+多级页表合在一起形成的结构,保证了查询(翻译物理地址)时间快,页表项连续,减少了内存资源浪费;

这也充分体现了操作系统折中思想;通过把一些技术组合在一起,使得访问时间不错,空间利用也不错;具体是:

多级页表是减少了空间浪费,降低了空间复杂度,访问时间还可以,但还想提高页表查询速度;
TLB是提高了页表查询速度,降低了时间复杂度;
TLB可以弥补多级页表(特别64位系统)访存耗时,慢的缺点;

在这里插入图片描述
TLB越大越好, 但TLB很贵,折中处理是 TLB可以存储的页表项数量范围是 [64,1024];

原因:

  • 程序的地址访问存在局部性
  • 因为访问局部性,所以程序用的是固定的那几个逻辑页号;
  • 最近访问的逻辑页与物理页映射关系会送入TLB存储,所以TLB的命中率会很高;
  • 补充:程序多体现在循环,顺序结构;
  • 15
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力找工作的小菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值