# 2.虚拟内存、运行内存和物理内存的区别
# 虚拟内存和物理内存
- 物理内存=运行内存
- 物理内存就是内存条的大小,一般来说4G、8G左右。代码,数据运行都要到这里来,cpu才能运行。(32位系统最高物理内存是2 ^32^ = 4GB)
- 虚拟内存是在磁盘空间(一般几TB)里面划分出和物理内存大小一样的空间出来(比如4GB),用来放置代码。
- 物理内存和虚拟内存里面都以4KB(8KB也有)为基本单位划分区域。称作(页框)和(页)。然后通过页表建立映射关系。
- cpu工作时,先通过发送虚拟地址,MMU通过页表解析虚拟地址。如果在物理内存里面,则直接运行。如果不在的话,则参数缺页异常,分析出页面号(即每个4KB的空间),将需要的虚拟页面从磁盘中加载到物理内存的页面中。如果物理内存满了,则会替换物理内存里面某个页的区域
- 每个进程有各自的私有用户空间(0~3G),这个空间对系统中的其他进程是不可见的。最高的1GB字节虚拟内核空间则为所有进程以及内核所共享