操作系统面试题(十):页式内存管理中的块表和多级页表

时间:2024-04-07 19:05:58

操作系统面试题(十):页式内存管理中的块表和多级页表

块表


在页式内存管理中有2个重要的问题:

  1. 虚拟地址到物理地址的转换要
  2. 当虚拟空间很大时,相应的页表也会变得很大

为了解决这两个问题,引入了块表和多级页表

  • 块表用于解决地址转换速度问题
  • 多级页表用于解决页表过大,资源浪费问题

【1】块表

块表可以直接理解为页式内存管理的高速缓存(Cache)

块表的作用:加速虚拟地址到物理地址的转换速度

块表中存放着页表的一部分甚至全部内容

块表作为页表的高速缓存器(Cache),作用与页表的本质作用一致,只不过提高了页表的访问速度

原理:如果用页表做地址转换,则读写数据内存时,CPU要访问内存两次。当使用块表,有时只要访问一次高速缓存器,一次主存,这样就可以加速查找并提高指令执行速度

使用块表之后的地址转换流程:

  1. 根据虚拟地址中的页号查找块表
  2. 若该页在块表中,则直接从块表中读取对应的物理地址
  3. 若该页不在块表中,则访问内存中的页表,再从页表中读取物理地址,同时将该页表中的物理地址映射到块表中
  4. 当块表填满时,又要增加新的页表,就按照一定的淘汰策略删掉一页

总结:块表就是一个作为页表的告诉Cache,存储着页表的内容,地址转换先查块表


【2】多级页表

:优先级

多级页表的目的:避免把全部的页表都存放在内存中,太浪费资源了,尤其是那些不需要的页表

多级页表本质就是时间换空间


【3】总结

  • 多级页表:提高内存的空间性能,但是浪费了时间(时间换空间)
  • 块表(TLB):补充了损失的时间性能(空间换时间)