内存与磁盘:协同运作的存储层级
在计算机系统中,内存(主存)和磁盘(辅存)是构成存储层级的核心部件,它们通过互补的特性解决了 “速度、容量、成本” 的三角难题。 “8G 内存运行 10G 游戏” 的场景,正是两者协同工作的典型案例,背后涉及关键技术和原理:
突破内存容量限制的核心:虚拟内存与局部性原理
局部性原理:程序运行的 “潜规则”
程序在执行时,并非同时需要所有数据,而是呈现出明显的局部性:
- 时间局部性:最近访问的数据(如游戏角色的坐标、当前场景的纹理)在短期内可能再次被使用。
- 空间局部性:访问某一数据时,其相邻数据(如同一地图区块的相邻像素)也大概率被访问。
例如,10G 的游戏中,真正需要实时加载到内存的可能只是当前关卡的模型(2-3G)、音效缓存(几百 MB)和运行逻辑(几百 MB),其余未激活的关卡、冗余资源可暂存到磁盘。
虚拟内存技术:内存与磁盘的 “无缝衔接”
操作系统通过虚拟内存技术,将磁盘空间 “冒充” 为内存的一部分,实现 “小内存运行大程序”:
- 地址映射:程序看到的是连续的 “虚拟地址空间”(如 10G),但实际只有部分映射到物理内存(8G),其余映射到磁盘的 “交换区”(Swap 分区)。
- 页置换机制:当内存不足时,系统通过算法(如 LRU,最近最少使用)将最久未访问的 “内存页”(通常 4KB 大小)写入磁盘,再将新需要的页从磁盘读入内存。这个过程对程序透明,仿佛拥有了 10G 内存。
内存(RAM):高速但易失的 “临时工作台”
为什么是 “随机存取”?