【问题标题】:In a byte addressed space with 32bit addressing, it takes up 32bits of memory to reference 8 bits?在一个 32 位寻址的字节寻址空间中,它占用 32 位内存来引用 8 位?
【发布时间】:2012-11-13 21:17:35
【问题描述】:

32位寻址的字节寻址空间中,引用8位占用32位内存?

所以寻址是内存的主要部分?

我的概念正确吗?

【问题讨论】:

    标签: memory-management operating-system


    【解决方案1】:

    没有。引用任意大小的连续区域需要 32 位。如果你有一个 1 兆字节的缓冲区,你不会在其中存储一个指向每个字节的指针,你只会存储一个指向它开头的指针。

    【讨论】:

    • 我就是这么想的。那么如何处理多级页表。我们正在 OS 中研究它。上课,但我不明白为什么。
    • 嗯,可以调查一下。那是一个单独的主题。谢谢(你的)信息。 :)
    • @user1821450 多级页表用于在某些情况下大大减少页表占用的内存量。将 32 位地址空间拆分为 4KB 页会产生 1Mi 页 - 一个 64 位页表条目(我不记得 x86 使用了什么)将需要 8MB 的内存,仅用于页表,并且每个进程通常有一个页表,因此如果不使用稀疏分层格式,您的大部分内存将转到页表。
    • 好的,明白了。所以我认为是在概念化寻址如何工作是错误的。在实模式内存中,您实际上不需要将整个地址空间映射到软件中即可引用任何内容。这一切都在硬件级别完成。一个程序只需要跟踪它自己的地址空间。出于某种原因,我认为需要对软件中的每个字节进行映射。页表只是为了跟踪页面。谢谢您的帮助!这个网站太棒了。
    猜你喜欢
    • 2012-01-07
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 2014-11-07
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多