【问题标题】:Virtual address space vs virtual memory虚拟地址空间与虚拟内存
【发布时间】:2023-03-17 17:25:02
【问题描述】:
虚拟地址空间和虚拟内存有什么区别吗?
如果是这种情况,32 位操作系统将不会有超过 4GB 的 vaddr 空间和虚拟内存。
提前致谢
好的
虚拟内存可以存在于本地或远程的任何地方。
虚拟地址空间是用于寻址内存的每个进程的指针。
这意味着我的最大虚拟内存能力受到地址空间限制的限制。
如有错误请指正。
【问题讨论】:
标签:
linux
operating-system
virtual-memory
virtual-address-space
【解决方案1】:
是的。
虚拟内存作为一个概念是内存可以有不同的支持。进程的一些内存可以在磁盘上,一些在主内存中,有些甚至可以在远程网络上。这是由操作系统管理的,对正在运行的用户进程是透明的。对于用户进程来说,它只是内存。
虚拟地址空间意味着映射到用户进程的内存地址。两个不同的用户进程访问(对它们)内存中的相同地址,但它们将包含完全不同的数据。如果用户地址空间很小(如 32 位),这一点尤其重要。这意味着每个进程都可以访问地址空间允许的尽可能多的内存,无论进程存在多少。
它们中的每一个都可以在操作系统中单独存在。但是它们结合起来是最有用的,因此通常由操作系统以紧密耦合的方式实现。