使用虚拟内存,使用mmu的原因:

1. 更有效地使用内存,当作磁盘的缓存。由于局部性,将最近访问过的磁盘空间,缓存到内存中;

2. 更简单地管理每个进程的内存空间:每个进程具有相似的虚拟内存空间;

3. 可以实现对内存访问的保护,隔离每个进程的内存使用,避免一个进程踩到其他进程的内存。

《深入理解计算机系统》Vitual memory concepts

术语:PTE  page table entry  页表项  页表条目

page table 为 page table entry 的数组

page hit的情况:

这种情况也是需要访问内存,原因时需要访问page table, 获取pte

《深入理解计算机系统》Vitual memory concepts

page fault的情况:

《深入理解计算机系统》Vitual memory concepts

translation lookaside buffer  TLB:

TLB是一个小的,虚拟寻址的缓存,其中每一行都是单个pte。

存在的意义是缩短MMU获取pte的时间(如果没有tlb,需要到cache或内存中获取pte)

多级页表的优势:

节省页表占用空间,由于大部分的虚拟内存都是没有被分配的,因此多级页表可以省下大部分空间,如下图,使用了1+3,一共4个page table ,就覆盖了全部的虚拟内存空间:

节省空间的关键点,在于,没用到的页,只需要在level1中存储,在后面的level中不占用空间。

《深入理解计算机系统》Vitual memory concepts

多级页表的管理方式(v*n=virtual page number):

《深入理解计算机系统》Vitual memory concepts

缩写含义:

《深入理解计算机系统》Vitual memory concepts

相关文章:

  • 2021-10-22
  • 2021-10-20
猜你喜欢
  • 2022-01-23
  • 2021-12-24
  • 2021-06-08
  • 2022-02-19
  • 2021-11-17
  • 2021-11-17
相关资源
相似解决方案