操作系统的「虚拟内存」机制,它究竟解决了哪些问题?

2026-09-01 09:43:11 0点赞 0收藏 0评论

内存足够大的建议关了,内存比较小的可开启,反正默认都是自动开启的。通俗说:虚拟内存是为了解决内存不足用的。

虚拟内存是什么?

虚拟内存(Virtual Memory)是操作系统为程序提供的一种抽象内存地址空间,它让程序看起来拥有连续且远超物理内存(内存条)的可用内存,实际由物理内存 + 硬盘空间共同支撑。

一、虚拟内存原理

1.1、页表及虚拟地址

imgimg

页表

CPU通过虚拟地址访问物理内存的,那CPU是如何通过虚拟地址找对应的物理页的呢?答案就是通过一种叫做页表(page table)的数据结构,页表将虚拟页映射到物理页。上面提到过,MMU负责虚拟地址的翻译工作,其在每次翻译虚拟地址时,都会读取主存中的页表,查看虚拟地址对应的物理页是否命中,如命中,主存就会将数据返回到CPU,否则,不命中的话,将会启动缺页处理程序,进行缺页处理。

1.2、虚拟内存与主内存之间的协作关系

虚拟内存的核心是通过页交换机制与主内存动态联动

流程如下:

  1. 程序启动时,操作系统会为其分配虚拟地址空间,并将程序的核心数据加载到主内存中运行;

  2. 当主内存被占满,且有新程序需要内存时,系统会筛选出主内存中暂时不活跃的程序数据(比如后台挂起的软件),将其写入硬盘的交换分区 / 文件(虚拟内存的硬盘部分),释放主内存空间;

  3. 当被置换的程序需要再次运行时,系统会将硬盘中的数据重新调回主内存,同时可能将主内存中当前不活跃的数据置换到硬盘,完成一次页交换;

相关概念:

虚拟地址空间:每个进程都有一个独立的虚拟地址空间,这个空间是连续的,并且对进程来说是唯一的

物理内存:实际的内存硬件,通常是RAM

页(Page):虚拟内存被划分为固定大小的块,称为页。常见的页大小是4KB

页框(Page Frame):物理内存也被划分为与页大小相同的块,称为页框

页表(Page Table):每个进程都有一个页表,用于映射虚拟地址到物理地址

二、为什么要设置虚拟内存

电脑卡顿、程序闪退?可能是虚拟内存没调对

  • 扩展系统可用内存容量,避免因物理内存不足导致程序崩溃

  • 提高系统的稳定性,让内存需求大的程序(如大型游戏、视频编辑软件)能顺利运行

  • 在多任务环境下,保证程序能够在后台切换时不被强制关闭

注意点:

  • 虚拟内存的硬盘读写速度远慢于物理内存,如果系统频繁在物理内存和虚拟内存之间交换数据(即 “内存颠簸”),会导致电脑卡顿、响应变慢。

  • 并非所有场景都需要大虚拟内存:比如服务器或高性能电脑,物理内存充足(32GB 以上),可以适当缩小虚拟内存大小,减少硬盘占用;而低配电脑则需要合理设置虚拟内存,避免程序崩溃

imgimg

三、虚拟内存设置技巧

只需在一个盘设置即可,通常推荐设置在系统盘(C 盘),因为操作系统本身默认使用 C 盘来管理 pagefile 文件

3.1、查看虚拟内存配置

  • 路径:右键"此电脑"→属性→高级系统设置→性能设置→高级→虚拟内存更改

  • 关键参数:当前分配的页面文件大小、托管系统(系统管理大小)还是自定义

以Win10为例:

设置-搜索高级系统设置,点击设置-高级,查看虚拟内存大小

imgimg

3.2、大小设置多大比较合理?

  • 初始大小建议:物理内存×1.5(如8GB→12GB)

  • 最大值建议:物理内存×3(如8GB→24GB)

  • 特殊场景调整:

  • 视频编辑/3D渲染:可增至物理内存×4

  • 普通办公场景:保持系统管理更省心

3.3、多磁盘系统优化

  • 方案A:将页面文件设置在非系统盘(需手动指定)

  • 方案B:双磁盘配置(如SSD+HDD)时,建议:

  • 系统盘设置较小页面文件(如4GB)

  • 数据盘设置较大页面文件(剩余空间10%-20%)

3.3、一些优化建议

32GB以上内存用户可选择关闭虚拟内存,节省SSD硬盘空间

  • 禁用页面文件:建议32GB以上内存的专业用户尝试

  • 清除页面文件:在关机时自动清理(需修改注册表)

  • 实时监控工具:使用RAMMap等工具观察内存分页情况

3.4、虚拟内存太大弊端

比较占硬盘,尤其是那些C盘装系统时,分配的空间就不是很大的用户

imgimg
展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
0
扫一下,分享更方便,购买更轻松