地址空间

地址空间被定义为一个连续整数的有序集合,每个整数对应一个内存地址。地址空间为程序提供了统一的视角来看待内存。

虚拟地址空间是每个进程独有的,其大小由机器的字长决定(例如64位机器理论上支持2^64字节的地址空间)。进程仅能访问自己的虚拟地址空间,无法直接访问其他进程的地址。

物理地址空间则是系统全局共享的,对应物理内存中所有可寻址字节的集合。物理地址空间的大小受限于实际的DRAM容量和CPU地址引脚数量。

一个关键思想是:同一个数据项可以在不同的地址空间中拥有不同地址。例如,物理地址0x1000处的数据,在进程A的虚拟地址空间中可能映射到0x4000,在进程B中则映射到0x8000。这种映射关系由操作系统和MMU共同维护。

链接到