windows - 从性能的角度来看,虚拟地址空间映射如何才能被接受?

标签 windows operating-system kernel virtual-address-space

这个问题针对任何使用 VAS 模型的操作系统,但我将指定 windows nt,因为这是我最了解的系统。

众所周知,默认情况下,32 位 Windows 上的进程会单独获得 2 GB 的内存。该内存可以位于系统内存、交换文件、USB 驱动器等中。

这意味着多个进程可以在地址 0x12345678 分配内存,但是这当然不可能映射到相同的物理内存。

我的问题是,如何在不完全破坏性能的情况下做到这一点?处理器是否有某种机制来映射内存地址?

每次我们不想访问内存时要求操作系统进行映射查找,看起来很慢..

最佳答案

有一个硬件设备可以进行翻译 - 它叫做 Memory Management Unit (MMU)。大多数现代 CPU,甚至是智能手机等设备中使用的 CPU,都包含一个 MMU。

关于windows - 从性能的角度来看,虚拟地址空间映射如何才能被接受?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3491761/

相关文章:

windows - 从批处理文件中计算每个目录级别的文件和目录

windows - CreateProcess 能够执行批处理文件,但文档说明相反

Windows Server 2003 平台 SDK

windows - 如何为仅用于远程 COM 对象的 TLB 创建 list 文件?

linux - 内核线程 --- "kthreadd"

memory-management - 4GB 进程如何在仅 2GB RAM 上运行?

multithreading - 如果操作系统管理的同一进程中的两个线程同时访问同一虚拟地址,那么在两个执行单元中会发生什么?

assembly - 对非常量 TSS 段使用 jmp 指令

cpanel 中的 Laravel + Cronjob 无法正常工作

multithreading - 用户线程 vs.内核线程