【问题标题】:32 bit systems logical address32 位系统逻辑地址
【发布时间】:2012-02-16 08:52:08
【问题描述】:

在 32 位系统中,逻辑地址分为 |10|10|12|、页目录偏移量、页表偏移量和页偏移量。

由于 x86 系统中的页面是 4KBytes,并且要表示 4K 条目,因此需要 log2(4K) = 12 位,因此需要 12 位。 所以剩余位数 = (32-12) = 20。

假设到目前为止我的理解是正确的,我的问题是 10 和 10 是从哪里来的? 为什么不是 8 和 12 之类的?

【问题讨论】:

  • 并非所有 32 位处理器都使用 10-10-12,因此答案是“没有理由必须是 10-10-12。”
  • 是的,如果页面大小不同,那么划分也会不同。但是上面的例子,10和10是随机选择的,还是背后有什么逻辑?

标签: memory-management operating-system x86


【解决方案1】:

此处的一致性允许代码更小更简单(也可能是硬件)。

如果您仔细查看页目录和页表条目的格式,您会发现它们在 x86 上几乎相同。

现在,如果您将PDEs 之一指向PD,则访问所有PDEsPTEs 变得微不足道。我不知道这件事是否在设计 i80386 的时候就已经计划好了,但它肯定会派上用场。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 2012-07-11
    • 1970-01-01
    • 2017-06-26
    相关资源
    最近更新 更多