Operating system 确定地址和页表大小

Operating system 确定地址和页表大小,operating-system,size,memory-address,virtual-address-space,page-tables,Operating System,Size,Memory Address,Virtual Address Space,Page Tables,我知道这个问题已经被问过很多次了,但我仍然觉得我很挣扎 Given: physical memory: 2^20 32-bit system page size: 2^10 我需要确定物理地址和虚拟地址的外观,并计算页面表的大小 我不确定我得到的是正确的,但这是我目前得到的: ->Virtual address would look like (22 bits specifying page #)(10 bit specifying offset) ->Physical addr

我知道这个问题已经被问过很多次了,但我仍然觉得我很挣扎

Given: 
physical memory: 2^20
32-bit system
page size: 2^10
我需要确定物理地址和虚拟地址的外观,并计算页面表的大小

我不确定我得到的是正确的,但这是我目前得到的:

->Virtual address would look like (22 bits specifying page #)(10 bit specifying offset)
->Physical address would look like** (10 bits specifying frame #)(10 bits specifying offset)
页面条目数为2^20/2^10=2^10

如何计算页表大小?我很困惑,因为每个PTE都有虚拟地址和物理地址。是否是页面条目数*(物理地址+虚拟地址)?
如果设置了当前位,会有什么不同?

页面表的大小取决于您为每个条目保留的元数据位(有效的脏位等)

基本上,大小是:
(页面的数量)*(帧的数量+元的数量)

(有效位):2^22*(10+1)

谢谢!请你核实一下我的其他计算逻辑是否正确。我想确保我理解正确。我将非常感激虚拟和物理地址会像你描述的那样。页面条目数为
2^32/2^10=2^22
。请记住,页与虚拟内存关联,帧与物理内存关联。