3

我知道有两种类型的地址。虚拟和物理。打印整数变量的地址将打印其虚拟地址。是否有有助于打印该变量的物理内存的功能?

虚拟内存是否意味着硬盘上被操作系统视为 RAM 的部分?

4

2 回答 2

7

不,没有这样的(便携式)功能。在实现内存保护的现代操作系统中,用户空间(与内核空间相反,即操作系统的一部分)不能直接访问物理地址,这是不允许的。所以没有什么意义。

不,虚拟内存不需要涉及硬盘,即“交换”或“分页”。一旦有了虚拟内存,您就可以实现它,因为它让操作系统有机会干预和管理哪些页面保存在物理内存中,从而可以将内存“分页”到其他存储介质。

要深入了解 Linux 内核如何管理内存,这篇博文非常棒。

于 2012-05-16T10:31:31.400 回答
2

这是一个复杂的主题。

物理内存地址指向硬件内存设备中的真实位置,无论是系统内存、显卡内存还是网卡缓冲区。

虚拟内存是呈现给用户模式进程的内存模型。系统上的大多数设备都有一些映射到它们的虚拟内存地址空间,处理器可以写入这些地址空间。当这些物理内存地址被赋予一个虚拟内存地址时,操作系统会识别出对这些地址的读/写请求需要由特定设备提供服务,并将该请求委托给它。

于 2012-05-16T10:35:22.043 回答