了解内存映射

了解内存映射

内存映射允许页面在多个进程之间“淡入”,以便多个进程可以访问它们。解释一下操作系统如何通过分页来处理这个问题?

答案1

CPU有一个内存管理单元。它将虚拟内存地址映射到物理内存地址。它通过查找表中的映射来实现这一点。这些条目缓存在翻译后备缓冲区 (TLB)。每个进程都有自己的映射。

如果两个进程共享一些物理内存,那么操作系统会将进程A的部分虚拟内存映射到该物理内存,并将进程B的部分虚拟内存映射到同一物理内存。它们不必位于两个进程中的相同虚拟地址。

答案2

虚拟内存不存在,因此名称为虚拟。虚拟内存只是进程看到和使用的内存地址(32 或 64 位数字),并且可能指向真实的硬件内存。

它指向的硬件内存已经可以被另一个进程使用,因此可以通过这种方式在进程之间共享内存,并且这种方法已经完成了很多。

还有一种机制可以检测进程对特定虚拟内存区域的访问,它可以在您真正访问该地址之前“做一些事情”。例如,它可能会将某些硬件内存映射到该位置,或者因行为不当而终止您的进程。

这一切都是通过具有预定义功能和大小的页、地址空间块完成的。块大小通常是固定的,可能为 1 到 16 KB(取决于处理器)。

相关内容