【发布时间】:2021-09-11 19:03:08
【问题描述】:
当用户创建一个进程时,会创建一个虚拟空间地址,对于 32 位操作系统(0 到 2^32-1),它的大小为 4g?进程认为它有整个内存可供使用,但虚拟地址被转换为物理地址并存储在进程的页表中。 我很困惑虚拟内存是什么?和虚拟地址空间一样吗?
【问题讨论】:
-
这里没有混淆,尽管有些人将磁盘交换的 RAM 也称为“虚拟内存”。
-
可能不是你要问的,但“虚拟内存”这个词被草率地使用了。这可能意味着两件事:要么通过配置 MMU 设置虚拟寻址,要么使用桌面操作系统中的交换文件将当前 RAM 的部分存储在硬盘驱动器上。
-
虚拟地址空间包括映射和未映射区域。只有映射的区域算作虚拟内存(但可能根本不是内存——例如,如果硬件寄存器映射到虚拟地址空间)。
-
@IanAbbott 那么当一个进程被创建时,只有在主内存中加载的块(块大小=页框大小)是虚拟内存?其他未使用的块仍在硬盘或二级存储中,仍未映射到物理内存?
-
@Lundin Ya,你是对的,它令人困惑的不同书籍使用不同的术语。
标签: operating-system cpu-architecture virtual-address-space