[转帖]逻辑地址空间、页表与如何确定页表项大小

逻辑地址空间、页表与如何确定页表项大小

https://blog.csdn.net/zuosixiaonengshou/article/details/83099309


32位逻辑地址空间,一页4KB,按字节编制,页式内存管理中如何确定页表项大小
因为是32位逻辑地址,故寻址空间为2^32B,而一页大小为4KB,故需要2^32/4B=2^20页=1M页。假设在内存中地址:

而页表则是对这些页表的记录。因一页大小是4KB,占据了逻辑地址的低12位,高20即为页号。

1M页  页号要20位,按字节寻址,⌈20/8⌉=3B,故页号一项至少3B(也即页表项大小,这里为什么直接只算页号,不加上页框号大小,还不大清楚),也可取4B,一页4KB,一项4B,一页可放1K个页表项,对应1K个页表,而需1M个页表,则需要2^20个物理页,而一页4KB,故页表占据2^10*4KB=4MB大小内存。

 若采用二级页表,则顶级页必须只能有1个页表,1页4KB/ 表项4B=1K个页表项,即占用地址高10位,而页大小4KB,占用12位,那么二级页逻辑地址空间剩下10位(32-10-12),即在页表中表现为20^10个页表项,而一个页表项占用4B,总共4KB,即一个页面可放下二级页,二级页表如下:

          2. 逻辑地址与页表项是有区别的,虽然前半部分都是页号,(逻辑地址的页号就是要与页表项的页号匹对上,来确定此逻辑页对应的页框号),逻辑地址后半部分是页内偏移(也是页大小),而页表项后半部分是块号。

在学习操作系统与组成原理对内存管理这一方面有点迷糊,自己小小的总结了一点知识点,逻辑可能有点混乱,以后有时间再作整理吧。
————————————————
版权声明:本文为CSDN博主「D灿」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zuosixiaonengshou/article/details/83099309

猜你喜欢

转载自www.cnblogs.com/jinanxiaolaohu/p/12409523.html