多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 虚拟内存 虚拟内存并非真正存在的物理空间,它仅仅是一个虚拟的东西,说白了,就是用来**忽悠进程**的,进程会把虚拟内存当作是分给它们的内存。 早期的计算机运行程序时,是直接让进程去占用物理内存的,但是直接占用物理内存有诸多问题。 总之,为了解决这些问题,聪明的计算机科学家就发明了隔在物理内存和进程之间的**虚拟内存**。 虚拟内存在32位系统上,最大为4G(2的32次方),所以64位的系统上,最大虚拟内存就非常大了。为什么说32位操作系统上最大支持物理内存为4G,就是因为这个原因。 每个进程在运行时,都会被分配足够运行它的虚拟内存,这部分虚拟内存大小即使比物理内存大也没有关系。进程被分配虚拟内存后,内核再把虚拟内存映射到物理内存上去。 虚拟内存使得每个应用程序都认为自己拥有独立且连续的可用的内存空间(一段连续完整的地址空间)。而实际上,它通常是被映射到多个物理内存段,还有部分暂时存储在外部磁盘存储器上(这部分磁盘空间就是swap空间),在需要时再加载到内存中来。 ## 交换分区 当物理内存不太够用,或者当物理内存中有些数据被认为是不常用的数据时,内核就会把这部分数据存储到swap上。其实,即使内存够用,内核同样也会把一些数据存到交互分区里,只不过这样的数据量并不会太大。