【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)

文章目录

  • 一. 分页存储概念
  • 二. 地址转换
      • 1)为什么页面大小为2的次幂?
  • 三. 页表
      • 1)页表项长度、页号"隐含"
  • 四. 局部性原理与快表
  • 五. 二级页表
      • 1)单级页表存在的问题
      • 2)两级页表
      • 3)如何解决单级页表的问题

一. 分页存储概念

  • 内存分成等大区域(页框),页框号从0开始
  • 进程也分成和页框等大的区域(页),页号也从0开始
  • 页框不能太大,可能产生过大内部碎片(进程的最后一个页面不一定撑满页框)
  • 进程页面 - 内存页框一一对应。
    【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)_第1张图片

二. 地址转换

  • 找逻辑地址对应页号
  • 找页号对应内存的起始地址①
  • 计算逻辑地址在页面内的偏移量②
  • 物理地址 = 页面起始① + 页内偏移量②
    【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)_第2张图片

1)为什么页面大小为2的次幂?

  • 方便计算
    在这里插入图片描述
  • 偏移量最大值 - 对应一个页面持有内存单元个数(k 位 - 2 k 2^k 2k个)
  • 页号 - 对应一个进程最多允许持有页面个数(m 位 - 2 m 2^m 2m个)

【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)_第3张图片

三. 页表

  • 记录每个页面在内存中的位置
  • 页表项 = 页号 + 块号(由块号获取内存地址)
    【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)_第4张图片

1)页表项长度、页号"隐含"

  • 因为页表项按序连续存于内存,且页号长度相同,因此页号无需明确表示。
  • 延申:理论上 3B 就够,但是为了方便页表的查询,常常会让一个页表项占有更多字节,使得每个页面恰好装得下整数个页表项(也就没有内存碎片,比如此处 4KB % 3B = 1B 的内存碎片,但是 4KB % 4B = 0B)
    【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)_第5张图片

四. 局部性原理与快表

  • 时间局部性:指令一段时间内可能多次执行(由于程序存在循环
  • 空间局部性:存储单元附近的存储单元可能被访问(由于很多数据在内存中连续存放
    【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)_第6张图片
  • 快表:高速缓冲寄存器,比内存块。用来存放当前访问的若干页表项,达到加速地址变换的效果。
  • 慢表:内存中的页表
    【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)_第7张图片
  • 快表使用:
    【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)_第8张图片
  • 快表:命中率高一次访问内存。满则置换
  • 慢表:两次访存

五. 二级页表

1)单级页表存在的问题

  • 单级页表太大,又由局部性原理知道一段时间内只需访问几个页面即可,没必要让整个页表常驻内存
    【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)_第9张图片
  • 解决方法:对页表分组,分组与内存块等大。可以离散存放页表分组了,也因此,需要再给离散的页表建一个页表——顶层页表。
    【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)_第10张图片

2)两级页表

  • 32位、页 4KB、页表项 4B 的情况下,可知页表需要占用 2^10 = 1024 个页框。
  • 那么,我们可以使用离散的1024个页框,然后用一个顶级页表来记录这些页框的块号
    【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)_第11张图片
  • 也就可以推出:一级页号用 10B,二级页号用 10B(二级页表的排法)
    【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)_第12张图片
    【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)_第13张图片

3)如何解决单级页表的问题

  • 需要记录某一页表是否在内存
    【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)_第14张图片
  • 两级页表不够,就用更多级
  • 多级页表的访存次数 = N级页表用 N + 1 次(没有快表的情况)
    在这里插入图片描述

你可能感兴趣的:(操作系统学习,操作系统,内存管理,页表)