首页 王道操作系统笔记-内存(24)-- 内存管理6
文章
取消

王道操作系统笔记-内存(24)-- 内存管理6

王道操作系统笔记-内存(24)– 内存管理6

TLB

  1. 页表保存在主内存中。
  2. Page-table base register (PTBR) points to the page table.(页表基址寄存器指向页表)
  3. Page-table length register (PRLR) indicates size of the page table.(页表限长寄存器表明页表的长度)
  4. 在这个机制中,每一次的数据/指令存取需要两次内存存取,一次是存取页表,一次是存取数据
    • 我们是首先查询页表得到物理地址,然后访问该物理地址读取指令、数据。
  5. TLB translation look-aside buffers 通过一个联想寄存器,可以解决两次存取的问题。(快表)

当我们有了TLB之后,首先在TLB找,如果找不到就是miss,找到了就是hit。如果hit了直接把偏移量拿过来用。(这样就是一次访问即可)。如果miss了就再去页表里面找,然后再复制到TLB里面。

QQ截图20220720043949

TLB虽然是cache,但是只存有页表项的副本。普通Cache则会有其他数据的副本。

两级页表

单级页表有两个问题:

  1. 页表必须连续存放,因此当页表很大时,需要占用很多个连续的页框。
  2. 没有必要让整个页表常驻内存,因为进程在一段时间内可能只需要访问某几个特定的页面。

针对第一个问题,我们既然都可以使用页表来将进程的地址空间进行分页,那么我们也可以给页表再分页。这样也就可以让页表离散存放。这一个页表可能叫 页目录表,外层页表,或顶层页表。

QQ截图20220720044749

QQ截图20220720044853

针对第二个问题,可以使用虚拟储存技术。也就是需要访问页面的时候,才把页面调入内存。如果想访问的页面不在内存中,会产生缺页中断(内中断),把目标页面从外存调入内存。后文详细介绍。

QQ截图20220720045040

本文由作者按照 CC BY 4.0 进行授权