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

  1. 32位逻辑地址空间,一页4KB,按字节编制,页式内存管理中如何确定页表项大小

因为是32位逻辑地址,故寻址空间为232B,而一页大小为4KB,故需要232/4B=2^20页=1M页。假设在内存中地址:

逻辑地址空间、页表与如何确定页表项大小_第1张图片

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

逻辑地址空间、页表与如何确定页表项大小_第2张图片

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

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

逻辑地址空间、页表与如何确定页表项大小_第3张图片

​ \2. 逻辑地址与页表项是有区别的,虽然前半部分都是页号,(逻辑地址的页号就是要与页表项的页号匹对上,来确定此逻辑页对应的页框号),逻辑地址后半部分是页内偏移(也是页大小),而页表项后半部分是块号。逻辑地址空间、页表与如何确定页表项大小_第4张图片
转自

你可能感兴趣的:(操作系统和)