内容来自:《0day安全:软件漏洞分析技术》

关于操作系统与组原课程中比较棘手的虚拟内存与物理内存讲解简单易懂!所以转述一下!

Windows 的内存可以被分为两个层面:物理内存和虚拟内存。其中,物理内存比较复杂,需要进入 Windows 内核级别 ring0 才能看到。通常,在用户模式下,我们用调试器看到的内存地址都是虚拟内存。
       如图 所示,Windows 让所有的进程都“相信”自己拥有独立的 4GB 内存空间。但是,
我们计算机中那根实际的内存条可能只有512MB,怎么可能为所有进程都分配4GB的内存呢?

这一切都是通过虚拟内存管理器的映射做到的。

虽然每个进程都“相信”自己拥有 4GB 的空间,但实际上它们运行时真正能用到的空间根本没有那么多。内存管理器只是分给进程了一片“假地址”,或者说是“虚拟地址”,让进程们“认为”这些“虚拟地址”都是可以访问的。如果进程不使用这些“虚拟地址”,它们对进程来说就只是一笔“无形的数字财富”;当需要进行实际的内存操作时,内存管理器才会把“虚拟地址”和“物理地址”联系起来。
       Windows 的内存管理机制在很大程度上与日常生活中银行所起的金融作用有一定的相似性,我们可以通过一个形象的比方来理解虚拟内存。

  • 进程相当于储户。

  • 内存管理器相当于银行。

  • 物理内存相当于钞票。

  • 虚拟内存相当于存款。

  • 进程可能拥有大片的内存,但使用的往往很少;储户拥有大笔的存款,但实际生活中
    的开销并没有多少。

  • 进程不使用虚拟内存时,这些内存只是一些地址,是虚拟存在的,是一笔无形的数字财富。

  • 进程使用内存时,内存管理器会为这个虚拟地址映射实际的物理内存地址,虚拟内存
    地址和最终被映射到的物理内存地址之间没有什么必然联系;储户需要用钱时,银行
    才会兑换一定的现金给储户,但物理钞票的号码与储户心目中的数字存款之间可能并
    没有任何联系。

  • 操作系统的实际物理内存空间可以远远小于进程的虚拟内存空间之和,仍能正常调度;
    银行中的现金准备可以远远小于所有储户的储蓄额总和,仍能正常运转,因为很少会
    出现所有储户同时要取出全部存款的现象;社会上实际流通的钞票也可以远远小于社
    会的财富总额。

题外话:实际上,金融学、经济学、管理学中有很多概念和理论与计算机科学中的知
识出奇相似。有时将这些知识互相类比一下会获得一种融会贯通的清爽。

进程所拥有的 4GB 虚拟内存中包含了程序运行时所必需的资源,比如代码、栈空间、堆
空间、资源区、动态链接库等。

