【问题标题】:Determine addresses and page table size确定地址和页表大小
【发布时间】:2015-05-31 08:20:40
【问题描述】:

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

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 都有虚拟地址和物理地址。它会是页面条目数*(物理地址+虚拟地址)吗? 如果我设置了当前位会有什么不同?

【问题讨论】:

    标签: operating-system size memory-address virtual-address-space page-tables


    【解决方案1】:

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

    基本上大小为:(num_of_pages)*(num_of_bits_for_frame_number + meta_bits)。 前任。 (valid bit): 2^22*(10 + 1)

    【讨论】:

    • 谢谢!请问您验证我的其他计算逻辑是否正确。我想确保我理解正确。我将不胜感激
    • 虚拟和物理地址将与您描述的一样。页条目数为2^32 / 2^10 = 2^22。请记住,页面与虚拟内存相关联,帧与物理内存相关联。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    • 2013-07-12
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2016-09-26
    • 1970-01-01
    相关资源
    最近更新 更多