如何理解虚拟地址空间?常说的32位系统中,为每个进程分配4g虚拟地址空间,这4g空间到底是保存在哪里?(个人理解,这4g空间和物理地址做了一个映射,那么问题来了,多个进程就需要多个这样的4g空间,内存够用吗?)
答:
所谓地址空间,是地址访问可以达到的所有地址的集合,而不是支持这个地址空间的全部硬件。就好比邮政编码是6位,它的地址空间就是10^6个地址,从0到999999。但不表示你需要有这么多个建筑区支持它。
32位进程可以发出2^32个地址,比如*ptr=0xNNNNNNN,这个被访问的地址不一定有内存存在,只是说它可以发出这个地址而已。而这个地址对应什么物理内存,这是操作系统给的,给了就有,没给就没有。
一、什么是虚拟存储器
;
物理寻址和虚拟寻址
存放在存储器中每一个字节都有一个地址,这个地址称为物理地址(PA, physical address)。处理器通过物理地址访问数据的方式称为物理寻址。处理器也可以通过虚拟地址(VA, visual address)寻址,称为虚拟寻址。处理器生成一个虚拟地址来访问处理器,在地址到达存储器之前需要先转换为物理地址。存储器管理单元负责将虚拟地址转换为物理地址。