如果是的,那么MMU如何处理这些地址并决定不为它们进行实际翻译?

问题描述 投票:0回答:1

操作系统建立了一组规则和约定,以确保应用程序不能彼此造成悲伤。 如果为此OS写入内存映射的I/O设备是可以的,则OS将设置MMU映射(例如页面映射寄存器)以允许它;否则,它将不会将MMU页面设置为映射到I/O设备。

对于大多数ceneral-Purpose

OSS,允许任意程序写入I/O寄存器是“导致悲伤”的定义,因此他们根本不会设置这样的映射。 这就是Windows从用户流程的角度行事的方式。

对于特殊目的
virtual-memory mmu
1个回答
5
投票
Back在1972年,我构建了一个独特的虚拟内存16位微型计算机。 MMU有两种页面映射:

将虚拟页面映射到物理(如您所期望的)

将页面映射到

Single32字节I/O设备。

这意味着操作系统可以将任何设备(对OS功能都不关键)安全地交给

1。 特别是,这意味着每个I/O驱动程序都有自己的地址空间;如果搞砸了,没问题。 您可以在无恐惧的情况下运行操作系统时调试设备驱动程序。 (Windows遭受了I/O驱动器腐败多年的破坏;我仍然认为他们的质量控制“可信度检查”现在是邪恶的)。
    alas,这不是商业上的成功。 我被迫从事软件谋生: - {
  1. 您是正确的
  2. 处理器的内存映射中的所有寄存器和 /或内存位置
  3. are

    物理地址。 虚拟到物理翻译是由MMU完成的,仅发生在可以从中执行代码的内存的连续块中。即RAM或内部闪光灯。当访问内存图的其他部分时,实际上不会发生实际翻译,因为它们不与MMU进行交互。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.