您的位置:首页 > 其它

页表到底占用多少空间?一些疑惑和思考

2016-03-17 18:23 288 查看
二级页表

页目录项 1024个  

每个大小为4B 

前20个比特标识页表的物理地址(4K页)

页表1024*1024个 

每个大小也为4B

前20个比特标识页的物理地址

页帧以4k分页,那么对于32位逻辑总线来说,后12位就被屏蔽掉了, 只需要前20位就能找到这个页的地址

再加上12位的偏移,可以找到具体的那个1B了

最主要的是分页之后就只需要20位就可以来寻址了(物理地址)

类似的,页目录项中总共有4k大小,以4来分,那么只要1k就可以寻址(目录索引)了
http://bbs.csdn.net/topics/390930423
问题:页目录项、页表项中存储的地址是物理地址还是逻辑地址?

是物理地址

http://bbs.chinaunix.net/thread-4065953-1-1.html

这样页目录项和页表项就占用了内存中的4M + 4K的空间

MMU通过这里面存放的表,将线性地址转化为物理地址

那么,这个空间是如何规定的? 

CR3指定了页目录项的起始地址,这样就找到页目录项这个表了,然后再通过页目录项找到页表,后面就好办了

那么CR3也只需要高20位来寻址,因为页目录项刚好占用1个页帧,4k的大小空间

这个设计感觉太巧妙了,关键就在于这个4K分页

最后一个问题:

页目录项和页表项是操作系统来填写的,填到哪个位置如何确定?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  操作系统 页表