转载,大佬关于虚拟内存与物理内存关系讲解。相关推荐

  1. 转,大佬关于虚拟内存与物理内存关系讲解。

    内容来自:<0day安全:软件漏洞分析技术> 关于物理内存与虚拟内存讲得不错,通俗易懂.所以转一下. Windows 的内存可以被分为两个层面:物理内存和虚拟内存.其中,物理内存比较复杂, ...

  2. 详解操作系统中虚拟内存与物理内存的关系

    点击链接: 一文理解虚拟内存.物理内存.内存分配.内存管理 - 知乎 目录 一.虚拟内存与物理内存 1.1 虚拟内存 1.2 虚拟内存与物理内存 二.C/C++中虚拟内存分配模型 2.1 C语言中内存 ...

  3. 虚拟内存与物理内存之间的关系

      操作系统有虚拟内存与物理内存的概念.在很久以前,还没有虚拟内存概念的时候,程序寻址用的都是物理地址.程序能寻址的范围是有限的,这取决于CPU的地址线条数.比如在32位平台下,寻址的范围是2^32也 ...

  4. 操作系统——Linux 虚拟内存和物理内存的理解

    虚拟内存: 第一层理解 1..每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构: 2.一个新进程建立的时候,将会建立起自己的内存空间,此进程的数据,代码等从磁盘拷贝到自己的进程空间 ...

  5. Linux 内存管理 详解(虚拟内存、物理内存,进程地址空间)

    Linux -操作系统内存管理 存储系统 存储器的层次结构 Linux的内存管理 物理内存 物理内存管理 虚拟内存 虚拟地址空间 (写时拷贝) 和物理地址映射关系 页表 虚拟内存优缺点 「在 4GB ...

  6. 详解进程的虚拟内存,物理内存,共享内存

    ​ 目录 写在前面: 一.关于内存的两个概念 1.1 虚拟内存 1.2 驻留内存 二.详解top命令中VIRT.RES和SHR 2.1 top命令中ⅥRT.RES和SHR的含义 三.进程的smaps文 ...

  7. linux top 命令---VIRT,RES,SHR,虚拟内存和物理内存(

    VIRT,RES,SHR,虚拟内存和物理内存(转) VIRT: 1.进程"需要的"虚拟内存大小,包括进程使用的库.代码.数据,以及malloc.new分配的堆空间和分配的栈空间等: ...

  8. 虚拟内存与物理内存的区别,

    第一层理解 1.每个进程都有自己独立的4G(32位系统下)内存空间,各个进程的内存空间具有类似的结构 2.一个新进程建立的时候,将会建立起自己的内存空间,此进程的数据,代码等从磁盘拷贝到自己的进程空间 ...

  9. 计算机操作系统——虚拟内存与物理内存

    虚拟内存与物理内存 如何管理内存? 当多个程序同时运行时,如何让多个应用程序共同使用物理内存资源?有两种简单的方法: 使某一个应用程序独占所有的内存资源.一个程序要运行就将另一个程序的内存数据转存到硬 ...

最新文章

  1. Android 开发资源
  2. 有道云笔记 网络连接失败
  3. python真的有用吗-你真的认为python有那么好吗
  4. 异常记录与处理-Cannot find class [org.apache.commons.dbcp.BasicDataSource]
  5. wordpress html音乐,WordPress引用百度Ting音乐方法
  6. [杂题训练]CF1228E Another Filling the Grid(容斥),CF936C Lock Puzzle(构造)
  7. ios framework 调用第三方 framework_Python基础:标准库和常用的第三方库
  8. python基础语法(一)
  9. 机器学习回归问题解答
  10. [转]一个计算机专业学生几年的编程经验汇总
  11. 安防互联网摄像头视频流媒体服务器EasyNVR对接海康流媒体V4.X客户端实现方法
  12. php微信卡劵教程,微信卡券添加功能的实现-PHP
  13. 论文翻译:2021_Towards model compression for deep learning based speech enhancement
  14. [C语言] 常量与变量
  15. 彩蛋-管理员root@‘locahost‘ 密码丢失,处理方案。
  16. rtmp 发送h264包,主要是sps,pps,i帧和非i帧
  17. Java--入门指引
  18. 小程序毕设作品之微信体育馆预约小程序毕业设计成品(6)开题答辩PPT
  19. Cas(05)——修改Cas的其它配置
  20. 0013 求圆柱体体积

热门文章

  1. ​吐血整理:手拿几个大厂offer的秘密武器!
  2. GPT-3 的到来,程序员会被 AI 取代吗?
  3. 京东智能内容创作算法的演进与实践:基于关键词自动生成摘要
  4. 解密Elasticsearch技术,腾讯开源的万亿级分布式搜索分析引擎
  5. 大战三回合:XGBoost、LightGBM和Catboost一决高低 | 程序员硬核算法评测
  6. 聊天机器人落地及进阶实战 | 公开课速记
  7. 面试官:说说Spring AOP、AspectJ、CGLIB ?它们有什么关系?
  8. 重磅 ! Redis+Nginx+JVM+设计模式+Spring全家桶+Dubbo
  9. 手撕面试题:多个线程交替打印问题
  10. 面试官:你能说说MyBatis拦截器原理吗?