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

操作系统——虚拟内存

一、虚拟内存是什么?

虚拟内存类似一个桥梁,原来程序直接访问物理内存读取数据,现在程序直接访问虚拟内存,由虚拟内存再访问物理内存。

使用虚拟内存的好处:

  1. 隔离进程、提高内存使用安全性:每个进程直接访问虚拟内存,就像拥有了整个内存空间,实现了不同进程之间的相互隔离,无需担心因编程错误导致地址越界,影响其他进程。
  2. 简化内存管理:程序员可以使用连续的虚拟地址进行编程,而无需关注虚拟地址与物理地址的映射关系,简化了内存管理。
  3. 提升了物理内存的利用率:有了虚拟地址,操作系统只需要将进程正在使用的部分数据加载到物理内存。
  4. 多个进程共享物理内存:进程运行过程中,会加载一些动态库,这些动态库对于每个进程而言都是公用的。
  5. 提供更大的可使用内存空间:物理内存不够用时,可以将磁盘充当内存。

二、虚拟地址—>物理地址

虚拟地址到物理地址的映射通过MMU,即内存管理单元实现。
映射机制主要分为:分段机制分页机制段页机制

2.1 分段机制

段:一段连续的物理内存,不同段的内存大小可以不同。
虚拟地址:由段号+段内偏移量组成,通过段表进行映射。

缺点:会存在内存外部碎片。
因为一个进程对应一个段,而段内部地址连续,就会出现多个段空间被回收后,由于内存小且相互不连续,而无法分配给需要大内存空间的进程。
在这里插入图片描述

2.2 分页机制

分页机制,把物理内存划分成连续等长的物理页,虚拟内存也划分成连续等长的虚拟页。通过页表进行映射。
虚拟地址:由页号+页内偏移量组成。
在这里插入图片描述

2.3 页缺失

  1. 硬性页缺失:物理内存中没有对应的物理页,需要从磁盘中加载到内存,而后由MMU建立虚拟页和物理页的映射关系。
  2. 软性页缺失:物理内存中有对应的物理页,但是虚拟页还未和物理页建立映射。

2.4 页面置换算法

当发生硬性页缺失时,如果物理内存中没有空闲的物理页面可用的话。操作系统就必须将物理内存中的一个物理页淘汰出去,这样就可以腾出空间来加载新的页面了。

  1. 最佳页面置换算法
  2. 先进先出页面置换算法
  3. 最近最久未使用页面置换算法
  4. 最少使用页面置换算法
  5. 时钟页面置换算法
http://www.lryc.cn/news/411745.html

相关文章:

  • Zoom视频会议软件使用
  • MVC软件设计模式及QT的MVC架构
  • 使用WSL通过SSH连接并运行图形界面程序
  • 柳湛宇-简历
  • 6-1 从全连接层到卷积
  • 【Android Studio】项目目录结构
  • electron-builder打包vue2项目问题合集
  • 5行代码快速Git配置ssh
  • 气相色谱检测常见问题和实战案例分享-测试狗
  • 一文学会CUDA编程:深入了解CUDA编程与架构(一)
  • Jquery判断图片加载失败,显示默认图片
  • App 自动化测试调研
  • Java 后端已经过时的技术,也是我逝去的青春
  • 释放自动化测试潜能:性能优化策略与实战技巧!
  • 如何理解代码的跨平台?
  • dp:221. 最大正方形
  • 花10分钟写个漂亮的后端API接口模板!
  • 评估分类机器学习模型的指标
  • 农机自动化:现代农业的未来趋势
  • 25考研操作系统复习·1.1/1.2/1.3 操作系统的基本概念/发展历程/运行环境
  • 如何培养学生的创新意识和实践能力
  • 四、GD32 MCU 常见外设介绍(15)CAN 模块介绍
  • AIGC大模型产品经理高频面试大揭秘‼️
  • 【嵌入式笔记】【C语言】struct union
  • 【初学人工智能原理】【9】深度学习:神奇的DeepLearning
  • [RoarCTF 2019]Easy Calc1
  • 安卓APK安装包arm64-v8a、armeabi-v7a、x86、x86_64有何区别?如何选择?
  • 【AI大模型】通义千问:开启语言模型新篇章与Function Call技术的应用探索
  • 详细教程 MySQL 数据库 下载 安装 连接 环境配置 全面
  • 门控循环单元GRU