新闻详情

新闻详情

首页 / 资讯中心 / 详情

虚拟内存与物理内存

发布时间:2026/10/2 7:05:41来源:尧图网络
虚拟内存与物理内存
虚拟内存与物理内存的对应关系虚拟内存 每个进程拥有独立的4GB 虚拟地址空间地址范围0x00000000 ~ 0xFFFFFFFF⚠ 虚拟地址不是真实物理内存地址只是一套进程内的逻辑地址物理内存● 真实硬件内存程序数据最终保存在物理内存● 不同进程相同虚拟地址可以映射到完全不同的物理地址进程之间内存隔离互不干扰● OS 通过页表完成虚拟地址 ↔ 物理地址的转换虚拟内存的大小与地址划分32 位 Windows整个 4GB 地址空间对半划分区域地址范围特性用户空间低2GB0x00000000 ~ 0x7FFFFFFF每个进程独立用户程序可操作内核空间高2GB0x80000000 ~ 0xFFFFFFFF所有进程共享同一份内核空间用户空间内部细分前 64KB 空指针赋值区0x00000000 ~ 0x0000FFFF禁止访问捕获空指针错误用户模式可用区0x00010000 ~ 0x7FFEFFFF程序使用的地址区域后 64KB 禁入保护区0x7FFF0000 ~ 0x7FFFFFFF紧邻内核空间防止用户代码越界访问内核管理粒度4KB 一页按需分配只有真正访问虚拟地址时才分配物理内存VAD虚拟地址描述符● WinDbg 命令!vad查看进程 VAD 树● 一个 VAD 节点代表一段已经分配的虚拟地址区间不在 VAD 树中的地址就是未分配● 用途排查内存泄漏、查看进程内存布局物理内存管理单位4KB / 页称为物理页物理内存上限 机器实际内存条容量公式物理页总数 物理内存总大小(KB) ÷ 4KB物理内存总量(KB)MmNumberOfPhysicalPages * 4WinDbg 查看物理页总数命令dd MmNumberOfPhysicalPages取出数值为物理页数量乘以 4 得到 KB 单位内存32 位系统内存识别限制● 硬件理论上限32 位架构最多识别64GB 物理内存● Windows 系统版本限制○ WinXP最多识别 4GB内核人为限制可通过 Hook 补丁突破○ Windows2003 服务器版可识别 4GB 以上内存注意架构本身不限制是操作系统内核做的限制页面交换文件 pagefile.sys● 文件位置C 盘根目录默认隐藏系统文件● 作用物理内存不够时把不活跃内存数据写入硬盘这个文件腾出物理内存● 程序可用内存 物理内存 pagefile.sys 虚拟内存● 设置入口系统属性 → 高级 → 性能设置 → 高级 → 虚拟内存更改✅区分● 进程 4GB虚拟地址空间逻辑地址● pagefile.sys硬盘充当内存的交换文件二者不是同一个东西核心机制按需分配 缺页异常按需分配申请虚拟地址不会立刻分配物理页只有访问的时候才分配物理内存缺页异常触发访问已经分配虚拟地址但没有挂载物理页时触发缺页中断缺页异常 OS 处理流程a. 校验虚拟地址合法性b. 分配物理页建立页表映射c. 如果数据在 pagefile从硬盘交换文件读取数据载入物理页d. 返回用户程序继续执行应用完全无感知比喻七个坛子八个盖 物理页数量少于虚拟内存对应的 “坛子”依靠局部性原理不活跃页面换入磁盘活跃页面放在物理内存动态轮换总结每个进程独立 4GB 虚拟地址内核空间所有进程共享虚拟地址≠物理地址页表负责映射进程内存隔离内存按 4KB 页管理虚拟内存延迟按需分配物理页VAD 描述已分配虚拟地址WinDbg !vad查看MmNumberOfPhysicalPages查看物理页总数pagefile.sys 是硬盘交换文件物理内存不足时换页缺页异常对程序透明32 位 CPU 理论可识别 64GB 内存XP 系统内核限制仅识别 4GB
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Skills Manager:统一管理54款AI编程工具的Agent技能 2026/10/2 7:51:45

Skills Manager:统一管理54款AI编程工具的Agent技能

1. 为什么我们需要一个“技能中枢”过去一年里,我陆续在五六个AI编程工具之间来回切换。Claude Code、Cursor、Windsurf、Cline、Roo Code、Aider……每换一个工具,我就要重新配置一遍Agent技能:把同一份代码审查规则复制到不同的配置目录&am…

阅读更多 →
WPS批量修改表格样式:从手动到VBA一键格式化 2026/10/2 7:51:39

WPS批量修改表格样式:从手动到VBA一键格式化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
激光雷达三种测距方式对比:ToF、三角测距与FMCW选型指南 2026/10/2 7:51:39

激光雷达三种测距方式对比:ToF、三角测距与FMCW选型指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Koopman算子实现非线性系统线性化MPC控制 2026/10/2 7:51:39

Koopman算子实现非线性系统线性化MPC控制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Orcad Allegro补丁本质是Windows系统兼容性工程 2026/10/2 7:51:38

Orcad Allegro补丁本质是Windows系统兼容性工程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
STM32CubeMX从入门到实战:HAL库开发与FreeRTOS集成指南 2026/10/2 7:51:38

STM32CubeMX从入门到实战:HAL库开发与FreeRTOS集成指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