两级页表

单级页表存在的问题

问题一: 页表必须连续存放,因此当页表很大时,需要占用很多个连续的页框

解决:
可将长长的页表进行分组,使每个内存块刚好可以放入一个分组(比如上个例子中,页面大小4KB,每个页表项4B,每个页面可存放1K个页表项,因此每1K个连续的页表项为一组,每组刚好占一个内存块,再讲各组离散地放到各个内存块中)
另外,要为离散分配的页表再建立一张页表,称为页目录表,或称外层页表,或称顶层页表

两级页表原理、地址结构

两级页表

两级页表

如何实现地址变换

两级页表

两级页表


问题二: 根据局部性原理可知,没有必要让整个页表常驻内存,因为进程在一段时间内可能只需要访问某几个特定的页面。

解决:
可以在需要访问页面时才把页面调入内存(虚拟存储技术)。可以在页表项中增标志位,用于表示该页面是否已经调入内存

两级页表

几个要注意的细节

1.若采用多级页表机制,则各级页表的大小不能超过一个页面

例: 某系统按字节编址,采用40位逻辑地址,页面大小为4KB,页表项大小为4B,假设采用纯页式存储,则要采用()级页表,页内偏移量为()位?


两级页表
两级页表

2.两级页表的访存次数分析(假设没有快表机构)
第一次访存:访问内存中的页目录表
第二次访存:访问内存中的二级页表
第三次访存:访问目标内存单元

总结

两级页表

相关文章:

  • 2021-08-28
  • 2021-06-21
  • 2022-01-13
  • 2021-06-19
  • 2021-05-03
  • 2022-12-23
猜你喜欢
  • 2021-05-11
  • 2021-11-08
  • 2022-12-23
  • 2021-10-02
  • 2021-06-01
  • 2021-05-27
相关资源
相似解决方案