搜索
您的当前位置:首页正文

【1000个Linux内存知识-002】-缺页异常的本质是什么?谁缺页?如何根据多级页表和10-10-12分页机制的虚拟地址找到真正物理地址的?

来源:好走旅游网

缺页是缺什么页?谁缺页?

所以这里缺页缺的就是这个物理页。

也就是后图中某个页面找不到,或者说PTE里面存的是空的。

页表的C语言本质是多级指针,如果按照两级页表管理方式:PDE PTE offer的维度来看页表是如何访问的:(分析参考图)

0x12ff 1234

其中:

PDE的10bit:

    0x12和ff中的高2位:0b(0001001011) 就是PDE的偏移,十进制是:(1+2+8+64)=75 所以在第75个偏移

PTE的10bit:

    0xff中的低6位和0x1234的高四位:0b(11 1111 0001),就是PE的偏移,十进制是:(1+16+32+64+128+256+512)=1009,所以在第1009个偏移(倒数第14个)

页内偏移的12bit:

    0x234 就是页内偏移 (4+3*16+2*256) = 564

最后,综述几个本质:

- 页表管理,其实核心是物理页表管理。缺页缺的是物理页

所以执牛耳,而后牵VA就找到真正存储值的房间了。所谓的VA仅仅是存放房间的门牌号的盒子。

门牌号对应的房子建好了没?以及房子建在哪?

如果没有建好,就是缺页。

最后总结结论:

缺页是缺什么页?谁缺页?

因篇幅问题不能全部显示,请点此查看更多更全内容

Top