当前位置: 首页 > news >正文

9、讲一讲你理解的虚拟内存【中高频】

  • 计算机早期,CPU 是直接操作 物理内存(Physical Memory)的,但这会导致 内存空间无法完全隔离,一个程序修改了另一个程序的地址空间,就会导致程序崩溃;同时物理内存大小有限,一旦超出这个范围,程序也会崩溃。

    在这里插入图片描述

  • 为了解决这个问题,引入了虚拟内存技术。虚拟内存是一种内存管理技术,是虚拟的、逻辑上存在的连续存储空间,它在程序运行期间 动态映射 到多个物理内存碎片 中。如果物理内存中,它会借助磁盘来拓展空间(如 内存交换技术),因此虚拟内存比实际的物理内存大得多。

    • 每一个进程都有独立的虚拟地址空间,不同进程互相不干扰,提高了安全性

    • 由于虚拟内存在背后会借助磁盘空间,所以可以让每个程序都以为有充足的空间来供运行。

      在这里插入图片描述

  • 映射的原理:

    • **虚拟内存到物理内存的映射,是通过 页映射表(page table)完成的。**内核会为 每一个进程 维护一份相互独立的页映射表。一段虚拟内存空间 通过 页映射表 映射到一段物理内存空间上,这样 CPU 访问对应 虚拟内存地址的时候 就可以通过查找 页映射表 来访问对应的物理内存。另外,页(page)是 虚拟内存 向 物理内存 映射的基本单元。

    • 虚拟内存是这 按需映射 的。在虚拟内存里 程序运行过程时 没有访问 的地方,是不会映射到物理内存上的;只有被访问的空间才会被映射到物理内存上。所以说,虚拟内存大,只能表示 程序可访问的空间大,不代表它实际占用的物理内存也很大。

      img

相关文章:

  • 【Linux】设置系统时间
  • 简单的实现RPC框架
  • NineData云原生智能数据管理平台新功能发布|2025年2月版
  • Java继承与反思,单例模式与静态的思考
  • STM32 ADC原理与驱动详解:从存储器映射到多通道采集(下) | 零基础入门STM32第六十六步
  • 基于51单片机的12864模拟示波器proteus仿真
  • 【Linux篇】:初步理解何为进程--从硬件“原子“到PCB“粒子“的进程管理革命
  • 直击行业痛点,赛逸展2025科技创新奖推陈出新
  • 42.单调栈2
  • 3月17日星期一今日早报简报微语报早读
  • 华为OD机试 - 书籍叠放 - 逻辑分析(Java 2023 B卷 200分)
  • 【操作系统安全】任务3:Linux 网络安全实战命令手册
  • JAVA(8)-数组
  • Python虚拟环境完全指南:用venv管理项目依赖,避免环境冲突的N个技巧
  • Matlab 汽车二自由度转弯模型
  • VLLM:虚拟大型语言模型(Virtual Large Language Model)
  • 决策树(DT算法)
  • MongoDB 可观测性最佳实践
  • 从Excel到搭贝的转变过程
  • 【Agent】OpenManus-Flow-BaseFlow详细分析
  • 侵害孩子者,必严惩不贷!3名性侵害未成年人罪犯被执行死刑
  • 机构发布“2025中国高职院校排名”
  • 7月纽约举办“上海日”,上海大剧院舞剧《白蛇》连演三场
  • 河南省委常委会会议:坚持以案为鉴,深刻汲取教训
  • 陕西河南山西等地将现“干热风”灾害,小麦产区如何防范?
  • 检疫期缩减至30天!香港优化内地进口猫狗检疫安排