【问题标题】:logical and physical address in operating system,操作系统中的逻辑和物理地址,
【发布时间】:2017-11-01 12:38:53
【问题描述】:

为什么需要逻辑地址?CPU可以直接为不同的进程产生物理地址。

我的第二个问题是CPU如何产生这个逻辑地址?

【问题讨论】:

  • 答案可以覆盖一本书。拿一本 OS 书籍并阅读内存管理和虚拟内存章节以了解大致概念。

标签: operating-system


【解决方案1】:

Logical address 是来自虚拟内存的地址。它的虚拟,因为它实际上并不存在。

为什么需要逻辑地址?

答案是通常程序员不知道主存储器的实际地址(物理地址),此外,操作系统设计人员确实希望每个程序员都知道物理地址是什么。将这些虚拟地址转换为 RAM 的实际物理地址的所有工作都是 Memory Management Unit 的工作。

这个逻辑地址是如何由CPU产生的?

CPU 只是根据分配给特定进程的虚拟内存量生成这些地址,这通常是一个不错的连续块,但实际访问的地址不必是连续的,地址转换单元 (page table,TLB,...) 在后台工作以获取正确的实际物理地址。

Here 是一个很漂亮的视频,绝对能解你的疑惑。

【讨论】:

    【解决方案2】:

    逻辑地址转换至少有两个功能。首先,它对系统安全至关重要。页面保护是作为逻辑内存转换的一部分实现的。

    其次,它有助于内存管理。特别是,如果没有逻辑内存转换,就不可能实现虚拟内存。

    我可以添加第三个,它可能被视为其他两个的一部分。逻辑内存提供了一种共享内存的方法。例如,大多数操作系统定义了一系列逻辑地址作为“系统空间”。这些逻辑地址映射到所有进程都相同的相同物理地址。

    在较大的应用程序中,进程共享相同的物理内存是很常见的。这是通过逻辑地址转换完成的。

    我的第二个问题是CPU如何产生这个逻辑地址?

    逻辑地址[通常]不是由 CPU 产生的。 CPU 使用页表将它们翻译成物理地址。操作系统设置页表来定义从逻辑页到物理页框的映射。s

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-23
      • 1970-01-01
      • 2018-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      相关资源
      最近更新 更多