多级页表的优点和缺点

多级页表是基于虚拟地址的分段来划分等级的,最低等级的页表上保存了最终的虚拟页号和物理页号的对应关系。

例如拿32位的虚拟地址来说,如果页面的大小为4K,也就是12位,那么地址空间内将有20位,也就是1M的页表项目,每个项目对应一个虚拟页面。

那么对于地址空间中用于表示页号的20位地址再次分级,分成10位的一级页号和10位的二级页号呢

也就是说根据一级页号可以知道1K个连续的页面中是否已经有被加载到内存或者被置换到交换空间中的,如果一级页表中这1K个页面没有任意一个页面被加载或者置换郭,那么就不需要在为这1K个页面维护2级页表了。

理论上来说,一个进程开始运行的时候只需要3个1K的页面就可以运行了,即一K的代码段页面,一K的数据段页面和一K的桟页面。因此,只需要1K个一级页表单元一级3K个二级页表单元即可,远远小于连续页面类型的页表需要的1M的页表单元

猜你喜欢

转载自blog.csdn.net/challeng_everything/article/details/79622410